Clique e receba as novidades quentinhas no Telegram

Com o ritmo acelerado de mudanças ocorrendo na IA e na tecnologia de aprendizado de máquina, não é surpresa que a Microsoft tenha tido sua forte presença habitual no evento Nvidia GTC deste ano.

PS Plus: Video Pass incluso permitirá que você possa assistir filmes!

Representantes da empresa compartilharam suas mais recentes inovações de aprendizado de máquina em várias sessões, abrangendo inferência em escala, um novo recurso para treinar modelos de aprendizado de máquina em ambientes híbridos e a estreia do novo PyTorch Profiler que ajudará os cientistas de dados a serem mais eficientes quando eles ‘ analisar e solucionar problemas de desempenho de ML.

Em todos os três casos, a Microsoft combinou suas próprias tecnologias, como o Azure, com ferramentas de código aberto e hardware e tecnologias de GPU da NVIDIA para criar essas inovações poderosas.

  • Inferenciando em escala

Muito se fala dos custos associados à coleta de dados e treinamento de modelos de aprendizado de máquina. Na verdade, a conta para computação pode ser alta, especialmente com grandes projetos – na casa dos milhões de dólares. A inferência, que é essencialmente a aplicação de um modelo treinado, é discutida com menos frequência na conversa sobre os custos de computação associados à IA. Mas, à medida que os modelos de aprendizado profundo se tornam cada vez mais complexos, eles envolvem grandes expressões matemáticas e muitas operações de ponto flutuante, mesmo no momento da inferência.

A inferência é uma ala empolgante da IA, porque é a etapa em que equipes como o Microsoft Azure estão entregando uma experiência real a um usuário. Por exemplo, a equipe do Azure trabalhou com a NVIDIA para melhorar o verificador gramatical baseado em IA no Microsoft Word. A tarefa não é treinar um modelo para oferecer uma verificação gramatical melhor; trata-se de alimentar o mecanismo de inferência que realmente executa a verificação gramatical.

Dada a enorme base de usuários do Word, essa é uma tarefa de computação intensiva – que compreende bilhões de inferências. Existem duas preocupações inter-relacionadas: uma é técnica e a outra é financeira. Para reduzir custos, você precisa de uma tecnologia mais poderosa e eficiente.

A Nvidia desenvolveu o Triton Inference Server para aproveitar a potência dessas GPUs e combiná-la com o Azure Machine Learning para inferência. Juntos, eles o ajudam a ajustar e a funcionar bem sua carga de trabalho. E eles oferecem suporte a todas as estruturas populares, como PyTorch, TensorFlow, MXNet e ONNX.

ONNX Runtime é um mecanismo de inferência de alto desempenho que aproveita vários aceleradores de hardware para obter o desempenho ideal em diferentes configurações de hardware. A Microsoft colaborou de perto com a NVIDIA na integração do acelerador TensorRT no ONNX Runtime para aceleração de modelo em GPUs Nvidia. O ONNX Runtime está habilitado como um backend no Triton Server.

O Azure Machine Learning é uma plataforma de plataforma como serviço gerenciada que faz a maior parte do trabalho de gerenciamento para os usuários. Isso fala em escala, que é o ponto em que muitos projetos de IA fracassam ou até perecem. É onde as preocupações tecnológicas às vezes se chocam com as financeiras, e o Triton e o Azure Machine Learning foram desenvolvidos para resolver esse ponto problemático.

Facilitando o treinamento do modelo de ML no local e em várias nuvens, ou híbrido e em várias nuvens, com o Kubernetes

Criar um ambiente híbrido pode ser desafiador, e a necessidade de dimensionar o treinamento do modelo de ML com uso intensivo de recursos pode complicar ainda mais as coisas. Flexibilidade, agilidade e governança são necessidades essenciais.

A infraestrutura Azure Arc permite que os clientes com ativos Kubernetes apliquem políticas, realizem monitoramento de segurança e muito mais, tudo em um “único painel de vidro”. Agora, a integração do Azure Machine Learning com o Kubernetes se baseia nessa infraestrutura, estendendo a API do Kubernetes. Além disso, existem conceitos de código Kubernetes nativos, como operadores e CI / CDs, e um “agente” é executado no cluster e permite que os clientes façam treinamento de ML usando o Azure Machine Learning.

