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.
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 Learning, Azure Data Factory, Azure Batch i Azure 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.