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).

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.

Ce prototype Machine Learning réussi était susceptible de devenir la base de Visual Studio IntelliCode, une fonctionnalité de prédiction de code avec intelligence artificielle. Cela nécessitait toutefois d’effectuer de stricts tests de qualité, de disponibilité et de scalabilité pour répondre aux besoins des utilisateurs Visual Studio. Cette équipe devait alors inviter l’équipe d’ingénierie à créer une plateforme Machine Learning et à automatiser ce processus. Et les deux équipes devaient adopter une culture MLOps, en étendant les principes DevOps au cycle de vie Machine Learning de bout en bout.

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

Lorsque IntelliCode a été déployé, les équipes ont vu une opportunité de concevoir une expérience utilisateur encore plus performante : en créant des modèles de complétion d’équipe en fonction des habitudes de codage propres à chaque client. La personnalisation de ces modèles Machine Learning nécessite un entraînement et une publication automatiques et à la demande des modèles, chaque fois qu’un utilisateur Visual Studio ou Visual Studio Code le demande. Pour exécuter ces fonctions à grande échelle à l’aide du pipeline existant, les équipes ont utilisé des services Azure, tels que Azure Machine Learning, Azure Data Factory, Azure Batch et 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