Automatiseer machine learning-werkstromen door AI in Visual Studio op te nemen

Kijk hoe gegevenswetenschappers en technici van de Microsoft Developer-divisie met behulp van machine learning-bewerkingsmethoden (MLOps) een geslaagd experiment hebben omgezet in een productfunctie voor de verwerking van veel verkeer.

De uitdaging: Van prototype naar productie op schaal

Na zes maanden experimenten met AI-en machine learning met als doel de productiviteit van ontwikkelaars te verhogen, is het een klein team voor toegepaste gegevenswetenschap van de Microsoft Developer-divisie gelukt om een model te maken waarmee actief kon worden voorspeld welke C#-methoden een ontwikkelaar waarschijnlijk zou aanroepen voor het schrijven van code.

Dit geslaagde machine learning-prototype werd de basis voor Visual Studio IntelliCode, een door AI ondersteunde mogelijkheid voor het voorspellen van codegebruik, maar pas nadat het uitvoerig was getest op kwaliteit, beschikbaarheid en schaalbaarheid om te voldoen aan de vereisten van Visual Studio-gebruikers. Daarom hadden ze het technische team nodig om een machine learning-platform te maken en dat proces te automatiseren. Daarbij moeten beide teams een MLOps-cultuur aanvaarden, waarbij DevOps-principes tijdens de volledige levenscyclus van machine learning worden toegepast.

Samen hebben het toegepaste wetenschapsteam en het technische team een machine learning-pijplijn gemaakt om het proces voor het trainen van modellen te herhalen, en om veel van het werk te automatiseren dat het toegepaste wetenschapsteam in de prototypefase handmatig had uitgevoerd. Deze pijplijn maakte het mogelijk dat IntelliCode zes programmeertalen kon ondersteunen en schalen, en regelmatig nieuwe modellen trainde waarbij gebruik werd gemaakt van codevoorbeelden die afkomstig waren uit een uitgebreide set open source GitHub-opslagplaatsen.

"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 Software Engineering Manager, Data and AI team

Profiteer van inzichten met MLOps

Toen IntelliCode werd uitgerold, zagen de teams een kans om een nog betere gebruikerservaring te ontwerpen: ze maakten teamvoltooiingsmodellen op basis van de specifieke coderingsgewoonten van elke klant. Voor het personaliseren van deze machine learning-modellen moeten op aanvraag automatisch modellen kunnen worden getraind en gepubliceerd, en dat steeds als een gebruiker van Visual Studio of Visual Studio Code daar een verzoek toe doet. Om deze functies op schaal uit te kunnen voeren met behulp van de bestaande pijplijn, hebben de teams gebruikgemaakt van Azure-Services, zoals Azure Machine Learning, Azure Data Factory, Azure Batch en Azure Pipelines.

"When we added support for custom models, the scalability and reliability of our training pipeline became even more important"

Gearard Boland, Principal Software Engineering Manager, Data and AI team

Twee verschillende perspectieven combineren

Om de machine learning-pijplijn te kunnen bouwen, moesten de teams gemeenschappelijke standaarden en richtlijnen definiëren, zodat ze een gemeenschappelijke taal spraken, best practices konden delen en beter konden samenwerken. Ze hadden ook meer inzicht in hoe elk van de andere teamleden het project benaderden. Terwijl het team van gegevenswetenschappers experimenteel bezig was, waarbij ze al snel uitkwamen bij het steeds weer maken van modellen, richtte het technische team zich op het waarmaken van verwachtingen die Visual Studio-gebruikers hadden over IntelliCode op het gebied van functies op productieniveau.

Op dit moment wordt de volledige machine learning-pijplijn (training, evaluatie, verpakking en implementatie) automatisch uitgevoerd en worden er meer dan 9000 aanvragen voor het maken van modellen door gebruikers van Visual Studio en Visual Studio Code verwerkt. De teams zijn op zoek naar manieren om hun pijplijn te gebruiken om extra AI-mogelijkheden in te bouwen in andere Microsoft-producten, om zo nog rijkere ervaringen aan klanten te kunnen aanbieden.

Kijk hoe de teams MLOps stap voor stap hebben geïmplementeerd.

Het volledige verhaal lezen