Automatisation des workflows Machine Learning pour infuser l’intelligence artificielle dans Visual Studio
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 science des données appliquée 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 abouti allait devenir la base de Visual Studio IntelliCode, une fonctionnalité de prédiction de code avec intelligence artificielle. Cela nécessitait toutefois d’effectuer des tests stricts de qualité, de disponibilité et d’extensibilité 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ée 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.
Le défi : du prototype à la production à grande échelle
Le défi : s’adapter à un modèle de fonctionnement dans le nuage
"Clairement, nous aurions été contraints d’effectuer un grand nombre d’entraînements de modèle qui auraient mobilisé beaucoup de ressources de calcul sur des jeux de données très volumineux chaque mois. Cela n’a rendu que plus évidente la nécessité d’un pipeline Machine Learning de bout en bout automatisé et évolutif."
Gearard Boland, responsable principal de l’ingénierie logicielle, équipe Données et IA
Utilisation des 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.
Le défi : s’adapter à un modèle de fonctionnement dans le nuage
"L’ajout de la prise en charge des modèles personnalisés a permis de renforcer l’extensibilité et la fiabilité de notre pipeline d’entraînement"
Gearard Boland, responsable principal 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 traite 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.