Jaa


Koneoppimismallien pisteytys PREDICT-rakenteen avulla Microsoft Fabricissa

Microsoft Fabricin avulla käyttäjät voivat operationalisoida koneoppimismalleja skaalattavalla PREDICT-funktiolla, joka tukee erän pisteytystä missä tahansa laskentamoduulissa. Käyttäjät voivat luoda eräennusteita suoraan Microsoft Fabric -muistikirjasta tai tietyn koneoppimismallin kohdesivulta.

Tässä artikkelissa kerrotaan, miten voit käyttää PREDICT-funktiota molempiin tapoihin, olitpa sitten mukavampi koodin kirjoittamisessa itse tai ohjatun käyttöliittymän avulla, jotta voit käsitellä erän pisteytyksen puolestasi.

Edellytykset

Rajoitukset

  • PREDICT-funktiota tuetaan tällä hetkellä rajoitetussa määrässä koneoppimismallin makuja, mukaan lukien:
    • PyTorch
    • Sklearn
    • Spark
    • TensorFlow
    • ONNX
    • XGBoost
    • Vaalea Gtm
    • CatBoost
    • Tilastomallit
    • Profeetta
    • Keras
  • PREDICT edellyttää, että ML-mallit tallennetaan MLflow-muodossa, johon on täytetty niiden allekirjoitukset.
  • PREDICT ei tue koneoppimismalleja, joissa on monisytytyssyötteitä tai tulosteita.

Kutsu PREDICT-kutsua muistikirjasta

PREDICT tukee MLflow-pakattuja malleja Microsoft Fabric -rekisterissä. Jos työtilassasi on jo harjoitettu ja rekisteröity koneoppimismalli, voit siirtyä vaiheeseen 2. Jos näin ei ole, vaihe 1 sisältää mallikoodin, joka opastaa sinua mallin logistisen regressiomallin harjoittamisessa. Tämän mallin avulla voit luoda eräennusteita menettelyn lopussa.

  1. Harjoita koneoppimismalli ja rekisteröi se MLflow'ssa. Seuraava mallikoodi käyttää MLflow-ohjelmointirajapintaa koneoppimiskokeilun luomiseen ja MLflow-suorituksen aloittamiseen scikit-learn-logistista regressiomallia varten. Malliversio tallennetaan ja rekisteröidään Microsoft Fabric -rekisteriin. Ohjeet koneoppimismallien kouluttamiseen scikit-learnin avulla saat lisätietoja harjoitusmalleista ja omien kokeilujen seurannasta.

    import mlflow
    import numpy as np 
    from sklearn.linear_model import LogisticRegression 
    from sklearn.datasets import load_diabetes
    from mlflow.models.signature import infer_signature 
    
    mlflow.set_experiment("diabetes-demo")
    with mlflow.start_run() as run:
        lr = LogisticRegression()
        data = load_diabetes(as_frame=True)
        lr.fit(data.data, data.target) 
        signature = infer_signature(data.data, data.target) 
    
        mlflow.sklearn.log_model(
            lr,
            "diabetes-model",
            signature=signature,
            registered_model_name="diabetes-model"
        ) 
    
  2. Lataa testitiedot Spark DataFrame -kehyksenä. Jos haluat luoda eräennusteita edellisessä vaiheessa harjoitetun koneoppimismallin avulla, tarvitset testitietoja Spark DataFramen muodossa. Voit korvata muuttujan test arvon seuraavassa koodissa omilla tiedoillasi.

    # You can substitute "test" below with your own data
    test = spark.createDataFrame(data.frame.drop(['target'], axis=1))
    
  3. MLFlowTransformer Luo objekti, joka lataa koneoppimismallin päättelyä varten. Jotta voit luoda objektin MLFlowTransformer eräennusteiden luomista varten, sinun on suoritettava seuraavat toimet:

    • määritä, mitä DataFrame-kehyksen test sarakkeita tarvitset mallin syötteinä (tässä tapauksessa ne kaikki),
    • valitse uudelle tulostarakkeelle nimi (tässä tapauksessa predictions), ja
    • anna oikea mallin nimi ja malliversio näiden ennusteiden luomista varten.

    Jos käytät omaa koneoppimismalliasi, korvaa syötarakkeiden arvot, tulostarakkeen nimi, mallin nimi ja malliversio.

    from synapse.ml.predict import MLFlowTransformer
    
    # You can substitute values below for your own input columns,
    # output column name, model name, and model version
    model = MLFlowTransformer(
        inputCols=test.columns,
        outputCol='predictions',
        modelName='diabetes-model',
        modelVersion=1
    )
    
  4. Luo ennusteita KÄYTTÄMÄLLÄ PREDICT-funktiota. PREDICT-funktion käynnistämiseen voit käyttää Transformer-ohjelmointirajapintaa, Spark SQL -ohjelmointirajapintaa tai käyttäjän määrittämää PySpark-funktiota (UDF). Seuraavissa osissa näytetään, miten luodaan eräennusteita edellisissä vaiheissa määritetyillä testitiedoilla ja koneoppimismallilla käyttämällä erilaisia menetelmiä PREDICT-funktion kutsumiseen.

