Jaa


Hallinnoi MLflow-malleja työtiloilla ja alustoilla

Tuotannon koneoppiminen vaatii muutakin kuin hyvän mallin kouluttamista — tarvitset luotettavia työnkulkuja, jotta mallit siirtyvät kehityksestä validoinnin kautta tuotantoon. Microsoft Fabric -tilojen välinen lokitus mahdollistaa kaksi keskeistä skenaariota:

  • Rakenna päästä päähän -MLOps-työnkulkuja. Kouluta ja kokeile kehitystyötilassa, validoi testityötilassa ja ota käyttöön tuotantopalvelutyötilassa — kaikki käyttäen standardeja MLflow-rajapintoja. Tämä ympäristöjen erottelu auttaa tiimejä valvomaan laatuportteja ja ylläpitämään selkeitä tarkastusjälkiä kokeilusta tuotantoon.

  • Tuo olemassa olevat ML-resurssit Fabric-ohjelmaan. Jos sinulla on jo koulutettuja malleja Azure Databricks, Azure Machine Learning, paikallisessa ympäristössä tai muussa MLflow'ta tukevassa alustassa, voit kirjata kokeet ja mallit suoraan Fabric-työtilaan. Tämä helpottaa koneoppimisen artefaktien yhdistämistä yhteen paikkaan ilman, että koulutusputkia rakennetaan uudelleen.

Työtilan välinen lokitus toimii synapseml-mlflow-paketin kautta, joka tarjoaa Fabric-yhteensopivan MLflow-seurantalisäosan. Tunnistat itsensä kohdetyötilallasi, asetat seuranta-URIN-numeron ja käytät tavallisia MLflow-komentoja — samaa koodia, jonka jo tunnet.

Muistio

Työtilan välinen lokitus keskittyy koodilähtöiseen kokemukseen. Käyttöliittymän integraatio monipuolisiin työtilatilanteisiin käsitellään tulevassa julkaisussa.

Edellytykset

Vinkki

Työtilojen välinen lokitus on tuettu työtiloissa, joissa on ulospäin suuntautuvan pääsyn suojaus käytössä. Työtilan välinen lokitus toiseen työtilaan vaatii hallitun yksityisen päätepisteen. Kirjautuminen samassa työtilassa ja Fabric:n ulkopuolelta toimii ilman lisäasetuksia.

Asenna MLflow-lisäosa

synapseml-mlflow-paketti mahdollistaa työtilan välisen lokituksen tarjoamalla Fabric MLflow-seurantalisäosan. Valitse asennuskomento ympäristösi mukaan:

Tärkeää

MLflow 3 ei ole vielä tuettu. Sinun täytyy kiinnittää mlflow-skinny versio 2.22.2 tai sitä vanhempi.

Käytä tätä komentoa Fabric-muistikirjassa asentaaksesi paketin, jossa on online-muistikirjan riippuvuuksia.

%pip install -U "synapseml-mlflow[online-notebook]" "mlflow-skinny<=2.22.2"

Asennuksen jälkeen käynnistä ydin uudelleen ennen jäljellä olevan koodin suorittamista.

Lokitaan MLflow-objektit toiseen Fabric-työtilaan

Tässä tilanteessa ajat muistikirjan yhdessä Fabric-työtilassa (lähde) ja kirjaat kokeet ja mallit toiseen Fabric-työtilaan (target).

Aseta kohdetyötila

Aseta ympäristömuuttuja MLFLOW_TRACKING_URI osoittamaan kohdetyötilaasi:

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

Lokikokeet ja mallit

Luo koe ja kirjaa suoritus parametreilla, mittareilla ja mallilla:

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
    )

Suorituksen jälkeen koe ja rekisteröity malli ilmestyvät kohdetyötilaan.

Siirrä MLflow-objekteja Fabric-työtilojen välillä

Tässä tilanteessa ensin lokitaan objektit lähdetyötilaan, sitten ladataan artefaktit ja kirjataan ne uudelleen kohdetyötilaan. Tämä on hyödyllistä, kun sinun täytyy edistää koulutettua mallia kehitystyötilasta tuotantotilaan.

Vaihe 1: Lokia objektit lähdetyötilassa

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

Vaihe 2: Lataa artefakteja lähdejuoksulta

import mlflow.artifacts

# Download the model artifacts locally
local_artifact_path = mlflow.artifacts.download_artifacts(
    run_id=source_run_id,
    artifact_path="model"
)

Vaihe 3: Kirjaa artefaktit uudelleen kohdetyötilaan

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
    )

Lokitaan MLflow-objektit Fabric:n ulkopuolelta

