Maschinelles Lernen (ML) und Künstliche Intelligenz (KI) sind im Unternehmensalltag inzwischen allgegenwärtig. Dennoch bleibt es eine Herausforderung, das tatsächliche Potenzial von ML durch eine Integration in die realen Geschäftsprozesse voll auszuschöpfen. Viele ML-Experimente kommen über das Stadium eines Prototypen nicht hinaus (laut einem Report von VentureBeat sind dies 87% aller ML-Projekte). Denn der Großteil der Arbeit liegt dann noch vor dem Team: die Lösung in die bestehende IT-Infrastruktur des Unternehmens einzubinden, weiterzuentwickeln und zu warten. Automation ist dabei unverzichtbar, insbesondere, wenn ML in größerem Maßstab eingesetzt werden soll. Thoughtworks und AWS haben in ihrer Zusammenarbeit festgestellt, dass spezifische Praktiken und Tools notwendig sind, um den Geschäftsnutzen von ML tatsächlich zu realisieren.
Als wir vor einigen Jahren unsere ersten Machine-Learning-Projekte mit Kunden umgesetzt haben, hatten wir bereits viel Erfahrung mit DevOps bei klassischen Softwareprojekten. Dieses Mindset, das auf Kollaboration in interdisziplinären Teams setzt, brachten wir mit in die Welt der Data Science. Dort war es bis dahin üblich getrennt von Entwicklern zu arbeiten. Für den Bau von Modellen war das eine Team zuständig, für deren Operationalisierung ein anderes. Das ergab entsprechende Reibungsverluste.
Dem DevOps-Gedanken folgend führten wir in den jeweiligen Projekten die beiden Teams zusammen. Dies brachte den gewünschten Erfolg: Data Scientists und Developer, Data Engineers und DevOps Engineers entwickelten ein gegenseitiges Verständnis für ihre jeweiligen Arbeitsweisen und Probleme, sodass sie gemeinsam Lösungen finden konnten. Team-Mitglieder entwickelten Empathie für die jeweils anderen Rollen und konnten dadurch produktiver zusammenarbeiten: der Weg zur ersten Version eines Produkts verkürzte sich spürbar.
Um das Produkt weiter zu entwickeln, setzen wir klassischerweise auf Continuous Delivery. In einem iterativen Prozess entsteht so eine produktionsreife Anwendung, die demselben Schema folgend auch weiter gepflegt wird. Auch diese Prinzipien haben wir auf die Entwicklung von Machine-Learning-Anwendungen übertragen.
Um den Unterschieden zwischen der Arbeit an klassischen Anwendungen und der an ML-Anwendungen gerecht zu werden, haben wir dafür die Begriffe MLOps und CD4ML (Continuous Delivery for Machine Learning) eingeführt. Denn ML-Projekte haben ihre ganz eigenen Herausforderungen, die vor allem eine erhöhte Komplexität mit sich bringen. Eine Machine-Learning-Anwendung besteht aus vielen beweglichen Teilen. Sie basiert auf:
Daten, die sich fortwährend verändern,
einem Modell, das mit unterschiedlichen Parametern trainiert werden kann
und Code, der den jeweils aktuellen Anforderungen der Umgebung, etwa einer Website, angepasst werden muss.
Änderungen an diesen Elementen müssen festgehalten und nachverfolgt werden können. Für Code hat sich dafür im klassischen Development Git bewährt, aber zum Beispiel ein trainiertes ML-Modell lässt sich in einem Git-Repository nicht ohne Weiteres ablegen. Die unterschiedlichen ML-Bausteine erfordern spezifische Lösungen für die Versionskontrolle.
Wenn Data Scientists an einem Modell arbeiten, dann testen sie oft viele Hypothesen gleichzeitig. Auch diese Experimente müssen sinnvoll dokumentiert werden. Nur so lässt sich nachvollziehen, welches Setup die besten Ergebnisse geliefert hat. Außerdem ist die Dokumentation wichtig, um Auditierbarkeit zu ermöglichen. Es gilt nachzuhalten, welche Daten für welches Experiment benutzt wurden, welche Code-Versionen und welche Parameter.
Versionskontrolle und das Tracken von Experimenten sind nur zwei Probleme von vielen, für die CD4ML spezielle Infrastruktur und Werkzeuge erfordert. Vielmehr gehören dazu außerdem noch:
Bei AWS finden sich die dazu passenden Cloud-Dienste, Managed Services sowie vortrainierte ML-Modelle. Die interdisziplinären Teams finden darin Unterstützung über den gesamten Workflow hinweg: angefangen mit der Daten-Exploration und -Vorbereitung bis zum Entwickeln, Testen und Produktivsetzen von ML-Lösungen. Auch das aktive Monitoring der Modelle, das Anstoßen eines Re-Trainings und die Integration in die CI/CD-Prozesse des Unternehmens gehören dazu.
Die Interdisziplinarität der Teams spiegelt sich in diesen integrierten Werkzeugen wider. Sowohl Developer als auch Data Scientists finden in einer gemeinsamen Benutzeroberfläche die Tools, die sie brauchen, um ihr Projekt gemeinsam weiterzuentwickeln und erfolgreich sowie skalierbar produktiv zu setzen. Einer dieser managed ML-Services von AWS ist Amazon SageMaker. Dieser erlaubt es, eine Vielzahl von Modellen effizient zu handhaben. Er ermöglicht vor allem auch das schnelle Ausprobieren – Grundlage für Innovationen. Denn das Experimentieren und Iterieren lässt sich dank Amazon SageMaker an vielen Stellen durch Automation beschleunigen. Gleichzeitig wird die zugrundeliegende, flexibel skalierbare Cloud Infrastruktur automatisch mit verwaltet, wodurch die Teams die benötigte Performance zu optimierten Kosten abrufen können. Amazon SageMaker skaliert dabei die Infrastruktur je nach Bedarf hoch bzw. runter. Zudem kann über den Managed Service von SageMaker auf kostenoptimierte Compute- Services für Training und Inferenz zugegriffen werden.
Ein wichtiges Ziel von CD4ML ist es, Modelle, die im produktiven Einsatz sind, permanent anhand von realen Daten zu aktualisieren. Doch dazu muss das Modell regelmäßig neu trainiert werden, was auch zu einer Verschlechterung oder zu Fehlern führen kann. Weicht ein ML-Model im Produktiveinsatz ab, wird automatisch Bedarf für ein Re-Training erkannt. Die Ergebnisse solcher Re-Trainings aber auch andere inhaltliche Weiterentwicklungen werden dann wieder automatisch qualitätsgeprüft. Managed Services wie Amazon SageMaker ermöglichen es, eine neue Version automatisch Tests zu unterziehen und sie automatisch zu deployen, sofern die Tests erfolgreich sind. Liegen Qualitätsmaßstäbe jedoch nicht im gewünschten Bereich, wird die Version zurückgehalten und ein Data Scientist kann über das Problem informiert werden.
Indem Routineaufgaben wie das Re-Training und viele andere über den gesamten Workflow hinweg automatisiert werden, kann sich das ML-Team auf die wirklich wichtigen Probleme konzentrieren. Das bedeutet einen Gewinn an Geschwindigkeit, steigert aber auch die Experimentierfreude, wie wir in Projekten festgestellt haben. Die Teams müssen nicht befürchten, dass im Produktiveinsatz etwas kaputt geht, nur weil sie an einer Stelle im Entwicklungszyklus etwas verändern. Das erzeugt Selbstvertrauen und führt schließlich zu schnelleren Iterationszyklen und Machine-Learning-Anwendungen, die mit stets aktuellen Modellen arbeiten. Außerdem erlaubt Amazon SageMaker durch die Separierung von Notebook Instanzen, Trainings Instanzen und Inferenz Instanzen die Umgebung konstant zu halten zwischen Experimentieren und Produktivsetzung. Dies verhindert Fehler und ein verändertes Verhalten der Modelle in Produktion.
Wichtig bei MLOps ist, die richtigen Probleme anzupacken – also tatsächliche Business-Probleme, die sich auch durch ML lösen lassen. Häufige Use Cases für solche Business-Probleme sind u.a.:
die Personalisierung der User Experience,
Vorhersage von Nachfrage nach spezifischen Produkten, um u.a. Logistik und Supply Chain zu optimieren,
die automatisierte Verarbeitung von Dokumenten-Workflows (Kundenformulare)
sowie Spracherkennungsverfahren und interaktive Bots.
Außerdem muss ein Unternehmen für den Einsatz von ML bereit sein: Machine-Learning-Modelle treffen Vorhersagen und statistische Aussagen, die naturgemäß nicht immer 100% akkurat sind. Dies bedeutet, dass ein Unternehmen auf der einen Seite darauf eingestellt sein muss, dass nicht jedes Experiment gelingen wird. Auf der anderen Seite ist ML eventuell aus diesem Grund auch nicht die Antwort auf jede Business Problematik. Deshalb muss bewusst entschieden werden, ob ML für eine Aufgabenstellung die angemessene Lösung ist.
Gleichzeitig ist es wichtig, dass die MLOps-Kultur im Unternehmen vollständig unterstützt wird. Eine Kultur muss sich organisch entwickeln können und braucht dafür kontinuierliche Pflege und einen Safe Space. Neue Tools alleine reichen nicht, um ML produktiv und im großen Maßstab zu nutzen. Neben neuen Arten der Zusammenarbeit können sie dazu beitragen, unterschiedliche Sichtweisen auf den ML-Workflow transparent zu machen und miteinander zu verzahnen. Dies ermöglicht es dann, Machine-Learning-Modelle mit einem hohen Grad an Automatisierung sicher, nachvollziehbar und skalierbar einzusetzen.