Automatizar fluxos de trabalho de machine learning para infundir IA no Visual Studio

Descubra como é que os cientistas de dados e os engenheiros da divisão de programadores da Microsoft transformaram uma experimentação bem-sucedida numa funcionalidade de produto muito utilizada com práticas de operações de machine learning (MLOps).

O desafio: do protótipo à produção em escala

Ao fim de seis meses de experimentações em IA e machine learning com o objetivo de melhorar a produtividade dos programadores, uma pequena equipa de cientistas de dados aplicados da divisão de programadores da Microsoft criou um modelo que previa, de forma ativa, os métodos C# que os programadores iriam provavelmente chamar enquanto programavam.

Esse protótipo de machine learning bem-sucedido seria a base do Visual Studio IntelliCode, uma capacidade de predição de código assistida por IA, mas não sem antes ter passado por rigorosos testes de qualidade, disponibilidade e dimensionamento, de modo a que correspondesse às exigências dos utilizadores do Visual Studio. A equipa de ciência de dados teria de convidar a equipa de engenharia para criar uma plataforma de machine learning e automatizar esse processo. E ambas as equipas teriam de adotar uma cultura de MLOps, com expansão dos princípios de DevOps ao ciclo de vida completo de machine learning.

Em conjunto, as equipas de ciência de dados aplicada e de engenharia compilaram um pipeline de machine learning para iterar no processo de preparação de modelos e automatizar grande parte do trabalho que a equipa de ciência de dados aplicada fazia manualmente na fase de prototipagem. Esse pipeline permitiu que o IntelliCode se ampliasse e suportasse seis linguagens de programação, preparando com regularidade modelos novos mediante a utilização de exemplos de código de um extenso conjunto de repositórios open-source 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, Diretor de Engenharia de Software, equipa Dados e IA

Tirar partido das informações com o MLOps

Depois do lançamento do IntelliCode, as equipas viram uma oportunidade para desenhar uma experiência de utilizador ainda melhor: criar modelos de finalização da equipa com base nos hábitos de programação específicos dos clientes de ambas. A personalização desses modelos de machine learning exigiria preparar e publicar modelos a pedido automaticamente, sempre que um utilizador do Visual Studio ou do Visual Studio Code o pedir. Para realizar essas funções em escala com o pipeline já existente, as equipas utilizaram serviços do Azure, como o Azure Machine Learning, o Azure Data Factory, o Azure Batch 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, Diretor de Engenharia de Software, equipa Dados e IA

Unir duas perspetivas diferentes

Para compilar o pipeline de machine learning, as equipas tiveram de definir normas e orientações comuns, para que pudessem falar a mesma língua, partilhar melhores práticas e colaborar melhor. Também tinham de compreender as abordagens da outra em relação ao projeto. Enquanto a equipa de ciência de dados trabalhou em experimentações, iterando rapidamente na criação de modelos, a equipa de engenharia dedicou-se a garantir que o IntelliCode correspondia às expectativas dos utilizadores do Visual Studio em termos de funcionalidades de nível de produção.

Hoje, todo o pipeline de machine learning, desde a preparação, à avaliação, ao empacotamento e à implementação, é executado automaticamente e serve mais de nove mil pedidos de criação de modelos mensais dos utilizadores do Visual Studio e do Visual Studio Code. As equipas estão a desenvolver novas formas de utilizar o pipeline para criar capacidades de IA adicionais noutros produtos da Microsoft e oferecer experiências ainda melhores aos clientes.

Veja como é que as equipas implementaram o MLOps passo a passo.

Ler a história completa