Voit kirjata MLflow-kokeiluja ja malleja Fabric-työtilaan mistä tahansa ympäristöstä, jossa rakennat mallejasi, mukaan lukien:

  • Paikalliset koneet — VS Code, Jupyter-muistikirjat tai mikä tahansa paikallinen Python-ympäristö.
  • Azure Databricks — Databricks-muistikirjat ja työt.
  • Azure Machine Learning — Azure koneoppimisen laskentainstansseja ja putkistoja.
  • Mikä tahansa muu alusta — Mikä tahansa ympäristö, joka tukee Python ja MLflow'ta.

Vaihe 1: Asenna paketti

Asenna synapseml-mlflow paketti ympäristöösi:

pip install -U "synapseml-mlflow" "mlflow-skinny<=2.22.2"

Vaihe 2: Autentikointi Fabric -menetelmällä

Valitse todennusmenetelmä ympäristösi mukaan:

Käytä tätä menetelmää paikallisissa kehitysympäristöissä, joissa on selainkäyttö, kuten VS Code tai Jupyter.

from fabric.analytics.environment.credentials import SetFabricAnalyticsDefaultTokenCredentialsGlobally
from azure.identity import DefaultAzureCredential

SetFabricAnalyticsDefaultTokenCredentialsGlobally(
    credential=DefaultAzureCredential(exclude_interactive_browser_credential=False)
)

Vaihe 3: Aseta kohdetyötila ja loki MLflow-objektit

Tunnistautumisen jälkeen aseta seuranta-URI osoittamaan kohde-Fabric-työtilaasi ja kirjaa kokeet ja mallit standardeilla MLflow-rajapinnoilla:

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
    )

Käytä työtilan välistä lokitusta ulospäin suuntautuvan pääsyn suojauksella

Jos työtilassasi on outbound access protection käytössä, työtilan välinen lokitus vaatii monikäyttöisen hallitun yksityisen päätepisteen lähdetyötilasta kohdetyötilaan. Saman työtilan sisällä kirjautuminen ja ulkopuolelta Fabric-sivustolta (paikalliset koneet, Azure Databricks, Azure Machine Learning) kirjautuminen toimii ilman lisäasetuksia.

Lisätietoja tuetuista skenaarioista ja vaadituista konfiguraatioista löytyy kohdasta Workspace outbound access protection for Data Science.

Asenna paketti OAP-yhteensopivaan työtilaan

Vakiokomento %pip install vaatii lähtevän internet-yhteyden, joka on estetty OAP-yhteensopivissa työtiloissa. Paketin asentamiseksi synapseml-mlflow lataa se ensin ei-OAP-ympäristöstä ja lataa se sitten järventaloon.

Vaihe 1: Lataa paketti Lataa synapseml-mlflow-paketti koneesta, jossa on internet-yhteys.

pip download synapseml-mlflow[online-notebook]

Vaihe 2: Lataa ladatut tiedostot Lataa ladatut tiedostot järventaloon OAP-yhteensopivassa työtilassasi. Lataa kaikki .whl tiedostot järvenrakennuksen Tiedostot-osioon (esimerkiksi, ). /lakehouse/default/Files

Vaihe 3: Asenna Fabric-muistikirjasi järvimajan polulta

%pip install --no-index --find-links=/lakehouse/default/Files "synapseml-mlflow[online-notebook]>2.0.0" "mlflow-skinny<=2.22.2" --pre

Vaihe 4: Aseta seuranta-URI käyttämään hallittua yksityistä päätepistettä

Jos nykyisessä työtilassasi on OAP käytössä, sinun täytyy konfiguroida monikäyttöinen hallittu yksityinen päätepiste lähdetyötilasta kohdetyötilaan ja reitittää seuranta-URI yksityisen päätepisteen kautta.

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"

Tunnetut rajoitukset

  • KIRJOITUSLUPA vaaditaan. Sinulla täytyy olla KIRJOITUSOIKEUS kohdetyötilaan.
  • Työtilan välinen linjaus ei ole tuettu. Et voi tarkastella vihkojen, kokeiden ja mallien välisiä suhteita, kun nämä objektit on kirjattu eri työtiloista.
  • Lähdemuistikirja ei näy kohdetyötilassa. Lähdemuistikirja ei näy kohdetyötilassa. Artefaktien yksityiskohdissa ja listasivuilla linkki lähdemuistikirjaan on tyhjä.
  • Esineiden snapshotit eivät ole tuettuja. Koneoppimiskokeet tai mallit, jotka on kirjattu toiseen työtilaan, eivät näy lähdekoodin muistikirjan kohteen snapshotissa.
  • Suuret kielimallit eivät ole tuettuja. Työtilan välinen lokitus ei tue suuria kielimalleja (LLM).