Independentemente da combinação de clusters de um usuário, o Azure Machine Learning permite que os usuários alternem facilmente os destinos. As estruturas compatíveis com o agente nativo do Azure Machine Learning Kubernetes incluem SciKit, TensorFlow, PyTorch e MPI.

O agente nativo também suaviza as engrenagens organizacionais. Isso elimina a necessidade de cientistas de dados aprenderem o Kubernetes, e os operadores de TI que conhecem o Kubernetes não precisam aprender o aprendizado de máquina.

  • PyTorch Profiler

O novo PyTorch Profiler, uma contribuição de código aberto da Microsoft e do Facebook, oferece ajuste de desempenho de GPU para a popular estrutura de aprendizado de máquina PyTorch. A ferramenta de depuração promete ajudar os cientistas e desenvolvedores de dados a analisar e solucionar problemas de desempenho do modelo de aprendizado profundo em grande escala de forma mais eficiente para maximizar o uso de hardware de recursos computacionais caros.

No aprendizado de máquina, a criação de perfil é a tarefa de examinar o desempenho de seus modelos. Isso é diferente de olhar para a precisão do modelo; desempenho, neste caso, é sobre quão eficiente e completamente um modelo está usando recursos de computação de hardware.

Ele se baseia no gerador de perfis PyTorch existente, aprimorando-o com um mecanismo de criação de perfil de GPU de alta fidelidade que permite aos usuários capturar e correlacionar informações sobre as operações PyTorch e informações detalhadas no nível de hardware da GPU.

O PyTorch Profiler requer esforço mínimo para configurar e usar. É totalmente integrado, parte do novo módulo de perfil Profiler, nova biblioteca libkineto e plug-in PyTorch Tensorboard Profiler. Você também pode visualizar todo o código do Visual Studio. É destinado a iniciantes e especialistas, em casos de uso da pesquisa à produção, e é complementar ao NSight mais avançado da Nvidia.

Um dos principais recursos do PyTorch Profiler é o rastreamento da linha do tempo. Essencialmente, ele mostra as atividades da CPU e GPU e permite que os usuários ampliem o que está acontecendo com cada uma. Você pode ver todos os operadores que são operadores típicos do PyTorch, bem como modelos Python de alto nível e a linha do tempo da GPU.

Um cenário comum que os usuários podem ver no PyTorch Profiler são as instâncias de baixa utilização da GPU. Uma pequena lacuna na visualização da GPU representa, digamos, 40 milissegundos quando a GPU não estava ocupada. Os usuários desejam otimizar esse espaço vazio e dar à GPU algo para fazer. O PyTorch Profiler permite que eles façam uma busca detalhada e vejam quais eram as dependências e quais eventos precederam esse intervalo ocioso. Eles poderiam rastrear o problema até a CPU e ver que era o gargalo; a GPU estava parada esperando que os dados fossem lidos por outra parte do sistema.

Examinar ineficiências em um nível tão microscópico pode parecer totalmente trivial, mas se uma etapa for de apenas 150 milissegundos, uma lacuna de 40 milissegundos na atividade da GPU é uma porcentagem bastante grande de toda a etapa. Agora, considere que um projeto pode ser executado por horas, ou mesmo semanas de cada vez, e é claro por que perder uma grande parte de cada etapa é terrivelmente ineficiente em termos de fazer valer o seu dinheiro com os ciclos de computação que você está pagando.

O PyTorch Profiler também vem com recomendações integradas para orientar os criadores de modelos para problemas comuns e possíveis. No exemplo acima, você pode simplesmente precisar ajustar o número de trabalhadores do DataLoader para garantir que a GPU permaneça ocupada o tempo todo.

Fonte: venturebeat

O que você achou das novidades da Microsoft? Deixe seu comentário. Além disso, não se esqueça de entrar no nosso grupo do Telegram. Clique em “Canal do Telegram” que está localizado no canto superior direito da página!