DevOps in AI, the mastery of ML technology
Autor: Klaus Puchner (Program Manager AI & Team Lead)
Vorstellung der Rolle AI DevOps Engineer
Willkommen in der Welt von Machine Learning Operations (MLOps). In diesem zweiten Teil unserer Mini Serie wollen wir euch in die Rolle des AI DevOps Engineers in unserem Team Einblick gewähren. Wir stellen euch vor, was dieses MLOps eigentlich ist, welche Rolle der AI DevOps Engineer in diesem Kontext im AI Team spielt und warum diese Rolle so wichtig für erfolgreiche AI Projekte ist. Um das Bild bestmöglich abzurunden, teilt Michi zum Schluss noch seine Erfahrungswerte als AI DevOps Engineer bei uns im Team.
Was ist MLOps?
MLOps ist grundsätzlich eine Sammlung von Methoden und Werkzeugen, die das Ziel haben, das Deployment und die Wartung von Machine Learning Lösungen über deren gesamten Lebenszyklus zuverlässig und effizient zu gestalten. Die Ähnlichkeit zwischen den Begriffen DevOps und MLOps ist dabei kein Zufall, da DevOps in vielerlei Hinsicht (ideologisch wie zum Teil auch technologisch) die Grundlage für MLOps darstellt. Der Unterschied begründet sich in der Charakteristik von Machine Learning Projekten sowie den damit hinzukommenden Herausforderungen organisatorischer und technischer Natur.
Warum braucht das AI Team MLOps?
MLOps ist der essenzielle Erfolgsfaktor wenn es darum geht theoretische Business Benefits von ML Modellen auch in der Praxis (speziell langfristig) nutzbar zu machen. Zusätzlich zur (Weiter-)Entwicklung und Wartung von tragenden Elementen eines AI Product Deployments (der Infrastruktur sowie weiteren Softwarebestandteilen der Lösung), gilt es auch die Qualität des AI Anteils der Lösung über die gesamte Lebenszeit aktiv zu managen.
Tut man dies nicht, kann dies negative Auswirkungen auf die Leistungsfähigkeit der AI Lösung haben: Ein AI Product, das zum Zeitpunkt des Deployments eine hervorragende Predictive Power hatte, kann über die Zeit sogar so stark abnehmen, dass es komplett unbrauchbar wird. Der Data und/oder Concept Drift (die langsame Veränderung der Datencharakteristik) hat einen also schleichend eingeholt. Noch schlimmer kann es werden, wenn das AI Product in automatisierte Geschäftsprozesse eingebunden ist und die abnehmende Predictive Power den Geschäftserfolg negativ beeinträchtigt.
Richtig konzeptioniert ist MLOps der Schlüssel um den negativen Einfluss eines Drifts auf die Leistungsfähigkeit einer ML Lösung bestmöglich über den gesamten Lebenszyklus (automatisiert) zu kompensieren. Basierend auf dieser Erkenntnis treiben wir die Implementierung von MLOps Methoden, Praktiken und Werkzeugen laufend voran.
Welche Aufgaben hat ein AI DevOps Engineer im AI Team?
Der AI DevOps Engineer hat zwei Ankerpunkte im Team, die jedoch eng miteinander verzahnt sind. Er ist einerseits Bestandteil eines Product Teams und andererseits Mitglied des AI DevOps Teams.
Im Zuge seines Beitrags im Product Team unterstützt er den Data Scientist dabei, dass dieser alle für sein Projekt erforderlichen Rahmenbedingungen vorfindet. So stellt er in enger Abstimmung sicher, dass der Data Scientist alle Werkzeuge für sein Projekt zur Verfügung hat. Den Bedarf neuer, noch nicht im Standard Portfolio befindlicher Werkzeuge, aber auch Erkenntnisse und Entwicklungen nimmt der AI DevOps Engineer in das AI DevOps Team Meeting mit.
Das AI DevOps Team berät über die Anforderung und die weitere Vorgehensweise. So kann es beispielsweise sein, dass für einen Anwendungsfall bereits bestehende Lösungen verwendbar sind oder aber auch ein neues Werkzeug in den Standard mit aufgenommen werden muss. Je nach Sachverhalt und Komplexität können aus diesem Bedarf resultierende AI DevOps Projekte entstehen, welche ein oder mehrere Engineers vorantreiben. Selbstverständlich kann der AI DevOps Engineer auch von sich aus Themen und Verbesserungsvorschläge einbringen, die auf dieselbe Weise dann behandelt werden.
Was muss ein AI DevOps Engineer im AI Team mitbringen?
Der AI DevOps Engineer deckt fachlich ein sehr breites Themenspektrum ab. Es ist in dieser Rolle also sehr wichtig ein Teamplayer zu sein, der sich als teaminterner Consultant und Dienstleister versteht. Dabei bringt der AI DevOps das Interesse und die Offenheit mit, sich immer wieder in neue Tool(feature)s und Data Science Themen einzuarbeiten.
Ein AI DevOps Engineer hat in der Regel bereits Erfahrung in der Administration von Linux und Kubernetes sowie der Containerisierung von Software mit Docker. Dabei ist er in der Lage, mittels Shell und Python Scripts Aufgaben zu automatisieren. Idealerweise hat er diese Werkzeuge bereits in einem CI/CD Setting (Continuous Integration/Continuous Deployment) verwendet oder sogar selbst implementiert. Auch im Umgang mit Source Code Verwaltung (z.B. via Git/Github) sollten bereits Erfahrungswerte vorhanden sein.
Da wir auf eine hybride, 3 Tier Systemarchitektur setzen (Rapid Prototyping mobil auf den Laptops, Development und Testing on Premise auf einem dediziertem AI Cluster, Deployment auf der Google Cloud Platform) sind Erfahrungswerte im Umgang mit Cloud Technologien ebenfalls ein wichtiger Faktor.
Kommt ein neuer AI DevOps Engineer zu uns ins AI Team erhält dieser ein auf seine Vorkenntnisse maßgeschneidertes Onboarding Programm für die ersten Wochen. Dieses Onboarding sorgt dann dafür, dass der neue Kollege sich auch schnell in Technologien und Werkzeugen zurechtfindet, mit denen er zuvor wenig oder keinen Kontakt hatte.
Wie würde ein AI DevOps Engineer seine Arbeit im AI Team beschreiben?
Wie schon einleitend erwähnt, hat sich unser Senior AI DevOps Engineer Michael Mach bereit erklärt, in eigenen Worten seine Tätigkeit im AI Team zu beschreiben:
“Als AI DevOps Engineer decke ich ein breit gefächertes Themenfeld ab. Angefangen bei der Bereitstellung von der allgemeinen Infrastruktur, die in nahezu jedem Projekt gebraucht wird, bis hin zu AI spezifischen Komponenten des Systems macht es mir Spaß in dieser Position sowohl breites als auch tiefes Wissen aufzubauen. Insbesondere macht mir die Arbeit in diesem Team sehr viel Spass, da ich extrem gut angekommen bin und herzlich von den Kollegen aufgenommen wurde.
Mein Hauptziel dabei ist immer, den Data Scientists eine funktionstüchtige Infrastruktur Plattform bereitzustellen, auf der sie sich auf den Kern ihrer Aufgaben konzentrieren können. Durch die Automatisierung von Prozessen und Komponenten schaffe ich als AI DevOps Engineer die dafür erforderlichen Rahmenbedingungen. Damit stelle ich eine koordinierte und gezielte Qualitätssicherung (Stabilität, Robustheit, Ausfallssicherheit) sicher und ermögliche den reibungslosen Betrieb der gesamten AI-Platform als "AI as a service".
Durch die enge Zusammenarbeit mit den Data Scientists erhalte ich wertvolle Einblicke in ihre spezifischen Probleme und Herausforderungen, wodurch es möglich wird, für den jeweiligen Einsatzzweck geeignete Lösungen und Workflows zu implementieren. In Summe ergibt sich eine spannende Kombination aus technischer Arbeit, interdisziplinärer Aufgabenstellung und kreativer Problemlösungen.”
Du bist neugierig geworden?
Wir haben noch viel vor und suchen deshalb als Unterstützung Menschen, mit ihrer Persönlichkeit und ihren Fähigkeiten sowie ihrem Mut Neues zu lernen und dem Willen mitgestalten zu wollen. Wir freuen uns darauf, dich bei einem persönlichen Gespräch kennen zu lernen.
Weitere interessante Artikel
Du möchtest auch die weiteren Teile dieser AI-Miniserie lesen? Dann haben wir hier die Übersicht für dich:
* English version to be found here.