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 aprendizagem automática (MLOps).
Ler a história completaO 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.
Este protótipo de aprendizagem automática bem-sucedido tornar-se-ia a base para o Visual Studio IntelliCode, uma capacidade de predição de código assistida por IA—mas não antes de passar por testes rigorosos de qualidade, disponibilidade e dimensionamento para cumprir os requisitos dos utilizadores do Visual Studio. Teriam de convidar a equipa de engenharia para criar uma plataforma de aprendizagem automática e automatizar esse processo. Além disso, ambas as equipas teriam de adotar uma cultura de MLOps—expandindo os princípios de DevOps ao ciclo de vida de aprendizagem automática ponto a ponto.
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
À medida que o IntelliCode foi lançado, as equipas viram uma oportunidade para criar uma experiência de utilizador ainda melhor: criar modelos de conclusão de equipa com base nos hábitos de codificação específicos de cada cliente. Personalizar esses modelos de aprendizagem automática exigiria a formação e a publicação automática de modelos a pedido—sempre que um utilizador do Visual Studio ou do Visual Studio Code o pedisse. Para executar essas funções em escala com o pipeline existente, as equipas utilizaram serviços do Azure, como Azure Machine Learning, Azure Data Factory, Azure Batch e 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.