ENNUSTA muuntajan ohjelmointirajapinnan avulla

Seuraava koodi käynnistää PREDICT-funktion Transformer-ohjelmointirajapinnalla. Jos olet käyttänyt omaa koneoppimismalliasi, korvaa mallin arvot ja testaa tiedot.

# You can substitute "model" and "test" below with values  
# for your own model and test data 
model.transform(test).show()

ENNUSTA Spark SQL -ohjelmointirajapinnan avulla

Seuraava koodi käynnistää PREDICT-funktion Spark SQL -ohjelmointirajapinnalla. Jos olet käyttänyt omaa koneoppimismalliasi, korvaa arvot toiminnolle model_name, model_versionja features mallin nimellä, malliversiolla ja ominaisuussarakkeilla.

Muistiinpano

Ennusteiden luominen Spark SQL -ohjelmointirajapinnan avulla edellyttää edelleen objektin MLFlowTransformer luomista (kuten vaiheessa 3).

from pyspark.ml.feature import SQLTransformer 

# You can substitute "model_name," "model_version," and "features" 
# with values for your own model name, model version, and feature columns
model_name = 'diabetes-model'
model_version = 1
features = test.columns

sqlt = SQLTransformer().setStatement( 
    f"SELECT PREDICT('{model_name}/{model_version}', {','.join(features)}) as predictions FROM __THIS__")

# You can substitute "test" below with your own test data
sqlt.transform(test).show()

ENNUSTA käyttäjän määrittämällä funktiolla

Seuraava koodi käynnistää PREDICT-funktion PySpark UDF:llä. Jos olet käyttänyt omaa koneoppimismalliasi, korvaa mallin ja ominaisuuksien arvot.

from pyspark.sql.functions import col, pandas_udf, udf, lit

# You can substitute "model" and "features" below with your own values
my_udf = model.to_udf()
features = test.columns

test.withColumn("PREDICT", my_udf(*[col(f) for f in features])).show()

ENNUSTA-koodin luominen koneoppimismallin kohdesivulta

Minkä tahansa koneoppimismallin kohdesivulta voit valita jommankumman seuraavista vaihtoehdoista, jotta voit aloittaa eräennusteiden luomisen tietylle malliversiolle PREDICT-funktiolla.

  • Ennustekoodin luominen ohjatun käyttöliittymän avulla
  • Koodimallin kopioiminen muistikirjaan ja parametrien mukauttaminen itse

Ohjatun käyttöliittymäkokemuksen käyttäminen

Ohjattu käyttöliittymäkokemus opastaa sinut seuraaviin vaiheisiin:

  • Valitse lähdetiedot pisteytystä varten
  • Yhdistä tiedot oikein koneoppimismallisi syötteisiin
  • Mallin tulosteiden kohdesijainnin määrittäminen
  • Luo muistikirja, joka käyttää PREDICT-toimintoa ennustetulosten luomiseen ja tallentamiseen

