Der klassischer Weg, ML Modelle zu entwickeln, läuft in etwa so ab:
- Deine Data Scientists entwickeln und testen ein Modell. Wenn es gut funktioniert, schickst du es in Produktion.
- Dein Entwicklungsteam hat reichlich Erfahrung mit APIs, daher arbeiten sie mit ihrem bewährten Toolkit (z.B. bestehend aus Flask, Django, FastAPI oder einem anderen Web-Framework)
- Das funktioniert ... so lala. Ziemlich schnell wird das Team feststellen, dass die Modelldatei größer wird als die Assets, mit denen in den meisten APIs gearbeitet wird. Da jede Anfrage außerdem die gesamte Modelldatei laden muss, wird die Hardware bei stärkerer Belastung stark strapaziert.
- Eine Weile später soll ein neues Modell online gestellt werden. Bevor sich deine Data Scientists sicher sein können, dass es besser funktioniert als das alte, möchten sie es in Produktion testen. Daher schreiben deine Entwickler ein A/B-Test-Skript, um das neue Modell schrittweise online zu nehmen und dabei die Ergebnisse zu kontrollieren.
- Um das Modell auch skalieren zu können, feilen die Entwickler zusätzlich an einer in-Memory Lösung für die Modelle.
- Nach mehreren Monaten entsteht so aus einer einzigen Modelldatei viel mehr. Aus einem überschaubaren 100-Zeilen-Skript wurde mit jeder zusätzlichen Funktion am Ende ein kompliziertes und unüberschaubares Tool.
Keine dieser "extra" Komponenten sind nur für Spezialfälle wichtig. Alle Machine Learning Teams stehen vor nahezu den gleichen Herausforderungen, und trotzdem entwickeln viele für jedes Projekt den gleichen Code von Grund auf neu.
Genau das kann jedoch mit einem Model Serving Tool vermieden werden: Dabei handelt sich um ein Framework, das diese gängigen Aufgaben für dich erledigt, und gleichzeitig an deine eigenen, ganz speziellen Anwendungsfälle angepasst werden kann. Ein ausgezeichnetes Model Serving Tool ist Seldon.
Wie kann Seldon diese Probleme für uns lösen?
Als Teil unserer Open MLOps-Architektur verwenden wir Seldon-core, ein Open Source Model Serving Tool, das auf Kubernetes läuft.
Damit können wir unsere Modelldateien ganz einfach in eine REST-API umwandeln, und zwar fast völlig automatisiert.
Wenn wir beispielsweise ein neues Modell im Rahmen eines Tests schrittweise implementieren wollen, ist das einfache Einstellung in Seldon.
Am wichtigsten ist allerdings, dass wir mit Seldon unsere Machine Learning-Pipeline vollständig automatisieren können. Seldon findet die neueste Version eines trainierten Modells über unser Modell-Registry, wandelt diese in eine API um und stellt sie allen Nutzern zur Verfügung. All das erfolgt automatisch - ganz ohne manuelle Konfiguration oder Veränderungen im Code.
Seldon übernimmt das Roll-Out, Serving, Monitoring und Optimieren unserer Modelle. Damit hilft es uns, Machine Learning-Lösungen zu erstellen, die automatisiert und reproduzierbar sind.
Seldon hilft uns nicht nur dabei, bestehenden Prozesse zu optimieren, sondern bietet auch neue Möglichkeiten. So werden z.B. unsere Modelle interpretierbarer, wir können Bias überwachen und haben direkten Zugriff auf alle wichtigen Performance-Metriken.
Wie lässt sich Seldon in eine bestehende Architektur integrieren?
Model Serving ist nur eine Komponente in unserer Open MLOps-Architektur. Seldon integriert sich mit unserem Model Registry, Feature Store und unserem Experimentation Hub integrieren.
Unser Team entwirft seine Experimente also in einer Notebook-Umgebung, kann jedes dabei verwendete Feature und Modell in einem Feature Store und einem Model Registry nachverfolgen, und stellt die Modelle dann über unser Model Serving Tool für Produktion bereit.
Endnutzer können auf die Modelle am Ende über eine API zugreifen.
Brauchst du Hilfe bei deiner Machine Learning Architektur?
Wir haben fast alle gängigen Tools getestet und diejenigen herausgesucht, die für uns am besten funktionieren. Falls du auch gerade dabei bist, ein Team zusammenzustellen und dich über deine Machine Learning Architektur austauschen möchtest, helfen wir dir gerne weiter. Vereinbare dafür einfach einen kostenlosen Termin mit unserem CEO Markus.