Trace Id is missing
Przejdź do głównej zawartości

Automatyzowanie przepływów pracy uczenia maszynowego w celu wprowadzenia sztucznej inteligencji do programu Visual Studio

Automatyzowanie przepływów pracy uczenia maszynowego w celu wprowadzenia sztucznej inteligencji do programu Visual Studio

Zobacz, jak analitycy danych i inżynierowie z działu deweloperów firmy Microsoft przekształcili udany eksperyment w często wykorzystywaną funkcję produktu dzięki praktykom operacji uczenia maszynowego (MLOps).

Wyzwanie: Od prototypu do produkcji na dużą skalę

Po sześciu miesiącach eksperymentów ze sztuczną inteligencją i uczeniem maszynowym, mających na celu zwiększenie produktywności deweloperów, mały zespół analityków danych stosowanych w dziale deweloperów firmy Microsoft opracował model, który aktywnie przewidywał metody języka C#, które deweloper prawdopodobnie wywoła podczas kodowania.

Ten udany prototyp uczenia maszynowego stał się podstawą funkcji Visual Studio IntelliCode, czyli funkcji przewidywania kodu wspomaganej przez sztuczna inteligencję — ale nie wcześniej, niż przeszedł rygorystyczne testy jakości, dostępności i skalowania w celu spełnienia wymagań użytkowników programu Visual Studio. Trzeba by było zaprosić zespół inżynierów w celu utworzenia platformy uczenia maszynowego i zautomatyzowania tego procesu. Ponadto oba zespoły musiałyby przyjąć kulturę MLOps — rozszerzając zasady metodyki DevOps na cały cykl uczenia maszynowego.

Zespoły nauki stosowanej i inżynieryjny wspólnie opracowały potok uczenia maszynowego do iterowania procesu trenowania modelu i automatyzowania dużej części pracy, którą zespół nauki stosowanej wykonywał ręcznie na etapie prototypu. Ten potok umożliwił skalowanie funkcji IntelliCode oraz obsługę 6 języków programowania dzięki regularnemu trenowaniu nowych modeli przy użyciu przykładów kodu z obszernego zestawu repozytoriów GitHub typu open-source.

Dwie osoby prowadzące rozmowę i rysujące diagram na tablicy

Wyzwanie: Od prototypu do produkcji na dużą skalę

Wyzwanie: przyjęcie nowego modelu działania w chmurze

"Oczywiste było, że każdego miesiąca będziemy wykonywać mnóstwo operacji trenowania modelu na bardzo dużych zestawach danych, co wiąże się ze znacznym wykorzystaniem mocy obliczeniowej i sprawiło, że potrzeba zautomatyzowanego, skalowalnego, kompleksowego potoku uczenia maszynowego stała się jeszcze bardziej oczywista."

Gearard Boland, główny menedżer ds. inżynierii oprogramowania, zespół ds. danych i sztucznej inteligencji

Wykorzystywanie szczegółowych informacji za pomocą operacji MLOps

Wraz z wdrożeniem funkcji IntelliCode zespoły dostrzegły możliwość zaprojektowania jeszcze lepszego środowiska użytkownika: stworzenia modeli uzupełniania zespołu w oparciu o specyficzne zwyczaje kodowania każdego klienta. Personalizacja tych modeli uczenia maszynowego wymagałaby automatycznego trenowania i publikowania modeli na żądanie — za każdym razem, gdy zażąda tego użytkownik programu Visual Studio lub Visual Studio Code. Aby wykonywać te funkcje na dużą skalę przy użyciu istniejącego potoku, zespoły korzystały z usług platformy Azure, takich jak Azure Machine LearningAzure Data FactoryAzure BatchAzure Pipelines.

Wyzwanie: przyjęcie nowego modelu działania w chmurze

"Kiedy dodaliśmy obsługę modeli niestandardowych, skalowalność i niezawodność potoku trenowania stały się jeszcze ważniejsze"

Gearard Boland, główny menedżer ds. inżynierii oprogramowania, zespół ds. danych i sztucznej inteligencji

Połączenie dwóch różnych perspektyw

Aby utworzyć proces uczenia maszynowego, zespoły musiały zdefiniować wspólne standardy i wytyczne, aby mogły mówić wspólnym językiem, dzielić się najlepszymi rozwiązaniami i lepiej ze sobą współpracować. Musiały również wzajemnie zrozumieć swoje podejścia do projektu. Podczas gdy zespół ds. analizy danych pracował eksperymentalnie — wykonując szybkie iteracje tworzenia modelu — zespół inżynieryjny skupił się na zapewnieniu, że funkcja IntelliCode spełnia oczekiwania użytkowników programu Visual Studio dotyczące funkcji na poziomie produkcyjnym.

Obecnie cały potok uczenia maszynowego — trenowanie, ewaluacja, pakowanie i wdrażanie — działa automatycznie i obsługuje miesięcznie ponad 9000 żądań tworzenia modelu od użytkowników programów Visual Studio i Visual Studio Code. Zespoły szukają sposobów wykorzystania ich potoku w celu wbudowania dodatkowych funkcji sztucznej inteligencji w inne produkty firmy Microsoft i zapewnienia klientom jeszcze bogatszych środowisk obsługi.

" "

Zobacz, w jaki sposób zespoły wdrożyły operacje uczenia maszynowego krok po kroku.