Ein Model Registry ist die wahrscheinlich am stärksten vernachlässigte Komponente der meisten MLOps Architekturen. Selbst wenn dein Team automatisierte Pipelines, einen Feature Store und eine Model-Serving Plattform eingerichtet hat, kann es gut sein, dass du nicht jedes deiner Modelle mitsamt aller Versionen und Metadaten nachvollziehen kannst.
Wir haben in unsere Open MLOps-Architektur ein Model Registry integriert. Hier erfährst du, warum du das auch tun solltest.
#1 Einfachere Automatisierung
Ohne ein Model Registry kann dein Model-Serving Tool keine automatischen Requests durchführen, wie z.B. "Zeige mir die neueste Version des Objekterkennung-Modells." Für jedes Update musst du daher mehrere manuelle Arbeitsschritte durchführen, um das Modell in Produktion zu bringen.
Mit einem Model Registry hingegen genügt es, die richtige Verknüpfung hinzuzufügen. Die anderen Komponenten in deinem MLOps-Framework können sich dann alle relevanten Informationen anhand des Model Registry einholen.
#2 Aktuelle Übersicht über alle Modelle
Model Registries enthalten Dashboards, mit denen du alle Modelle deines Teams oder Unternehmens filtern und einsehen kannst. So kannst du direkt sehen, welche Modelle es gibt, ob sie in der Produktion verwendet werden und welche Versionen kürzlich veröffentlicht wurden. Diese Vogelperspektive ist vor allem dann wichtig, wenn du mehrere Projekte gleichzeitig betreust.
#3 Tracking von Modellversionen
Worst-Case-Szenario: Du hast Ergebnisse vor dir liegen, und bist dir aber nicht sicher, von welchem Modell sie stammen. Das kann leicht passieren, wenn dein Team ein Modell verändert, ohne die Versionsnummer in einem Model Registry zu aktualisieren. Ist das die Datei "model.pickle" oder "model-new.pickle" oder doch eine ganz andere?! Dateinamen enthalten in der Regel nicht genügend Informationen, um das entsprechende Modell wiederzufinden, und auch Hinweise wie interne Dokumentationen könnten veraltet oder ungenau sein.
Mit einem Model Registry lässt sich eine bestimmte Versionsnummer festhalten, die bei jeder Änderung aktualisiert wird. Du siehst also beispielsweise auf einen Blick, dass object-detection-model v3.1.2 eine bestimmte Vorhersage getroffen hat; du weißt, wann dieses Modell zuletzt geändert wurde, mit welchen Features es trainiert wurde und welche Änderungen in den Ergebnissen damit verbunden sind.
#4 Tracking der Deployment Umgebung
Ähnlich wie beim Tracken der Modellversionen können Modelle in unterschiedlichen Umgebungen verwendet werden, z.B. in Entwicklung, Staging oder in Produktion. Je nach Workflow werden daher in unterschiedlichen Umgebungen manchmal leicht abgeänderte Modelle verwendet. Diese unterschiedlichen Versionen müssen unbedingt getrackt werden, um zuverlässige Ergebnisse zu gewährleisten.
Mit einem Model Registry kann jedes Modell mit der Umgebung markiert werden, in der es ausgeführt wird.
#5 Modelle verstehen und vergleichen
Vermutlich gibt es für jedes deiner Modelle ein paar Kontext- und Hintergrundinformationen. Ohne ein Model Registry fehlt jedoch ein fester Ort für diese Daten. Mit einem Model Registry lassen sich mit jedem Modell strukturierte und unstrukturierte Metadaten verknüpfen.
Damit dein Team den Überblick behält, sollte jedes Modell mit einer Beschreibung versehen werden, wofür es bestimmt ist und worauf es sich bezieht. Eine einfache Textnotiz wie "Dieses Modell wurde auf der Basis von [diesem Paper] unter Verwendung unseres 2018-2020-Datensatzes trainiert" kann unzählige Arbeitsstunden ersparen, da diese Information nicht im Nachhinein umständlich herausgesucht werden muss.
Andere Metadaten, besonders Evaluationsmetriken, helfen dabei, deine Modelle über ein integriertes Dashboard direkt miteinander zu vergleichen.
#6 Abhängigkeiten der Modelle verwalten
Modelle haben oft unterschiedliche Abhängigkeiten. So wurde vielleicht ein Modell auf PyTorch und ein anderes auf Tensorflow entwickelt. Wenn du diese Abhängigkeiten in einem Model Registry verfolgst, ist sichergestellt, dass sie auch in den richtigen Umgebungen aufgesetzt werden.
Das Model Registry kann außerdem dazu verwendet werden, die Modelle wieder mit dem Preprocessing-Code zu verknüpfen, der bei der Modellentwicklung verwendet wurde. Wo befindet sich das Skript, das du zum Bereinigen der Daten verwendet hast? Welche Feature-Engineering Schritte wurden durchgeführt?
Ein Model Registry bietet eine Brücke zwischen der Modelldatei selbst und dem Code, mit dem sie erstellt wurde.
#7 Auditing
Wenn etwas schief geht, ist es mit einem Model Registry sehr viel einfacher, den Fehler zu finden. Mit einem Model Registry kannst du exakt nachvollziehen, welche Daten in welche Vorhersage eingeflossen sind: welches Modell (+ welche Version) hat die Vorhersage getroffen, in welcher Umgebung lief es und wie wurde das Modell trainiert? All diese Daten sind für ein genaues Audit-Protokoll unerlässlich - sei es, um bei der Fehlerbehebung zu helfen oder um rechtliche Anforderungen zu erfüllen.
#8 Kollaboration
Es kann vorkommen, dass verschiedene Teams an demselben Modell arbeiten. Mit einem Model Registry kann jeder sehen, wann neue Versionen freigegeben werden und welche Änderungen vorgenommen wurden. Jeder im Team oder im Unternehmen hat Zugriff auf genau das gleiche Modell und die gleiche Version.
Wenn zwei Kollegen an der gleichen Datei arbeiten, können sie leichter kooperieren und damit sicherstellen, dass sie reproduzierbare Ergebnisse erhalten. Außerdem kann so vermieden werden, dass sie an unterschiedlichen Versionen eines Modells arbeiten, da sie eine Übersicht über die verschiedenen Versionen und den Zweck jeder einzelnen einsehen können.
Wenn mehrere Teammitglieder das gleiche Modell verbessern möchten, kann jeder das Model Registry nutzen, um zu sehen, was die Kollegen bereits versucht haben und was das Ergebnis war. So kann jeder auf die Arbeit der anderen aufbauen, anstatt immer von Neuem zu beginnen.
Benötigst du Hilfe, um den Überblick über deine Modelle zu behalten?
Wir sind selbst ein Machine Learning Team und kennen die Herausforderungen, die beim kollaborativen Entwickeln von Machine Learning Lösungen entstehen. Kontaktiere uns gerne, wenn du dich mit uns über deine deine MLOps-Architektur und -Tools austauschen möchtest.