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.

Esse protótipo bem sucedido de machine learning se tornaria a base para o Visual Studio IntelliCode, uma funcionalidade de previsão de código assistida por IA, mas não sem antes passar por rigorosos testes de qualidade, disponibilidade e escalabilidade para atingir as exigências dos usuários do Visual Studio. Seria ainda necessário convidar a equipe de engenheiros para criar uma plataforma de machine learning e automatizar esse processo. E ambas as equipes precisariam adotar uma cultura MLOps, estendendo princípios de DevOps para o ciclo de vida de machine learning de ponta a ponta.

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

Com a distribuição do IntelliCode, as equipes viram uma oportunidade de projetar uma experiência de usuário ainda melhor: criar modelos de conclusão de equipe com base em hábitos de codificação específicos de cada cliente. A personalização desses modelos de machine learning exigiria o treinamento e a publicação de modelos sob demanda automaticamente, sempre que um usuário do Visual Studio ou Visual Studio Code solicitasse. Para executar essas funções em escala usando o pipeline existente, as equipes usaram serviços do Azure, como o Azure Machine Learning, o Azure Data Factory, o Lote do Azure e o 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