Ignorar navegação

Automatizar fluxos de trabalho do machine learning para incorporar IA ao Visual Studio

Veja como os cientistas de dados e os engenheiros da divisão de desenvolvedores Microsoft transformaram um experimento de sucesso em um recurso de produto de tráfego intenso com as práticas de MLOps (operações de machine learning).

O desafio: Do protótipo para a produção em escala

Depois de seis meses de IA e experimentos de machine learning visando melhorar a produtividade do desenvolvedor, uma equipe pequena de cientistas de dados aplicados da divisão de desenvolvedores Microsoft chegou a um modelo que ativamente previa os métodos de C# que um desenvolvedor provavelmente chamaria durante a criação do código.

This successful machine learning prototype would become the basis for Visual Studio IntelliCode, an AI-assisted code prediction capability—but not before it underwent rigorous quality, availability, and scaling tests to meet the requirements of Visual Studio users. They would need to invite the engineering team to create a machine learning platform and automate that process. And both teams would need to adopt an MLOps culture—extending DevOps principles to the end-to-end machine learning lifecycle.

Juntos, as equipes de ciência e engenharia aplicadas criaram um pipeline de machine learning para iterar no processo de treinamento de modelos e automatizar grande parte do trabalho que a equipe de ciência aplicada fazia manualmente na fase de protótipo. Esse pipeline permitia ao IntelliCode escalar e oferecer suporte a seis linguagens de programação, treinando regularmente novos modelos com exemplos de código de um amplo conjunto de repositórios de software livre do GitHub.

"Clearly, we were going to be doing a lot of compute-intensive model training on very large data sets every month—making the need for an automated, scalable, end-to-end machine learning pipeline all that more evident."

Gearard Boland, Gerente Chefe de Engenharia de Software, equipe de dados e IA

Capitalização de insights com MLOps

As IntelliCode rolled out, the teams saw an opportunity to design an even better user experience: creating team completion models based on each customer’s specific coding habits. Personalizing those machine learning models would require training and publishing models on demand automatically—whenever a Visual Studio or Visual Studio Code user requests it. To perform those functions at scale using with the existing pipeline, the teams used Azure services such as Azure Machine Learning, Azure Data Factory, Azure Batch, and Azure Pipelines.

"When we added support for custom models, the scalability and reliability of our training pipeline became even more important"

Gearard Boland, Gerente Chefe de Engenharia de Software, equipe de dados e IA

Unindo perspectivas diferentes

Para criar pipelines de machine learning, as equipes precisaram definir padrões e diretrizes comuns para que pudessem falar a mesma língua, compartilhar as mesmas práticas recomendadas e, assim, colaborar melhor. Eles também precisaram entender as abordagens uns dos outros para com o projeto. Enquanto a equipe de ciência de dados trabalhava experimentalmente, iterando rapidamente na criação do modelo, a equipe de engenharia se concentrava em garantir que o IntelliCode atendesse às expectativas dos usuários do Visual Studio para recursos de nível de produção.

Hoje, todo o pipeline de machine learning (treinamento, avaliação, empacotamento e implantação) é executado automaticamente e atende a mais de 9.000 solicitações de criação de modelo mensais de usuários do Visual Studio e do Visual Studio Code. As equipes estão buscando maneiras de usar pipelines para criar mais recursos de IA em outros produtos da Microsoft e oferecer experiências ainda melhores aos clientes.

Veja como as equipes implementaram o MLOps passo a passo.

Leia a história completa