Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Produktionsmaskinlæring kræver mere end blot at træne en god model — du har brug for pålidelige arbejdsgange for at flytte modeller fra udvikling gennem validering til produktion. Cross-workspace logging i Microsoft Fabric muliggør to nøglescenarier:
Byg end-to-end MLOps-workflows. Træn og eksperimentér i et udviklingsarbejdsområde, valider i et testarbejdsområde, og udrul til et produktionsbetjenende arbejdsområde — alt sammen ved brug af standard MLflow API'er. Denne adskillelse af miljøer hjælper teams med at håndhæve kvalitetsgates og opretholde klare auditspor fra eksperimentering til produktion.
Bring eksisterende ML-aktiver ind i Fabric. Hvis du allerede har trænede modeller i Azure Databricks, Azure Machine Learning, et lokalt miljø eller en anden platform, der understøtter MLflow, kan du logge disse eksperimenter og modeller direkte ind i et Fabric-arbejdsområde. Det gør det nemt at samle dine ML-artefakter ét sted uden at genopbygge dine træningspipelines.
Cross-workspace logging fungerer gennem pakken synapseml-mlflow, som leverer et Fabric-kompatibelt MLflow-tracking-plugin. Du autentificerer dig med dit målarbejdsområde, sætter tracking-URI'en og bruger standard MLflow-kommandoer — den samme kode, du allerede kender.
Bemærkning
Cross-workspace logging fokuserer på kode-først-oplevelsen. UI-integration til tværarbejdspladsscenarier vil blive adresseret i en fremtidig version.
Forudsætninger
- Et Microsoft Fabric abonnement. Eller tilmeld dig en gratis Microsoft Fabric prøveperiode.
- WRITE tilladelse på mål-Fabric arbejdsområde.
- Opgrader dit maskinlæringssporingssystem til både kilde- og målarbejdsområder.
- For Fabric-notesbogsscenarier: Opret en ny notesbog og vedhæft en Lakehouse, før du kører koden.
Tips
Cross-workspace logging understøttes i arbejdsområder med udgående adgangsbeskyttelse aktiveret. Cross-workspace logging til et andet arbejdsområde kræver et administreret privat endpoint. Logging inden for samme arbejdsområde og fra ekstern Fabric fungerer uden yderligere konfiguration.
Installer MLflow-plugin'et
synapseml-mlflow-pakken muliggør tværgående arbejdsområde-logning ved at levere Fabric MLflow-tracking-plugin. Vælg installationskommandoen baseret på dit miljø:
Vigtigt!
MLflow 3 understøttes endnu ikke. Du skal fastgøre mlflow-skinny til version 2.22.2 eller tidligere.
Brug denne kommando i en Fabric-notebook for at installere pakken med online notebook-afhængigheder.
%pip install -U "synapseml-mlflow[online-notebook]" "mlflow-skinny<=2.22.2"
Efter installationen genstarter du kernen, før du kører den resterende kode.
Log MLflow-objekter til et andet Fabric-arbejdsområde
I dette scenarie kører du en notesbog i ét Fabric-arbejdsområde (kilde) og logger eksperimenter og modeller til et andet Fabric-arbejdsområde (mål).
Indstil målarbejdsområdet
Sæt miljøvariablen MLFLOW_TRACKING_URI til at pege på dit målarbejdsområde:
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
Log-eksperimenter og modeller
Opret et eksperiment og log et run med parametre, metrikker og en model:
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
)
Efter kørslen er afsluttet, vises eksperimentet og den registrerede model i det målrettede arbejdsområde.
Flyt MLflow-objekter mellem Fabric-arbejdsområder
I dette scenarie logger du først objekter i kildearbejdsområdet, downloader derefter artefakterne og logger dem igen til målarbejdsområdet. Dette er nyttigt, når du skal forfremme en trænet model fra et udviklingsarbejdsområde til et produktionsarbejdsområde.
Trin 1: Log objekter i kildearbejdsområdet
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
Trin 2: Download artefakter fra kilde-run'en
import mlflow.artifacts
# Download the model artifacts locally
local_artifact_path = mlflow.artifacts.download_artifacts(
run_id=source_run_id,
artifact_path="model"
)
Trin 3: Gen-log artefakter til målarbejdsområdet
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
)
Log MLflow-objekter fra ekstern Fabric
Du kan logge MLflow-eksperimenter og modeller til et Fabric-arbejdsområde fra ethvert miljø, hvor du bygger dine modeller, herunder:
- Lokale maskiner — VS Code, Jupyter-notebooks eller ethvert lokalt Python-miljø.
- Azure Databricks — Databricks, notebooks og jobs.
- Azure Machine Learning — Azure ML-beregningsinstanser og pipelines.
- Enhver anden platform — Ethvert miljø, der understøtter Python og MLflow.
Trin 1: Installer pakken
Installer synapseml-mlflow pakken i dit miljø:
pip install -U "synapseml-mlflow" "mlflow-skinny<=2.22.2"
Trin 2: Autentificer med Fabric
Vælg en autentificeringsmetode baseret på dit miljø:
Brug denne metode til lokale udviklingsmiljøer med browseradgang, såsom VS Code eller Jupyter.
from fabric.analytics.environment.credentials import SetFabricAnalyticsDefaultTokenCredentialsGlobally
from azure.identity import DefaultAzureCredential
SetFabricAnalyticsDefaultTokenCredentialsGlobally(
credential=DefaultAzureCredential(exclude_interactive_browser_credential=False)
)
Trin 3: Sæt målarbejdsområde og log MLflow-objekter
Efter autentificering sætter du tracking URI'en til at pege på dit mål-Fabric-arbejdsområde og logger eksperimenter og modeller ved hjælp af standard MLflow API'er:
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
)
Brug kryds-arbejdsområde-logging med beskyttelse mod udgående adgang
Hvis dit arbejdsområde har udgående adgangsbeskyttelse aktiveret, kræver krydsarbejdsområde-logging et tværarbejdsområde-administreret privat endpoint fra kildearbejdsområdet til målarbejdsområdet. Logging inden for samme arbejdsområde og logging fra ekstern Fabric (lokale maskiner, Azure Databricks, Azure Machine Learning) fungerer uden yderligere konfiguration.
For detaljer om understøttede scenarier og nødvendig konfiguration, se Workspace outbound access protection for Data Science.
Installer pakken i et arbejdsområde med OAP
Standardkommandoen %pip install kræver udgående internetadgang, som er blokeret i OAP-aktiverede arbejdsområder. For at installere synapseml-mlflow pakken, download den først fra et ikke-OAP-miljø, og upload den derefter til lakehouse.
Trin 1: Download pakken Download synapseml-mlflow-pakken fra en maskine med internetadgang.
pip download synapseml-mlflow[online-notebook]
Trin 2: Upload de downloadede filer Upload de downloadede filer til lakehouse i dit OAP-aktiverede arbejdsområde. Upload alle .whl filer til Filer-sektionen i søhuset (for eksempel, ). /lakehouse/default/Files
Trin 3: Installer fra lakehouse-stien i din Fabric notesbog
%pip install --no-index --find-links=/lakehouse/default/Files "synapseml-mlflow[online-notebook]>2.0.0" "mlflow-skinny<=2.22.2" --pre
Trin 4: Sæt tracking-URI'en til at bruge det administrerede private endpoint
Hvis dit nuværende arbejdsområde har OAP aktiveret, skal du konfigurere et tværarbejdsområde-administreret privat endpoint fra kildearbejdsområdet til målarbejdsområdet og dirigere tracking URI gennem det private endpoint.
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"
Kendte begrænsninger
- SKRIVE-tilladelse kræves. Du skal have SKRIVE-tilladelse på det målrettede arbejdsområde.
- Cross-workspace lineage understøttes ikke. Du kan ikke se relationer mellem notesbøger, eksperimenter og modeller, når disse objekter logges fra forskellige arbejdsområder.
- Kildenotesbogen er ikke synlig i målarbejdsområdet. Kildenotesbogen vises ikke i målarbejdsområdet. På artefaktdetaljer og listesider er linket til kildenotesbogen tomt.
- Item snapshots understøttes ikke. ML-eksperimenter eller modeller, der er logget til et andet arbejdsområde, vises ikke i det kildekørte notebook-item snapshot.
- Store sprogmodeller understøttes ikke. Cross-workspace logging understøtter ikke store sprogmodeller (LLM'er).
Relateret indhold
- Maskinlæringseksperimenter i Microsoft Fabric
- Spore og administrere modeller til maskinel indlæring
- Opgrader dit maskinlæringssporingssystem
- Autolog i Microsoft Fabric
- Maskinlæringseksperimenter og modellerer Git-integration og implementeringspipelines
- Workspace udgående adgangsbeskyttelse for Data Science