Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Produksjonsmaskinlæring krever mer enn bare å trene en god modell. Du trenger pålitelige arbeidsflyter for å flytte modeller fra utvikling gjennom validering til produksjon. Logging på tvers av arbeidsområder i Microsoft Fabric muliggjør to nøkkelscenarier:
Bygg ende-til-ende MLOps-arbeidsflyter. Tren og eksperimenter i et utviklingsarbeidsområde, valider i et testarbeidsområde, og distribuer til et produksjonsbetjenende arbeidsområde ved bruk av standard MLflow-API-er. Denne fordelingen av miljøer hjelper team med å håndheve kvalitetsporter og opprettholde tydelige revisjonsspor fra eksperimentering til produksjon.
Ta inn eksisterende maskinlæringsressurser i Fabric. Hvis du allerede har trent modeller i Azure Databricks, Azure Machine Learning, et lokalt miljø eller en annen plattform som støtter MLflow, kan du logge disse eksperimentene og modellene direkte inn i et Fabric-arbeidsområde. Du kan enkelt konsolidere maskinlæringsartefaktene dine på ett sted uten å bygge opp treningspipelinene dine på nytt.
Cross-workspace-logging fungerer gjennom pakken synapseml-mlflow, som tilbyr en Fabric-kompatibel MLflow-sporingsplugin. Du autentiserer deg med ditt målarbeidsområde, setter sporings-URI, og bruker standard MLflow-kommandoer.
Bemerkning
Cross-workspace-logging fokuserer på kode-først-opplevelsen. UI-integrasjon for situasjoner på tvers av arbeidsområder vil bli tatt opp i en fremtidig utgivelse.
Forutsetninger
- Et Microsoft Fabric abonnement eller en gratis prøveperiode Microsoft Fabric.
- Skriv tillatelse på målet for Fabric-arbeidsområdet.
- Et maskinlæringssporingssystem som er oppgradert for både kilde- og målarbeidsområder.
For Fabric-notatbøker, lag en ny notatbok og fest en hytte ved innsjøen før du kjører noen kode.
Tips
Cross-workspace-logging støttes i arbeidsområder med utgående tilgangsbeskyttelse aktivert. Cross-workspace logging til et annet arbeidsområde krever et administrert privat endepunkt. Logging innenfor samme arbeidsområde og fra ekstern Fabric fungerer uten ekstra konfigurasjon.
Installer MLflow-pluginen
synapseml-mlflow-pakken muliggjør logging på tvers av arbeidsområder ved å tilby Fabric MLflow-sporingspluginen. Velg installasjonskommandoen basert på miljøet ditt.
Viktig!
MLflow 3 støttes ikke for øyeblikket. Du må feste mlflow-skinny til versjon 2.22.2 eller tidligere.
For en Fabric-notebook, bruk denne kommandoen for å installere pakken med online notebook-avhengigheter:
%pip install -U "synapseml-mlflow[online-notebook]" "mlflow-skinny<=2.22.2"
Etter installasjon starter du kjernen på nytt før du kjører resten av koden.
Logg MLflow-objekter til et annet Fabric-arbeidsområde
I dette scenariet kjører du en notatbok i ett Fabric-arbeidsområde (kilde) og loggfører eksperimenter og modeller til et annet Fabric-arbeidsområde (mål).
Sett målarbeidsområdet
Pek på ditt målarbeidsområde ved å sette miljøvariabelen MLFLOW_TRACKING_URI :
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
Loggeksperimenter og modeller
Lag et eksperiment og logg en kjøring med parametere, metrikker og en 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
)
Etter at kjøringen er ferdig, vises eksperimentet og den registrerte modellen i målarbeidsområdet.
Flytt MLflow-objekter mellom Fabric-arbeidsområder
I dette scenariet logger du først objekter i kildearbeidsområdet, laster deretter ned artefaktene og logger dem på nytt til målarbeidsområdet. Denne metoden er nyttig når du trenger å promotere en trent modell fra et utviklingsarbeidsområde til et produksjonsarbeidsområde.
Trinn 1: Logg objekter i kildearbeidsområ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
Steg 2: Last ned artefakter fra kildekjøringen
import mlflow.artifacts
# Download the model artifacts locally
local_artifact_path = mlflow.artifacts.download_artifacts(
run_id=source_run_id,
artifact_path="model"
)
Trinn 3: Logg artefakter på nytt til målarbeidsområ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 utenfor Fabric
Du kan logge MLflow-eksperimenter og modeller til et Fabric-arbeidsområde fra hvilket som helst miljø der du bygger modellene dine, inkludert:
- Lokale maskiner. VS Code, Jupyter-notatbøker eller et hvilket som helst lokalt Python-miljø.
- Azure Databricks. Azure Databricks notebooks og jobs.
- Azure Machine Learning. Azure Machine Learning beregningsinstanser og pipelines.
- Enhver annen plattform. Ethvert miljø som støtter Python og MLflow.
Trinn 1: Installer pakken
Installer synapseml-mlflow pakken i ditt miljø:
pip install -U "synapseml-mlflow" "mlflow-skinny<=2.22.2"
Trinn 2: Autentiser med Fabric
Velg en autentiseringsmetode basert på ditt miljø:
Bruk denne metoden for lokale utviklingsmiljøer med nettlesertilgang, 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)
)
Trinn 3: Sett målarbeidsområdet og logg MLflow-objekter
Etter autentisering, sett sporings-URI-en til å peke på ditt mål-Fabric-arbeidsområde og logg eksperimenter og modeller ved bruk av 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
)
Bruk logging på tvers av arbeidsområder med utgående tilgangsbeskyttelse
Hvis arbeidsområdet ditt har utgående tilgangsbeskyttelse aktivert, krever logging på tvers av arbeidsområder et privat endepunkt administrert på tvers av arbeidsområder fra kildearbeidsområdet til målarbeidsområdet.
Logging innenfor samme arbeidsområde og logging fra ekstern Fabric (lokale maskiner, Azure Databricks, Azure Machine Learning) fungerer uten ekstra konfigurasjon.
For detaljer om støttede scenarier og nødvendig konfigurasjon, se Workspace outbound access protection for Fabric Data Science.
Installer pakken i et arbeidsområde med OAP-aktivering
Standardkommandoen %pip install krever utgående internett-tilgang, som er blokkert i arbeidsområder med utgående tilgangsbeskyttelse (OAP) aktivert. For å installere synapseml-mlflow pakken, last den først ned fra et ikke-OAP-miljø, og last den deretter opp til lakehouse.
Last ned
synapseml-mlflowpakken fra en maskin som har internett-tilgang.pip download synapseml-mlflow[online-notebook]Last opp de nedlastede filene til lakehouse i ditt OAP-aktiverte arbeidsområde. Last opp alle
.whlfiler til Filer-seksjonen i innsjøhuset (for eksempel,/lakehouse/default/Files).Installer fra lakehouse-stien i din Fabric-notatbok:
%pip install --no-index --find-links=/lakehouse/default/Files "synapseml-mlflow[online-notebook]>2.0.0" "mlflow-skinny<=2.22.2" --preSett sporings-URI-en til å bruke det administrerte private endepunktet. Hvis ditt nåværende arbeidsområde har OAP aktivert, må du konfigurere et privat endepunkt som administreres på tvers av arbeidsområder fra kildearbeidsområdet til målarbeidsområdet. Deretter ruter sporings-URI-en gjennom det private endepunktet.
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"
Kjente begrensninger
- Skriftlig tillatelse kreves. Du må ha skrivetillatelse på målarbeidsområdet.
- Cross-workspace lineage støttes ikke. Du kan ikke se relasjoner mellom notatbøker, eksperimenter og modeller når disse objektene logges fra forskjellige arbeidsområder.
- Kilde-notatboken er ikke synlig i målarbeidsområdet. Kilde-notatboken vises ikke i målarbeidsområdet. På artefaktdetaljer og listesider er lenken til kildeboken tom.
- Gjenstandssnapshots støttes ikke. Maskinlæringseksperimenter eller modeller som logges til et annet arbeidsområde vises ikke i øyeblikksbildet til den kildekjørte notatblokken.
- Store språkmodeller støttes ikke. Cross-workspace logging støtter ikke store språkmodeller (LLM-er).
Relatert innhold
- maskinlæringseksperimenter i Microsoft Fabric
- Spore og administrere maskinlæringsmodeller
- Oppgrader maskinlæringssporingssystemet ditt
- Autolog inn Microsoft Fabric
- Git-integrasjon og distribusjonspipelines for maskinlæringseksperimenter og modeller
- Workspace utgående tilgangsbeskyttelse for Data Science