Model Registry
Eine Modellregistrierung ist ein versionisierter Katalog trainierter Modelle und ihrer Metadaten. Sie hält fest, welche Version freigegeben ist und welche in der Produktion läuft.
Ein Modellregister ist ein versionierter Katalog trainierter Modelle des maschinellen Lernens. Jeder Eintrag speichert ein Modellartefakt, etwa eine Datei mit Modellgewichten, zusammen mit den Metadaten, die nötig sind, um dem Modell zu vertrauen: den Trainingslauf, der dieses Modell erzeugt hat, die Datenversion, Bewertungsmetriken wie die mittlere durchschnittliche Präzision (mAP), das Ein- und Ausgabeschema, die verantwortliche Person und den Genehmigungsstatus. Pipelines für die Bereitstellung und Anwendungen rufen eine benannte Version oder die Version, die derzeit als Produktionsversion gekennzeichnet ist, aus dem Register ab, statt Dateien mit Modellgewichten hin- und herzuschieben, sodass jedes Release und jedes Rollback auf ein genau dokumentiertes Modell verweist. Im Betrieb des maschinellen Lernens (MLOps) liegt das Register zwischen der Nachverfolgung von Experimenten und der Bereitstellung von Modellen. Zu den weit verbreiteten Modellregistern gehören das Modellregister von MLflow, das Modellregister von Amazon SageMaker, das Modellregister von Vertex AI und das Register von Weights & Biases.
So funktioniert eine Modellregistrierung#
Ein registriertes Modell ist ein Name wie defect-detector, unter dem eine Folge von Versionen geführt wird. Jede Version ist nach der Registrierung unveränderlich: Neue Gewichte erhalten immer eine neue Versionsnummer, und Version 7 steht immer für dieselben Bytes. Eine Version enthält üblicherweise:
- Herkunft: Die Lauf-ID, den Code-Commit, die Datensatzversion und das übergeordnete Modell, aus denen sie hervorgegangen ist.
- Bewertungsergebnisse: Validierungskennzahlen sowie die auf jedem Zielgerät gemessene Latenz und Speichernutzung.
- Signatur: Das erwartete Eingabe- und Ausgabeschema, damit ein Aufrufer bei einer falschen Form sofort einen Fehler erhält.
- Modellkarte: Dokumentation des vorgesehenen Einsatzes, der Trainingsdaten und der bekannten Einschränkungen.
- Status: Schlagwörter und Aliase, die den Stand der Version kennzeichnen.
Die Ultralytics Platform speichert für jeden dort gehosteten YOLO-Trainingslauf solche Informationen: Die Modellseite führt das übergeordnete Modell, die festgelegte Datensatzversion, den Git-Commit, die ultralytics-Version, Hyperparameter, die endgültigen Kennzahlen und einen reproduzierbaren yolo train-Befehl auf. Ein Feld für benutzerdefinierte Metadaten nimmt ein JSON-Objekt für die Versionsverfolgung oder Governance entgegen.
Ältere Registrierungen führten jede Version durch festgelegte Phasen wie Staging, Production und Archived. MLflow hat die Phasen mit Version 2.9.0 zugunsten von Aliasen eingestellt. Aliase sind veränderbare benannte Verweise wie @champion, die ein Team zwischen Versionen verschieben kann. Amazon SageMaker erfasst für jede Version den Genehmigungsstatus PendingManualApproval, Approved oder Rejected. Ein Modell freizugeben bedeutet, seinen Alias zu verschieben; zum Zurücksetzen wird der Alias zurückverschoben:
Registrierungen steuern außerdem, wer welche Änderungen vornehmen darf. Datenwissenschaftler können Versionen registrieren, benannte Prüfer verschieben den Produktionsalias, und jede Änderung wird in einem Prüfprotokoll festgehalten. Teams verknüpfen diese Ereignisse häufig mit Automatisierungen, sodass die Genehmigung einer Version die Bereitstellungspipeline startet und eine Warnung der Modellüberwachung zu einer Datenverschiebung das erneute Training anstößt, bei dem der nächste Kandidat registriert wird.
Die MLflow-Registrierung veranschaulicht das Muster mit wenigen Zeilen. Dieses Skript trainiert einen kleinen Klassifikator aus scikit-learn, registriert ihn, weist den Alias champion der neuen Version zu und lädt das Modell über den Alias. So findet Modellbereitstellung-Code das aktuelle Produktionsmodell:
import mlflow
from mlflow import MlflowClient
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
# Keep runs and registered model versions in a local SQLite file
mlflow.set_tracking_uri("sqlite:///mlflow.db")
X, y = load_iris(return_X_y=True)
# Log a trained model inside a run, then register it as a new version
with mlflow.start_run():
model = LogisticRegression(max_iter=200).fit(X, y)
info = mlflow.sklearn.log_model(model, name="model")
version = mlflow.register_model(info.model_uri, "iris-classifier")
# Point the "champion" alias at this version; applications load the alias
MlflowClient().set_registered_model_alias("iris-classifier", "champion", version.version)
champion = mlflow.pyfunc.load_model("models:/iris-classifier@champion")
print(f"version {version.version}:", champion.predict(X[:3]))Bei einer neuen Datenbank gibt das Skript version 1: [0 0 0] aus: die registrierte Version und ihre vorhergesagten Klassen für die ersten drei Blumen. Bei einer erneuten Ausführung wird Version 2 registriert, und dieselbe models:/iris-classifier@champion-URI verweist über den Alias darauf, ohne dass sich der Ladekode ändert.
Modellregistrierungen im Vergleich zu verwandten Werkzeugen#
- Experimentverfolgung: Zeichnet jeden Trainingslauf auf, auch die vielen, die nie verwendet werden. Die Registrierung enthält die wenigen Kandidaten, die sich für eine Bereitstellung eignen, und verknüpft jede Version mit ihrem Trainingslauf.
- Objektspeicher: Speicherorte wie Amazon S3 enthalten die Dateien. Eine Registrierung ergänzt Versionen, Metadaten und Zugriffskontrolle und speichert häufig nur einen Verweis auf die Datei im Speicherort.
- Merkmalspeicher: Versioniert und stellt die Eingabemerkmale bereit, die Modelle verwenden; die Modelle selbst werden in der Registrierung aufbewahrt.
- Container-Registrierung: Speichert die Docker-Images, mit denen Modelle ausgeführt werden. Bei einer Bereitstellung werden deshalb üblicherweise ein Image-Tag und eine Modellversion angegeben.
- Hugging Face Hub: Beherbergt öffentliche und private Modelle in Git-Repositories mit Commit-Verlauf und einer Modellkarte auf der Startseite jedes Repositorys. Damit dient der Hub als Registrierung für Modelle mit offenen Gewichten.










