Navigation überspringen

Automatisierung von Machine-Learning-Workflows zur Integration von KI in Visual Studio

Hier erfahren Sie, wie Data Scientists und Engineers in der Microsoft-Entwicklerabteilung ein erfolgreiches Experiment dank MLOps-Ansätzen in ein hochleistungsfähiges Produktfeature umgewandelt haben.

Weiterlesen

Die Herausforderung: vom Prototyp zur Produktionsreife

Nachdem ein kleines Microsoft-Entwicklerteam sechs Monate lang KI- und Machine-Learning-Experimente durchgeführt hat, um die Entwicklerproduktivität zu steigern, entstand letztendlich ein Modell, das die C#-Methoden vorhergesagt hat, die ein Entwickler beim Programmieren wahrscheinlich aufruft.

Dieser erfolgreiche Machine Learning-Prototyp sollte die Basis für Visual Studio IntelliCode werden, eine KI-gestützte Code-Vorhersagefunktion – aber erst, nachdem es strengen Qualitäts-, Verfügbarkeits- und Skalierungstests unterzogen wurde, um den Anforderungen der Visual Studio-Benutzer gerecht zu werden. Sie mussten das Entwicklungsteam auffordern, eine Machine Learning-Plattform zu schaffen und diesen Prozess zu automatisieren. Und beide Teams mussten eine MLOps-Kultur einführen und die DevOps-Prinzipien auf den gesamten Lebenszyklus des maschinellen Lernens ausweiten.

Zusammen haben die Teams für angewandte Informatik und Engineering eine Machine-Learning-Pipeline entwickelt, die das Modelltraining durchläuft und einen Großteil der Arbeit automatisiert, die das Team für angewandte Information in der Prototypphase manuell durchgeführt hat. Dank dieser Pipeline konnte IntelliCode auf sechs Programmiersprachen erweitert werden, und es werden regelmäßig neue Modelle anhand von Codebeispielen aus einer Vielzahl quelloffener GitHub-Repositorys trainiert.

"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, Team für Daten und KI

MLOps stellt Erkenntnisse in den Mittelpunkt

Als IntelliCode eingeführt wurde, sahen die Teams die Möglichkeit, eine noch bessere Benutzererfahrung schaffen: Das Erstellen von Team-Abschluss-Modellen basierend auf den spezifischen Codierungsgewohnheiten jedes Kunden. Die Personalisierung dieser Machine Learning-Modelle würde das automatische Trainieren und Veröffentlichen von Modellen bei Bedarf erfordern – immer dann, wenn ein Visual Studio- oder Visual Studio Code-Benutzer dies anfordert. Um diese Funktionen im großen Stil mithilfe der bestehenden Pipeline auszuführen, verwendeten die Teams Azure-Dienste wie Azure Machine Learning, Azure Data Factory, Azure Batch und 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, Team für Daten und KI

Zwei Perspektiven treffen aufeinander

Für die Erstellung ihrer Machine-Learning-Pipeline mussten die Teams gemeinsame Standards und Richtlinien ausarbeiten, damit die Teams auf einer Wellenlänge sind, einheitliche Best Practices befolgen und besser zusammenarbeiten. Natürlich mussten sie sich auch in die Projektansätze des jeweils anderen Teams einarbeiten. Während das Data-Science-Team eher experimentell – mit schnellen Iterationen bei der Modellerstellung – gearbeitet hat, hat sich das Engineeringteam darauf konzentriert, dass IntelliCode die Erwartungen erfüllt, die Visual Studio-Benutzer an produktionsreife Features haben.

Mittlerweile läuft die gesamte Machine-Learning-Pipeline – Training, Evaluierung, Packen und Bereitstellung – automatisch und verarbeitet monatlich über 9.000 Modellerstellungsanforderungen von Visual Studio- und Visual Studio Code-Benutzern. Die Teams suchen nach Möglichkeiten, ihre Pipeline zu verwenden, um zusätzliche KI-Funktionen in andere Microsoft-Produkte zu integrieren und die Kundenzufriedenheit weiter zu verbessern.

So haben die Teams MLOps Schritt für Schritt implementiert.

Weiterlesen
Können wir Ihnen helfen?