Automatiser arbeidsflytene for maskinlæring for å legge til kunstig intelligens i Visual Studio

Se hvordan dataforskere og -teknikere i Microsofts utvikleravdeling gjorde et vellykket eksperiment om til en populær funksjon med maskinlæringsoperasjoner (MLOps).

Utfordringen: Fra prototype til skalert produksjon

Et lite team fra Microsofts utvikleravdeling som bestod av eksperter på anvendt datavitenskap, brukte seks måneder på å eksperimentere med kunstig intelligens og maskinlæring rettet mot å forbedre produktiviteten til utviklerne. De kom frem til en modell som aktivt forutså hvilke C#-metoder det var sannsynlig at en utvikler kalte opp under kodingen.

Denne vellykkede prototypen for maskinlæring dannet grunnlaget for Visual Studio IntelliCode, en funksjon for kodeprediksjon basert på kunstig intelligens. Først måtte funksjonen imidlertid gjennom omfattende kvalitets-, tilgjengelighets- og skaleringstesting for å sikre at den oppfylte kravene til Visual Studio-brukerne. Teknikerteamet ble bedt om å opprette en maskinlæringsplattform og automatisere prosessen. Begge teamene måtte ta i bruk en MLOps-kultur for å utvide DevOps-prinsippene til hele livssyklusen for maskinlæring.

Sammen bygget datavitenskaps- og teknikerteamene et datasamlebånd for maskinlæring som gjentar prosessen for modellæring og automatiserer mye av arbeidet som dataforskerne gjorde manuelt på prototypetrinnet. Med dette datasamlebåndet kunne IntelliCode skalere og støtte seks dataspråk og jevnlig lære opp nye modeller med kodeeksempler fra et omfattende sett GitHub-repositorier med åpen 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 i teamet for data og kunstig intelligens

Dra nytte av innsikt med MLOps

Etter hvert som IntelliCode ble rullet ut, så teamene en mulighet til å designe en enda bedre brukeropplevelse ved å opprette teamfullføringsmodeller basert på hver kundes spesifikke kodevaner. Tilpassing av disse maskinlæringsmodellene krever at modeller automatisk læres opp og publiseres ved behov, hver gang en Visual Studio- eller Visual Studio Code-bruker ber om det. For å kunne utføre disse funksjonene i ønsket skala med det eksisterende datasamlebåndet brukte teamene Azure-tjenester som 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 i teamet for data og kunstig intelligens

To ulike perspektiver forenes

For å kunne bygge datasamlebåndet for maskinlæring måtte teamene definere felles standarder og retningslinjer, slik at de kunne snakke samme språk, dele anbefalte fremgangsmåter og samarbeide bedre. De måtte også forstå hverandres tilnærminger til prosjektet. Datavitenskapsteamet jobbet eksperimentelt, med rask gjentakelse av modellopprettingen, mens teknikerne fokuserte på å sikre at IntelliCode oppfylte Visual Studio-brukernes forventninger til funksjoner på produksjonsnivået.

I dag kjører hele datasamlebåndet for maskinlæring – opplæring, evaluering, pakking og utrulling – automatisk og betjener mer enn 9000 modellopprettelsesforespørsler fra Visual Studio- og Visual Studio Code-brukere hver måned. Teamene undersøker hvordan de kan bruke datasamlebåndet til å bygge mer funksjonalitet for kunstig intelligens inn i andre Microsoft-produkter og gi kundene en enda bedre opplevelse.

Se hvordan teamene implementerte MLOps trinn for trinn.

Les hele historien