Automatisering af arbejdsprocesser i forbindelse med tilføring af AI i Visual Studio

Se, hvordan dataforskere og -teknikere is Microsofts udviklingsafdeling forvandlede et vellykket eksperiment til en produktfunktion med meget trafik ved hjælp af handlinger til maskinel indlæring.

Udfordringen: Fra prototype til drift i stor skala

Efter seks måneder med eksperimenter med AI og maskinel indlæring, der var målrettet mod forbedring af udviklernes produktivitet, nåede et lille team af dataforskere i Microsofts udviklingsafdeling frem til en model, der aktivt forudsagde de C#-metoder, som en udvikler sandsynligvis ville kalde under kodning.

Denne vellykkede prototype til maskinel indlæring ville blive udgangspunktet for Visual Studio IntelliCode, en AI-assisteret egenskab til kodeforudsigelse – men ikke før, den havde gennemgået strenge kvalitets-, tilgængeligheds- og skaleringstest for at imødekomme kravene fra brugerne af Visual Studio. De ville være nødt til at invitere det tekniske team til at oprette en platform til maskinel indlæring og automatisere den pågældende proces. Begge teams skulle implementere en kultur i forbindelse med handlinger til maskinel indlæring – og dermed udvide DevOps-principperne til at omfatte hele livscyklussen for maskinel indlæring.

Sammen byggede videnskabsteamet og det tekniske team en pipeline til maskinel indlæring for at gentage modeltræningsprocessen og automatisere meget af det arbejde, videnskabsteamet udførte manuelt i prototypefasen. Den pågældende pipeline gjorde det muligt for IntelliCode at skalere og understøtte seks computersprog, træne nye modeller regelmæssigt ved hjælp af kodeeksempler fra et omfattende sæt af GitHub-lagre i åben kildekode.

"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- og AI-teamet

Fordel af viden med MLOps

Da IntelliCode blev udrullet, så teamene en mulighed for at designe en endnu bedre brugeroplevelse: oprettelse af modeller til teamfuldførelse baseret på hver enkelt kundes specifikke kodningssvaner. Tilpasning af disse modeller til maskinel indlæring kræver automatisk træning og publicering af modeller efter behov – når en bruger af Visual Studio eller Visual Studio Code anmoder om det. For at kunne udføre disse funktioner i stor skala med den eksisterende pipeline anvendte teamene Azure-tjenester, f.eks. Azure Machine Learning, Azure Data Factory, Azure Batch og 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- og AI-teamet

Kombination af to forskellige perspektiver

Teamene var nødt til at definere fælles standarder og retningslinjer, så de kunne tale et fælles sprog, dele bedste praksis og samarbejde bedre om at bygge deres pipeline til maskinel indlæring. De skulle også forstå hinandens tilgange til projektet. Mens datavidenskabsteamet arbejdede eksperimentelt – med hurtig gentagelse i modeloprettelsen – fokuserede det tekniske team på at sikre, at IntelliCode levede op til Visual Studio-brugernes forventninger til funktioner på produktionsniveau.

I dag køres hele pipelinen til maskinel indlæring – træning, evaluering, pakning og udrulning – automatisk og håndterer mere end 9.000 anmodninger om modeloprettelse om måneden fra brugere af Visual Studio og Visual Studio Code. Teamene leder efter måder at bruge deres pipeline på til at indbygge yderligere funktionalitet til kunstig intelligens i andre Microsoft-produkter og give kunderne endnu bedre oplevelser.

Se, hvordan teams implementerede handlinger til maskinel indlæring trin for trin.

Læs hele historien