Automatisering af arbejdsprocesser i forbindelse med tilføring af kunstig intelligens i Visual Studio
Automatisering af arbejdsprocesser i forbindelse med tilføring af kunstig intelligens 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 (MLOps).
Udfordringen: Fra prototype til produktion i stor skala
Efter seks måneder med eksperimenter med kunstig intelligens 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 succesrige prototype for maskinel indlæring skulle blive basis for Visual Studio IntelliCode, en funktionalitet til kodeforudsigelse, der er hjulpet af kunstig intelligens, – men ikke før den undergik strenge kvalitets-, tilgængeligheds- og skaleringstests for at opfylde kravene fra Visual Studio-brugere. 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.
Udfordringen: Fra prototype til produktion i stor skala
Udfordringen: Tilpasning til en model, der drives i cloudmiljøet
"Det er klart, at vi skal udføre en masse beregningstung modeltræning på meget store datasæt hver måned – hvilket gør behovet for en automatiseret, skalerbar, end-to-end-pipeline til maskinel indlæring helt tydeligt."
Gearard Boland, Principal Software Engineering Manager, Data- og AI-teamet
Fordele ved indsigter med MLOps
Da IntelliCode rullede ud, så teamsene en mulighed for at designe en endnu bedre brugeroplevelse: Oprettelse af fuldførelse af team -modeller på baggrund af hver kundes specifikke kodevaner. 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 udføre disse funktioner i stor skala ved hjælp af den eksisterende pipeline brugte teamsene Azure-tjenester såsom Azure Machine Learning, Azure Data Factory, Azure Batch og Azure Pipelines.
Udfordringen: Tilpasning til en model, der drives i cloudmiljøet
"Da vi tilføjede understøttelse af brugerdefinerede modeller, blev skalerbarheden og pålideligheden af vores oplæringspipeline endnu vigtigere"
Gearard Boland, Principal Software Engineering Manager, Data- og AI-teamet
Kombination af to forskellige perspektiver
Teamsene 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. Teamsene 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.