Erste AI Model Experiments-Instanz erstellen, verbinden und ein erstes Experiment durchführen
Zuletzt aktualisiert am
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Sie haben ein STACKIT Kundenkonto: Kundenkonto erstellen
- Sie haben ein STACKIT Benutzerkonto: Benutzerkonto erstellen
- Sie haben ein STACKIT Projekt: Projekte erstellen
- Sie haben STACKIT Object Storage aktiviert: Object Storage aktivieren
Diese Anleitung ermöglicht es Ihnen, schnell eine laufende STACKIT AI Model Experiments Instanz zu erhalten und ein Experiment darauf auszuführen. Dabei verwenden Sie Standardeinstellungen, die für die meisten Anwendungsfälle geeignet sind.
Instanz und Token erstellen
Abschnitt betitelt „Instanz und Token erstellen“Folgen Sie diesen Schritten, um Ihre Instanz zu erstellen:
-
Besuchen Sie das STACKIT Portal.
-
Klicken Sie in der Seitenleiste auf AI Model Experiments.
Falls AI Model Experiments in Ihrer Region nicht aktiviert ist, erscheint eine Schaltfläche Aktivieren. Klicken Sie darauf, um das Produkt in Ihrer Region zu aktivieren. Hierbei entstehen keine weiteren Kosten.
-
Klicken Sie in der oberen Leiste auf AI Model Experiments erstellen.
-
Geben Sie im neuen Bereich eine Beschreibung und einen Namen ein.
-
Klicken Sie auf Erstellen.
-
Warten Sie, bis Ihre Instanz den Status Aktiv erreicht hat.
-
Klicken Sie auf Ihre neue Instanz und speichern Sie deren URL an einem sicheren Ort.
Dieser Artikel bezeichnet diese URL als
ai-model-experiments-instance-uri.
Nachdem Ihre Instanz den Status Aktiv erreicht hat, können Sie mit der Erstellung eines Zugriffstokens fortfahren. Folgen Sie dazu diesen Schritten:
-
Besuchen Sie das STACKIT Portal.
-
Klicken Sie in der Seitenleiste auf AI Model Experiments.
-
Navigieren Sie zu Ihrer Instanz und klicken Sie darauf.
-
Klicken Sie in der linken Leiste auf Tracking-Tokens.
-
Klicken Sie auf Tracking-Token erstellen.
-
Geben Sie im neuen Bereich einen Namen ein und klicken Sie auf Erstellen.
-
Speichern Sie Ihren Token an einem sicheren Ort.
Dieser Artikel bezeichnet diesen Token als
ai-model-experiments-access-token.
Nun erfüllen Sie alle internen Voraussetzungen. Als letzten Schritt zur Vorbereitung müssen Sie Zugangsdaten für den neu erstellten Object Storage Bucket erstellen:
-
Besuchen Sie das STACKIT Portal.
-
Klicken Sie in der Seitenleiste auf Object Storage.
-
Klicken Sie im Untermenü auf Anmeldedaten & Gruppen.
-
Navigieren Sie zu dem Eintrag, der mit
aiexpbeginnt, und klicken Sie darauf. -
Klicken Sie links auf Zugangsdaten.
-
Klicken Sie in der oberen Leiste auf Zugangsdaten erstellen.
-
Klicken Sie im Bereich auf Erstellen.
-
Kopieren Sie die Access key ID und den Secret access key an einen sicheren Ort.
Dieser Artikel bezeichnet die Key ID und den Schlüssel selbst als
stackit-object-storage-access-keyundstackit-object-storage-secret-key.
Umgebung einrichten
Abschnitt betitelt „Umgebung einrichten“Um mit der Nutzung von STACKIT AI Model Experiments zu beginnen, installieren Sie die Python-Bibliotheken MLflow™ und boto3. Während MLflow™ Ihre Experimente verwaltet, stellt boto3 die erforderliche S3-kompatible Schnittstelle zum Speichern von Artefakten wie Modelldateien und Diagrammen bereit.
Erstellen und aktivieren Sie zunächst eine virtuelle Umgebung:
python -m venv ai-model-experimentssource ai-model-experiments/bin/activateFür dieses spezifische Tutorial müssen Sie außerdem einige zusätzliche Data-Science-Tools installieren. Führen Sie den folgenden Befehl aus, um die erforderlichen Bibliotheken zu installieren:
pip install mlflow boto3 xgboost numpyUm dem MLflow™-Client die Authentifizierung und Kommunikation mit dem Tracking-Server sowie dem Artefakt-Speicher zu ermöglichen, müssen Sie zudem die folgenden Umgebungsvariablen konfigurieren:
# MLflow Tracking Server Konfigurationexport MLFLOW_TRACKING_URI="[ai-model-experiments-instance-uri]"export MLFLOW_TRACKING_TOKEN="[ai-model-experiments-access-token]"# S3 Zugangsdaten für Artefakt-Zugriffexport AWS_ACCESS_KEY_ID="[stackit-object-storage-access-key]"export AWS_SECRET_ACCESS_KEY="[stackit-object-storage-secret-key]"# STACKIT S3 Endpoint URLexport MLFLOW_S3_ENDPOINT_URL="https://object.storage.eu01.onstackit.cloud"Detaillierte Anweisungen zum Generieren und Abrufen dieser Werte finden Sie unter Einrichten einer lokalen Umgebung für AI Model Experiments.
Ein Experiment erstellen
Abschnitt betitelt „Ein Experiment erstellen“Experimente sind eine Möglichkeit, Ihre Durchläufe (Runs) zu organisieren. Sie können ein neues Experiment mit der Funktion mlflow.create_experiment erstellen.
import mlflow
experiment_name = "my-first-experiment"mlflow.create_experiment(experiment_name)mlflow.set_experiment(experiment_name)Erstellen Sie eine neue Datei mit dem oben gezeigten Code namens create_experiment.py und führen Sie diese aus:
python create_experiment.pyEinen Run starten und Daten protokollieren
Abschnitt betitelt „Einen Run starten und Daten protokollieren“Innerhalb eines Experiments können Sie Runs starten, um einzelne Ausführungen Ihres Codes zu verfolgen. Sie können Parameter, Metriken und Artefakte für einen Run protokollieren.
import mlflow
with mlflow.start_run() as run: run_id = run.info.run_id print(f"MLflow Run ID: {run_id}")
# Parameter protokollieren mlflow.log_param("alpha", 0.5)
# Metrik protokollieren mlflow.log_metric("accuracy", 0.95)
# Artefakt protokollieren with open("artifact.txt", "w") as f: f.write("This is a dummy artifact.") mlflow.log_artifact("artifact.txt")Erstellen Sie eine neue Datei mit dem oben gezeigten Code namens run_experiment.py und führen Sie diese aus:
python run_experiment.pyDas Skript erzeugt eine Ausgabe ähnlich zu dieser:
MLflow Run ID: b10f5deb2dd34af7b3824e5c3e03903dVollständiges Tracking-Skript
Abschnitt betitelt „Vollständiges Tracking-Skript“Während MLflow™ hervorragend geeignet ist, um einzelne Metriken und Dateien zu verfolgen, liegt seine Hauptstärke in der Verwaltung des gesamten Machine-Learning-Lebenszyklus. Das folgende Skript demonstriert einen vollständigen End-to-End-Workflow: Erstellen eines Experiments, Protokollieren von Parametern, Speichern eines trainierten XGBoost-Modells und dessen Registrierung.
Dieses Beispiel führt mehrere fortgeschrittene Funktionen ein:
- Natives Model Flavoring: Anstatt das Modell als generische Datei zu speichern, verwenden wir
mlflow.xgboost.log_model. Dies bewahrt die interne Struktur des Modells und ermöglicht es, es als funktionales Objekt wieder zu laden. - Model Signatures: Durch die Verwendung von
infer_signaturedefinieren wir einen “Datenvertrag”, der die exakten Eingabe- und Ausgabeformate festlegt. Dies gewährleistet Sicherheit und Konsistenz, wenn das Modell später für Inferenzen verwendet wird. - Automatisierte Registrierung: Das Skript fügt das trainierte Modell über den Parameter
registered_model_nameautomatisch der Model Registry hinzu, wodurch es sofort für Versionierung und Deployment verfügbar ist.
import mlflowimport numpy as npimport xgboost as xgbfrom mlflow.models import infer_signature
# 1. Experiment initialisierenexperiment_name = "my-first-experiment"if not mlflow.get_experiment_by_name(experiment_name): mlflow.create_experiment(experiment_name)mlflow.set_experiment(experiment_name)
# 2. Einen Trainings-Run startenwith mlflow.start_run() as run: run_id = run.info.run_id print(f"Active Run ID: {run_id}")
# Metadaten protokollieren mlflow.log_param("algorithm", "XGBoost") mlflow.log_param("layers", 3) mlflow.log_metric("accuracy", 0.95)
# Eine Dummy-Artefaktdatei erstellen with open("notes.txt", "w") as f: f.write("Model trained on synthetic data.") mlflow.log_artifact("notes.txt")
# --- Modell trainieren --- X = np.random.rand(100, 10) y = np.random.randint(0, 2, 100) dtrain = xgb.DMatrix(X, label=y)
model = xgb.train({"objective": "binary:logistic"}, dtrain, num_boost_round=5)
# Modell mit Signatur protokollieren (definiert Eingabe-/Ausgabeschema) signature = infer_signature(X, model.predict(dtrain)) mlflow.xgboost.log_model( xgb_model=model, artifact_path="model-artifacts", signature=signature, registered_model_name="stackit-xgboost-model" )Erstellen Sie eine neue Datei mit dem oben gezeigten Code namens register_model.py und führen Sie diese aus:
python register_model.pySie sollten eine Ausgabe wie diese erhalten:
Successfully registered model 'stackit-xgboost-model'.Created version '1' of model 'stackit-xgboost-model'.Laden und Inferenz
Abschnitt betitelt „Laden und Inferenz“Sobald ein Modell in der Model Registry registriert ist, können Sie es unter Verwendung seines Namens und seiner Version laden.
import mlflow.xgboostimport xgboost as xgbimport numpy as np
# Modell-URI definieren (Version 1 verwenden)model_name = "stackit-xgboost-model"model_version = 1model_uri = f"models:/{model_name}/{model_version}"
# Modell ladenloaded_model = mlflow.xgboost.load_model(model_uri)
# Inferenz ausführensample_data = xgb.DMatrix(np.random.rand(1, 10))predictions = loaded_model.predict(sample_data)print(f"Predictions: {predictions}")Erstellen Sie eine neue Datei mit dem oben gezeigten Code namens load_model.py und führen Sie diese aus:
python load_model.pyDie Ausgabe wird wie folgt aussehen:
Predictions: [0.58940643]Herzlichen Glückwunsch, Sie haben alle Codebeispiele ausgeführt!
Inspektion Ihrer Experimente
Abschnitt betitelt „Inspektion Ihrer Experimente“Sobald Ihr Code ausgeführt wurde, können Sie Ihre Daten über die MLflow™-Benutzeroberfläche visualisieren und verwalten. Geben Sie dazu einfach Ihre MLFLOW_TRACKING_URI in Ihren Browser ein. Nutzen Sie das Dashboard, um Experiment-Runs zu überprüfen, Metriken über verschiedene Versionen hinweg zu vergleichen und die in STACKIT Object Storage gespeicherten Artefakte zu inspizieren.
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“Herzlichen Glückwunsch! Sie haben STACKIT AI Model Experiments erfolgreich in Ihren Workflow integriert.
Während dieses Tutorial die grundlegende Einrichtung durch die Installation des MLflow™-SDK und boto3 sowie die Protokollierung Ihres ersten Runs abgedeckt hat, gibt es noch viel mehr zu entdecken. Wir empfehlen die Lektüre der offiziellen MLflow™ Dokumentation für weitere Details.