Automatisierung von Machine-Learning-Workflows zur Integration von KI in Visual Studio
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 ausgeweitet werden, und es werden regelmäßig neue Modelle anhand von Codebeispielen aus einer Vielzahl quelloffener GitHub-Repositorys trainiert.
Die Herausforderung: vom Prototyp zur Produktionsreife
Die Herausforderung: Wechsel zu einem Cloudbetriebsmodell
"Natürlich wollten wir jeden Monat viele rechenintensive Modelltrainings mit sehr großen Datasets durchführen, sodass die Notwendigkeit einer automatisierten, skalierbaren End-to-End-Machine Learning-Pipeline deutlich wird."
Gearard Boland, Principal Software Engineering Manager, Team für Daten und KI
MLOps stellt Erkenntnisse in den Mittelpunkt
Beim Rollout von IntelliSense bot sich den Teams die Chance, ein noch besseres Feature zu entwickeln: das Erstellen von Modellen zu Teamvervollständigung , 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.
Die Herausforderung: Wechsel zu einem Cloudbetriebsmodell
"Als wir Unterstützung für benutzerdefinierte Modelle hinzugefügt haben, wurde die Skalierbarkeit und Zuverlässigkeit unserer Trainingspipeline noch wichtiger"
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, um auf einer Wellenlänge zu sein, gemeinsame Standards und Richtlinien ausarbeiten, 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 – arbeitete, konzentrierte sich das Engineeringteam darauf, 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, mithilfe ihrer Pipeline zusätzliche KI-Funktionen in andere Microsoft-Produkte zu integrieren und die Kundenzufriedenheit weiter zu verbessern.