Jaa


Koneoppimismallien pisteytys PREDICT-rakenteen avulla Microsoft Fabricissa

Microsoft Fabricin avulla käyttäjät voivat operationalisoida koneoppimismalleja skaalattavan PREDICT-funktion avulla. Tämä funktio 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 opit käyttämään PREDICT-funktiota kirjoittamalla koodin itse tai käyttämällä ohjattua käyttöliittymäkokemusta, joka käsittelee erän pisteytyksen puolestasi.

Edellytykset

Rajoitukset

  • PREDICT-funktiota tuetaan tällä hetkellä näissä rajoitetuissa koneoppimismallien versioissa:
    • CatBoost
    • Keras
    • Vaalea Gtm
    • ONNX
    • Profeetta
    • PyTorch
    • Sklearn
    • Spark
    • Tilastomallit
    • TensorFlow
    • XGBoost
  • PREDICT edellyttää , että tallennat koneoppimismallit MLflow-muodossa, ja niiden allekirjoitukset täytetään
  • PREDICT ei tue koneoppimismalleja, joissa on monisytytyssyötteitä tai tulosteita

Kutsu PREDICT-kutsua muistikirjasta

PREDICT tukee MLflow-pakattuja malleja Microsoft Fabric -rekisterissä. Jos työtilassa 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 koodiesimerkki luo koneoppimiskokeilun MLflow-ohjelmointirajapinnan avulla ja käynnistää sitten MLflow-suorituksen scikit-learn-logistista regressiomallia varten. Malliversio tallennetaan ja rekisteröidään Microsoft Fabric -rekisteriin. Katso artikkelista Koneoppimismallien harjoittaminen scikit-learn-resurssilla lisätietoja koulutusmalleista 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 harjoitetulla koneoppimismallilla, tarvitset testitietoja Spark DataFramen muodossa. Korvaa muuttujan test arvo 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 luomistaksi, sinun on suoritettava seuraavat toimet:

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

    Jos käytät omaa koneoppimismalliasi, korvaa syötesarakkeiden 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. Käytä PREDICT-funktion käynnistämiseen 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ä eri menetelmiä PREDICT-funktion kutsumiseksi.

ENNUSTA muuntajan ohjelmointirajapinnan avulla

Tämä koodi käynnistää PREDICT-funktion Transformer-ohjelmointirajapinnassa. Jos käytät 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

Tämä koodi käynnistää PREDICT-funktion Spark SQL -ohjelmointirajapinnalla. Jos käytät omaa koneoppimismalliasi, korvaa arvot toiminnolle model_name, model_versionja features mallin nimellä, malliversiolla ja ominaisuussarakkeilla.

Muistiinpano

Spark SQL -ohjelmointirajapinnan käyttäminen ennusteiden luomiseen edellyttää edelleen objektin MLFlowTransformer luomista (kuten vaiheessa 3 näytetään).

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

Tämä koodi käynnistää PREDICT-funktion PySpark UDF:llä. Jos käytät 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 jonkin näistä vaihtoehdoista, jolla käynnistetään erän ennusteen luominen tietylle malliversiolle PREDICT-funktiolla:

  • Kopioi koodimalli muistikirjaan ja mukauta parametreja itse
  • Ennustekoodin luominen ohjatun käyttöliittymän avulla

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 koneoppimismallin 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 koneoppimismallin version kohdesivulle.

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

    Näyttökuva, jossa näkyy kehote, joka ottaa käyttöön koneoppimismallin sen kohdesivulta.

    Valitse syötetaulukko -vaiheessa "Käytä koneoppimismallin ennusteita" -ikkuna avautuu.

  3. Valitse syötetaulukko nykyisen työtilasi Lakehouse-kohdasta.

    Näyttökuvassa näkyy syötetaulukon valinta koneoppimismallin ennusteita varten.

  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ähdesarakkeen tietotyyppien on vastattava mallin odotettuja tietotyyppejä.

    Vihje

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

    Näyttökuvassa näkyy vaihe, joka yhdistää sarakkeita koneoppimismallin ennusteita varten.

  6. Siirry Luo tulostetaulukko -vaiheeseen valitsemalla Seuraava .

  7. Anna nimi uudelle taulukolle nykyisen työtilasi valitussa lakehousessa. Tämä tulostetaulukko sisältää koneoppimismallin syötearvot, ja se liittää ennustearvot kyseiseen taulukkoon. Oletusarvoisesti tulostetaulukko luodaan samaan lakehouse-tallennustilaan kuin syötetaulukko. Voit muuttaa kohdetta Lakehouse.

    Näyttökuvassa näkyy vaihe, joka luo tulostetaulukon koneoppimismallin ennusteita varten.

  8. Siirry Yhdistä tulostarakkeet -vaiheeseen valitsemalla Seuraava .

  9. Annettujen tekstikenttien avulla voit nimetä koneoppimismallin ennusteet tallentavan tulostaulukon sarakkeet.

    Näyttökuva, jossa näkyy vaihe, joka yhdistää tulostesarakkeet koneoppimismallin ennusteita varten.

  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.

    Näyttökuva, jossa näkyy vaihe, joka määrittää muistikirjan koneoppimismallin ennusteita varten.

  12. Siirry Tarkistus ja valmis -vaiheeseen valitsemalla Seuraava .

  13. Tarkastele yhteenvetosivun tietoja ja valitse Luo muistikirja lisätäksesi uuden muistikirjan, jossa on luotu koodi työtilaasi. Sinut viedään suoraan siihen muistikirjaan, jossa voit suorittaa koodin ennusteiden luomiseksi ja tallentamiseksi.

    Näyttökuva, jossa näkyy koneoppimismallin ennusteiden tarkistus- ja viimeistelyvaihe.

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. Koodimallin suorittaminen edellyttää, että korvaat 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

Näyttökuva, jossa näkyy koneoppimismallin ennusteiden kopiointikoodimalli.

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
)