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.

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 schaffte die Grundlage für Visual Studio IntelliCode, eine KI-gestützte Codevorhersagefunktion. Zuvor wurde dieser jedoch strengen Qualitäts-, Verfügbarkeits- und Skalierbarkeitstests unterzogen, damit die Erwartungen der Visual Studio-Benutzer erfüllt werden. Das Engineeringteam musste einbezogen werden, um eine Machine-Learning-Plattform zu entwickeln und den Prozess zu automatisieren. Zudem musste in beiden Teams die MLOps-Kultur eingeführt werden, durch die DevOps-Prinzipien auf den gesamten Machine-Learning-Lebenszyklus ausgeweitet werden.

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

Beim Rollout von IntelliSense hat sich den Teams die Chance geboten, ein noch besseres Feature zu entwickeln: das Erstellen von Teamvervollständigungsmodellen, die auf den Programmiergewohnheiten der Kunden basieren. Für die Personalisierung dieser Machine Learning-Modelle müssten das Training und die Modellbereitstellung bei Bedarf automatisch ablaufen, also wenn ein Visual Studio- oder Visual Studio Code-Benutzer eine Anforderung stellt. Damit diese Funktionen je nach Bedarf im gewünschten Umfang über die vorhandene Pipeline ausgeführt werden können, hat das Team Azure-Dienste wie Azure Machine Learning, Azure Data Factory, Azure Batch und Azure Pipelines verwendet.

"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