Passer la navigation

Automatisation des workflows Machine Learning pour infuser l’intelligence artificielle dans Visual Studio

Découvrez comment les scientifiques des données et les ingénieurs du département Développement de Microsoft ont transformé une expérience réussie en fonctionnalité produit à fort trafic avec des activités MLOps (Machine Learning Operations).

En savoir plus

Le défi : Du prototype à la production à grande échelle

Après six mois d’expérimentations avec l’intelligence artificielle et le Machine Learning visant à améliorer la productivité des développeurs, une petite équipe de scientifiques de données appliqués du département Développement de Microsoft est parvenue à un modèle qui prédit activement les méthodes C# qu’un développeur est susceptible d’appeler pendant le codage.

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.

Ensemble, les équipes de science appliquée et d’ingénierie ont créé un pipeline Machine Learning pour itérer au sein du processus d’entraînement des modèles et automatiser une grande partie du travail que l’équipe de science appliqué effectuait manuellement au cours de l’étape de prototypage. Ce pipeline permettait à IntelliCode de mettre à l’échelle et de prendre en charge 6 langages de programmation, entraînant régulièrement de nouveaux modèles à l’aide d’exemples de code issus d’un ensemble complet de dépôts GitHub open source.

"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, principal responsable de l’ingénierie logicielle, équipe Données et IA

Utilisation d’insights avec 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, principal responsable de l’ingénierie logicielle, équipe Données et IA

Deux perspectives en une

Pour créer leur pipeline Machine Learning, les équipes devaient définir des normes et des instructions communes afin qu’elles puissent parler un même langage, partager les meilleures pratiques et mieux collaborer. Elles devaient également comprendre leurs différentes approches du projet. Tandis que l’équipe de science des données travaillait expérimentalement, en effectuant des itérations rapides sur la création de modèles, l’équipe d’ingénierie s’assurait qu’IntelliCode correspondait aux attentes des utilisateurs de Visual Studio pour les fonctionnalités de production.

Aujourd’hui, l’ensemble du pipeline Machine Learning (entraînement, évaluation, empaquetage et déploiement) s’exécute automatiquement et sert plus de 9 000 demandes de création de modèles mensuelles provenant d’utilisateurs Visual Studio et Visual Studio Code. Les équipes cherchent à utiliser leur pipeline pour créer des fonctionnalités d’intelligence artificielle supplémentaires dans d’autres produits Microsoft et offrir des expériences encore plus riches aux clients.

Découvrez comment les équipes ont implémenté MLOps pas à pas.

En savoir plus