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.

"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, główny menedżer ds. inżynierii oprogramowania, zespół 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.

"When we added support for custom models, the scalability and reliability of our training pipeline became even more important"

Gearard Boland, główny menedżer ds. inżynierii oprogramowania, zespół 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.

Przeczytaj całą historię