Jos haluat käyttää ohjattua käyttökokemusta,

  1. Siirry tietyn koneoppimismalliversion kohdesivulle.

  2. Valitse Käytä tätä mallia ohjatussa toiminnossa avattavasta Käytä tätä versiota -valikosta.

    Screenshot of the prompt to apply an ML model from its item page.

    Valinta avaa Käytä koneoppimismallin ennusteita -ikkunan Valitse syötetaulukko -vaiheessa.

  3. Valitse syötetaulukko jossakin nykyisen työtilasi Lakehouse-tallennustilasta.

    Screenshot of the step to select an input table for ML model predictions.

  4. Siirry Yhdistä syötesarakkeet -vaiheeseen valitsemalla Seuraava .

  5. Yhdistä lähdetaulukosta sarakkeiden nimet koneoppimismallin syötekenttiin, jotka nostetaan mallin allekirjoituksesta. Sinun on annettava syötesarake kaikille mallin pakollisille kentille. Lisäksi lähdesarakkeiden tietotyyppien on vastattava mallin odotettuja tietotyyppejä.

    Vihje

    Ohjattu toiminto muodostaa tämän yhdistämisen valmiiksi, jos syötetaulukon sarakkeiden nimet vastaavat koneoppimismallin allekirjoituksessa kirjattuja sarakenimiä.

    Screenshot of the step to map input columns for ML model predictions.

  6. Siirry Luo tulostetaulukko -vaiheeseen valitsemalla Seuraava .

  7. Anna nimi uudelle taulukolle nykyisen työtilasi valitussa lakehousessa. Tämä tulostetaulukko tallentaa koneoppimismallin syötearvot, joiden loppuun on liitetty ennustearvot. Oletusarvoisesti tulostetaulukko luodaan samaan lakehouse-tallennustilaan kuin syötetaulukko, mutta myös mahdollisuus muuttaa kohdetta Lakehouse on käytettävissä.

    Screenshot of the step to create an output table for ML model predictions.

  8. Siirry Yhdistä tulostarakkeet -vaiheeseen valitsemalla Seuraava .

  9. Annettujen tekstikenttien avulla voit nimetä ne tulostetaulukon sarakkeet, jotka tallentavat koneoppimismallin ennusteet.

    Screenshot of the step to map output columns for ML model predictions.

  10. Siirry Määritä muistikirja -vaiheeseen valitsemalla Seuraava .

  11. Anna nimi uudelle muistikirjalle, joka suorittaa luodun PREDICT-koodin. Ohjattu toiminto näyttää luodun koodin esikatselun tässä vaiheessa. Voit halutessasi kopioida koodin leikepöydälle ja liittää sen aiemmin luotuun muistikirjaan.

    Screenshot of the step to configure a notebook for ML model predictions.

  12. Siirry Tarkistus ja valmis -vaiheeseen valitsemalla Seuraava .

  13. Tarkastele yhteenvetosivun tietoja ja valitse Luo muistikirja , niin uusi muistikirja ja sen luoma koodi lisätään työtilaasi. Sinut viedään suoraan siihen muistikirjaan, jossa voit suorittaa koodin ennusteiden luomiseksi ja tallentamiseksi.

    Screenshot of the review-and-finish step for ML model predictions.

Mukautettavan koodimallin käyttäminen

Koodimallin käyttäminen eräennusteiden luonnissa:

  1. Siirry tietyn koneoppimismalliversion kohdesivulle.
  2. Valitse Kopioi koodi, jota käytetään avattavasta Käytä tätä versiota -valikosta. Valinnan avulla voit kopioida mukautettavan koodimallin.

Voit liittää tämän koodimallin muistikirjaan, jotta voit luoda eräennusteita koneoppimismallisi avulla. Jos haluat suorittaa koodimallin, sinun on korvattava seuraavat arvot manuaalisesti:

  • <INPUT_TABLE>: Sen taulukon tiedostopolku, joka antaa syötteitä koneoppimismalliin
  • <INPUT_COLS>: Sarakkeiden nimien matriisi syötetaulukosta koneoppimismalliin syötettämiseksi
  • <OUTPUT_COLS>: Ennusteita tallentavan tulostaulukon uuden sarakkeen nimi
  • <MODEL_NAME>: Ennusteiden luomisessa käytettävän koneoppimismallin nimi
  • <MODEL_VERSION>: Koneoppimismallin versio, jota käytetään ennusteiden luomiseen
  • <OUTPUT_TABLE>: Ennusteet tallentavan taulukon tiedostopolku

Screenshot of the copy-code template for ML model predictions.

import mlflow 
from synapse.ml.predict import MLFlowTransformer 
 
df = spark.read.format("delta").load( 
    <INPUT_TABLE> # Your input table filepath here
) 
 
model = MLFlowTransformer( 
    inputCols=<INPUT_COLS>, # Your input columns here
    outputCol=<OUTPUT_COLS>, # Your new column name here
    modelName=<MODEL_NAME>, # Your ML model name here
    modelVersion=<MODEL_VERSION> # Your ML model version here
) 
df = model.transform(df) 
 
df.write.format('delta').mode("overwrite").save( 
    <OUTPUT_TABLE> # Your output table filepath here
)