Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Maschinelles Lernen in der Produktion erfordert mehr, als nur ein gutes Modell zu trainieren. Sie benötigen zuverlässige Workflows, um Modelle von der Entwicklung bis hin zur Validierung in die Produktion zu verschieben. Die Arbeitsbereichsübergreifende Protokollierung in Microsoft Fabric ermöglicht zwei wichtige Szenarien:
Erstellen Sie End-to-End-MLOps-Workflows. Trainieren und Experimentieren in einem Entwicklungsarbeitsbereich, Überprüfen in einem Testarbeitsbereich und Bereitstellen in einem Produktionsarbeitsbereich mithilfe standardmäßiger MLflow-APIs. Diese Trennung von Umgebungen hilft Teams dabei, Qualitätssperren durchzusetzen und klare Audit-Trails von Experimenten bis zur Produktion aufrechtzuerhalten.
Bringen Sie vorhandene Machine Learning-Ressourcen in Fabric integrieren. Wenn Sie bereits Modelle in Azure Databricks, Azure Machine Learning, einer lokalen Umgebung oder einer anderen Plattform trainiert haben, die MLflow unterstützt, können Sie diese Experimente und Modelle direkt in einem Fabric Arbeitsbereich protokollieren. Sie können Ihre Machine Learning-Artefakte ganz einfach an einem Ort konsolidieren, ohne Ihre Schulungspipelinen neu zu erstellen.
Die arbeitsbereichübergreifende Protokollierung funktioniert über das synapseml-mlflow-Paket, das ein Fabric kompatibles MLflow-Tracking-Plug-In bereitstellt. Sie authentifizieren sich mit Ihrem Zielarbeitsbereich, legen den Nachverfolgungs-URI fest und verwenden standardmäßige MLflow-Befehle.
Hinweis
Die Arbeitsbereichsübergreifende Protokollierung konzentriert sich auf die Code-first-Erfahrung. Die Benutzeroberflächenintegration für Arbeitsbereichsübergreifende Szenarien wird in einer zukünftigen Version behandelt.
Voraussetzungen
- Ein Microsoft Fabric-Abonnement oder eine kostenlose Microsoft Fabric Testversion.
- Schreibberechtigung für den Ziel-Fabric-Arbeitsbereich.
- Ein System zur Nachverfolgung des maschinellen Lernens , das sowohl für Quell- als auch für Zielarbeitsbereiche aktualisiert wird.
Erstellen Sie für Fabric Notizbuchszenarien ein neues Notizbuch, und fügen Sie ein Seehaus an, bevor Sie Code ausführen.
Tipp
Die Arbeitsbereichsübergreifende Protokollierung wird in Arbeitsbereichen mit aktivierter Schutz vor ausgehenden Zugriffen unterstützt. Für die Arbeitsbereichsübergreifende Protokollierung in einem anderen Arbeitsbereich ist ein verwalteter privater Endpunkt erforderlich. Die Protokollierung funktioniert von außerhalb von Fabric und innerhalb desselben Arbeitsbereichs ohne zusätzliche Konfiguration.
Installieren des MLflow-Plug-Ins
Das synapseml-mlflow-Paket ermöglicht die arbeitsbereichübergreifende Protokollierung, indem das Fabric MLflow-Tracking-Plug-In bereitgestellt wird. Wählen Sie den Installationsbefehl basierend auf Ihrer Umgebung aus.
Von Bedeutung
MLflow 3 wird derzeit nicht unterstützt. Sie müssen mlflow-skinny auf Version 2.22.2 oder früher festlegen.
Verwenden Sie für ein Fabric-Notizbuch diesen Befehl, um das Paket mit Onlinenotizbuchabhängigkeiten zu installieren:
%pip install -U "synapseml-mlflow[online-notebook]" "mlflow-skinny<=2.22.2"
Starten Sie nach der Installation den Kernel neu, bevor Sie den verbleibenden Code ausführen.
Protokollieren von MLflow-Objekten in einen anderen Fabric-Arbeitsbereich
In diesem Szenario führen Sie ein Notizbuch in einem Fabric Arbeitsbereich (Quelle) aus und protokollieren Experimente und Modelle in einem anderen Fabric Arbeitsbereich (Ziel).
Festlegen des Zielarbeitsbereichs
Zeigen Sie auf Ihren Zielarbeitsbereich, indem Sie die Umgebungsvariable MLFLOW_TRACKING_URI festlegen:
import os
target_workspace_id = "<your-target-workspace-id>"
target_uri = f"sds://api.fabric.microsoft.com/v1/workspaces/{target_workspace_id}/mlflow"
os.environ["MLFLOW_TRACKING_URI"] = target_uri
Protokollieren von Experimenten und Modellen
Erstellen Sie ein Experiment, und protokollieren Sie eine Ausführung mit Parametern, Metriken und einem Modell:
import mlflow
import mlflow.sklearn
import numpy as np
from sklearn.linear_model import LogisticRegression
from mlflow.models.signature import infer_signature
# Create or set the experiment in the target workspace
EXP_NAME = "my-cross-workspace-experiment"
MODEL_NAME = "my-cross-workspace-model"
mlflow.set_experiment(EXP_NAME)
with mlflow.start_run() as run:
lr = LogisticRegression()
X = np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1)
y = np.array([0, 0, 1, 1, 1, 0])
lr.fit(X, y)
score = lr.score(X, y)
signature = infer_signature(X, y)
mlflow.log_params({
"objective": "classification",
"learning_rate": 0.05,
})
mlflow.log_metric("score", score)
mlflow.sklearn.log_model(lr, "model", signature=signature)
mlflow.register_model(
f"runs:/{run.info.run_id}/model",
MODEL_NAME
)
Nach Abschluss der Ausführung werden das Experiment und das registrierte Modell im Zielarbeitsbereich angezeigt.
Verschieben von MLflow-Objekten zwischen Fabric Arbeitsbereichen
In diesem Szenario protokollieren Sie zunächst Objekte im Quellarbeitsbereich, laden dann die Artefakte herunter und protokollieren sie erneut im Zielarbeitsbereich. Diese Methode ist nützlich, wenn Sie ein trainiertes Modell von einem Entwicklungsarbeitsbereich zu einem Produktionsarbeitsbereich heraufstufen müssen.
Schritt 1: Protokollieren von Objekten im Quellarbeitsbereich
import mlflow
import mlflow.sklearn
import numpy as np
from sklearn.linear_model import LogisticRegression
from mlflow.models.signature import infer_signature
# Log to the current (source) workspace
EXP_NAME = "source-experiment"
mlflow.set_experiment(EXP_NAME)
with mlflow.start_run() as run:
lr = LogisticRegression()
X = np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1)
y = np.array([0, 0, 1, 1, 1, 0])
lr.fit(X, y)
signature = infer_signature(X, y)
mlflow.sklearn.log_model(lr, "model", signature=signature)
source_run_id = run.info.run_id
Schritt 2: Herunterladen von Artefakten aus der Quellausführung
import mlflow.artifacts
# Download the model artifacts locally
local_artifact_path = mlflow.artifacts.download_artifacts(
run_id=source_run_id,
artifact_path="model"
)
Schritt 3: Artefakten erneut im Zielarbeitsbereich protokollieren
import os
target_workspace_id = "<your-target-workspace-id>"
target_uri = f"sds://api.fabric.microsoft.com/v1/workspaces/{target_workspace_id}/mlflow"
os.environ["MLFLOW_TRACKING_URI"] = target_uri
TARGET_EXP_NAME = "promoted-experiment"
TARGET_MODEL_NAME = "promoted-model"
mlflow.set_experiment(TARGET_EXP_NAME)
with mlflow.start_run() as run:
mlflow.log_artifacts(local_artifact_path, "model")
mlflow.register_model(
f"runs:/{run.info.run_id}/model",
TARGET_MODEL_NAME
)
Protokollieren von MLflow-Objekten außerhalb von Fabric
Sie können MLflow-Experimente und -Modelle in einem Fabric Arbeitsbereich aus jeder Umgebung protokollieren, in der Sie Ihre Modelle erstellen, einschließlich:
- Lokale Computer. VS Code, Jupyter-Notizbücher oder lokale Python Umgebung.
- Azure Databricks. Azure Databricks Notizbücher und Aufträge.
- Azure Machine Learning. Azure Machine Learning Compute-Instanzen und Pipelines.
- Jede andere Plattform. Jede Umgebung, die Python und MLflow unterstützt.
Schritt 1: Installieren des Pakets
Installieren Sie das synapseml-mlflow Paket in Ihrer Umgebung:
pip install -U "synapseml-mlflow" "mlflow-skinny<=2.22.2"
Schritt 2: Authentifizieren mit Fabric
Wählen Sie eine Authentifizierungsmethode basierend auf Ihrer Umgebung aus:
Verwenden Sie diese Methode für lokale Entwicklungsumgebungen mit Browserzugriff, z. B. VS Code oder Jupyter.
from fabric.analytics.environment.credentials import SetFabricAnalyticsDefaultTokenCredentialsGlobally
from azure.identity import DefaultAzureCredential
SetFabricAnalyticsDefaultTokenCredentialsGlobally(
credential=DefaultAzureCredential(exclude_interactive_browser_credential=False)
)
Schritt 3: Festlegen des Zielarbeitsbereichs und protokollieren von MLflow-Objekten
Legen Sie nach der Authentifizierung den Nachverfolgungs-URI so fest, dass er auf Ihr Ziel Fabric Arbeitsbereich zeigt, und protokollieren Sie Experimente und Modelle mithilfe standardmäßiger MLflow-APIs:
import os
import mlflow
import mlflow.sklearn
import numpy as np
from sklearn.linear_model import LogisticRegression
from mlflow.models.signature import infer_signature
target_workspace_id = "<your-target-workspace-id>"
target_uri = f"sds://api.fabric.microsoft.com/v1/workspaces/{target_workspace_id}/mlflow"
os.environ["MLFLOW_TRACKING_URI"] = target_uri
EXP_NAME = "external-experiment"
MODEL_NAME = "external-model"
mlflow.set_experiment(EXP_NAME)
with mlflow.start_run() as run:
lr = LogisticRegression()
X = np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1)
y = np.array([0, 0, 1, 1, 1, 0])
lr.fit(X, y)
signature = infer_signature(X, y)
mlflow.log_metric("score", lr.score(X, y))
mlflow.sklearn.log_model(lr, "model", signature=signature)
mlflow.register_model(
f"runs:/{run.info.run_id}/model",
MODEL_NAME
)
Verwendung von arbeitsbereichsübergreifender Protokollierung mit Schutz für ausgehenden Zugriff
Wenn ihr Arbeitsbereich den Schutz für ausgehenden Zugriff aktiviert hat, erfordert die arbeitsbereichübergreifende Protokollierung einen arbeitsbereichübergreifenden verwalteten privaten Endpunkt vom Quellarbeitsbereich bis zum Zielarbeitsbereich.
Die Protokollierung innerhalb desselben Arbeitsbereichs und die Protokollierung von außerhalb Fabric (lokale Computer, Azure Databricks, Azure Machine Learning) funktioniert ohne zusätzliche Konfiguration.
Ausführliche Informationen zu unterstützten Szenarien und der erforderlichen Konfiguration finden Sie unter Workspace-Schutz für ausgehenden Zugriff für Fabric Data Science.
Installieren des Pakets in einem OAP-aktivierten Arbeitsbereich
Der Standardbefehl %pip install erfordert ausgehenden Internetzugriff, der in Arbeitsbereichen mit aktivierter OAP (Outbound Access Protection) blockiert wird. Um das synapseml-mlflow Paket zu installieren, laden Sie es zuerst aus einer Nicht-OAP-Umgebung herunter, und laden Sie es dann in das Lakehouse hoch.
Laden Sie das
synapseml-mlflowPaket von einem Computer mit Internetzugang herunter.pip download synapseml-mlflow[online-notebook]Laden Sie die heruntergeladenen Dateien in das Lakehouse innerhalb Ihres OAP-aktivierten Arbeitsbereichs hoch. Laden Sie alle
.whlDateien in den Abschnitt "Dateien" des Lakehouses hoch (z. B./lakehouse/default/Files).Installieren Sie über den Lakehouse-Pfad in Ihrem Fabric-Notizbuch.
%pip install --no-index --find-links=/lakehouse/default/Files "synapseml-mlflow[online-notebook]>2.0.0" "mlflow-skinny<=2.22.2" --preLegen Sie den Nachverfolgungs-URI fest, um den verwalteten privaten Endpunkt zu verwenden. Wenn Ihr aktueller Arbeitsbereich OAP aktiviert ist, müssen Sie einen arbeitsbereichübergreifenden verwalteten privaten Endpunkt aus dem Quellarbeitsbereich in den Zielarbeitsbereich konfigurieren. Leiten Sie dann den Nachverfolgungs-URI über den privaten Endpunkt weiter.
import os from fabric.analytics.environment.context import FabricContext, InternalContext context = FabricContext(workspace_id=target_workspace_id, internal_context=InternalContext(is_wspl_enabled=True)) print(context.pbi_shared_host) # You need to set up and use this private endpoint if your current workspace has OAP enabled os.environ["MLFLOW_TRACKING_URI"] = f"sds://{context.pbi_shared_host}/v1/workspaces/{target_workspace_id}/mlflow"
Bekannte Einschränkungen
- Schreibberechtigung ist erforderlich. Sie müssen über Schreibberechtigungen für den Zielarbeitsbereich verfügen.
- Arbeitsbereichübergreifende Linien werden nicht unterstützt. Sie können keine Beziehungen zwischen Notizbüchern, Experimenten und Modellen anzeigen, wenn diese Objekte aus verschiedenen Arbeitsbereichen protokolliert werden.
- Das Quellnotizbuch ist in der Zielarbeitsumgebung nicht sichtbar. Das Quellnotizbuch wird nicht im Zielarbeitsbereich angezeigt. Auf den Detail- und Listenseiten der Artefakte ist der Link zum Quellnotizbuch leer.
- Eintragsschnappschüsse werden nicht unterstützt. Machine Learning-Experimente oder Modelle, die an einem anderen Arbeitsbereich protokolliert werden, werden nicht in der Momentaufnahme des Quellausführungsnotizbuchelements angezeigt.
- Große Sprachmodelle werden nicht unterstützt. Die Arbeitsbereichsübergreifende Protokollierung unterstützt keine großen Sprachmodelle (LLMs).
Verwandte Inhalte
- Experimente mit Maschinellem Lernen in Microsoft Fabric
- Nachverfolgen und Verwalten von Machine Learning-Modellen
- Aktualisieren Ihres Machine Learning-Tracking-Systems
- Automatische Anmeldung in Microsoft Fabric
- Git-Integrations- und Bereitstellungspipelinen für Machine Learning-Experimente und -Modelle
- Schutz des ausgehenden Zugangs für den Arbeitsbereich im Bereich Data Science