Continuous Delivery for Machine Learning
Von Danilo Sato, Arif Wider and Christoph Windheuser
Veröffentlicht: 5. Juli 2019
Machine Learning-Anwendungen in Produktion bringen, ist schwer.
In der heutigen Softwareentwicklung ist es selbstverständlich geworden, dass Usern laufend neue Funktionen und Erweiterungen geboten werden. Das trifft sowohl bei Benutzeranwendungen im Mobil-, Web- und Desktop-Bereich zu als auch bei moderner Unternehmenssoftware. Umfangreiche und den Betrieb störende Software Go Lives werden nicht mehr geduldet. ThoughtWorks ist ein Pionier bei Continuous Delivery (CD), einer Reihe von Prinzipien und Praktiken, die die Frequenz mit der Software zuverlässig produktiv ausgeliefert werden kann, drastisch erhöhen.
Da Organisationen zunehmend Daten-getrieben arbeiten oder sich sogar bereits in Richtung KI-getrieben orientieren, wird es immer wichtiger, Data-Science- und Data-Engineering-Ansätze in die Softwareentwicklung einfließen zu lassen, damit keine spezialisierten Silos entstehen, die eine effiziente Zusammenarbeit verhindern. Allerdings ist diese Integration auch mit neuen Hürden verbunden:
Mehr Artefakte, die sich verändern. Es müssen nicht nur die Softwarecode-Artefakte verwaltet werden, sondern auch die Datenbasis und Machine Learning (ML)-Modelle sowie die in den Modellen verwendeten Parameter und Hyperparameter. Sämtliche dieser Artefakte müssen über verschiedene Stufen hinweg administriert, versioniert und optimiert werden, bis sie in Produktion übernommen werden. Die Sicherstellung von Versionierung, Qualitätskontrolle, Zuverlässigkeit, Wiederholbarkeit und Prüffähigkeit ist daher aufwändiger und komplexer.
Größe und Übertragbarkeit. Die Größenordnung von Trainingsdaten und ML-Modellen liegt im Allgemeinen deutlich über der von Softwarecode. Insofern sind für eine effiziente Handhabung andere Werkzeuge erforderlich. Dies erschwert die Nutzung eines universellen Artefakt-Formats, was zu einer "Über den Zaun werfen"-Mentalität zwischen den verschiedenen Teams führen kann.
Unterschiedliche Fähigkeiten und Arbeitsmethoden der Mitarbeiter. Für die Entwicklung von ML-Anwendungen werden Fachkräfte mit sich ergänzenden Fähigkeiten benötigt. Mitunter haben diese Fachkräfte gegensätzliche Zielsetzungen, Ansätze oder Arbeitsmethoden:
- Data Scientists befassen sich mit den Daten, extrahieren Merkmale und suchen nach geeigneten Modellen, mit denen sich die gewünschten Erkenntnisse am besten gewinnen lassen. Sie gehen vorzugsweise wissenschaftlich vor, indem sie Hypothesen aufstellen und diese anhand der Daten verifizieren oder entkräften. Sie brauchen Werkzeuge, mit denen sie Daten verarbeiten, parallele Experimente durchführen, Prototypen zügig erstellen, Daten visualisieren und mehrere Modelle skalierbar trainieren können.
- EntwicklerInnen und ML-Engineers wollen die Modelle in reale Anwendungen oder Services einbinden und dort einsetzen. Ihr Anliegen ist es, dass die Modelle möglichst zuverlässig, sicher, effizient und skalierbar sind.
- Data Engineers kümmern sich darum, dass die richtigen Daten stets auf dem aktuellen Stand und von hoher Qualität sind und im jeweils benötigten Umfang, Format und Detailgrad schnell und kosteneffizient abgerufen werden können.
- Die (Unternehmens-) Fachseite definiert die Anforderungen. Sie geben die Untersuchungsrichtung der Data Scientists vor. Sie legen fest, anhand welcher Kennzahlen gemessen wird, ob das ML-System die gewünschten Resultate auf dem angestrebten Qualitätsniveau liefert.
Continuous Delivery for Machine Learning (CD4ML) ist der technische Ansatz, mit dem dieser Problematik entgegengewirkt werden soll. CD4ML bringt die verschiedenen Gruppen an einen Tisch, sodass sie ML-Anwendungen entwickeln, bereitstellen und kontinuierlich verbessern können.