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
Hanki Microsoft Fabric -tilaus. Voit myös rekisteröityä ilmaiseen Microsoft Fabric -kokeiluversioon.
Siirry Synapse Data Science -käyttökokemukseen aloitussivun vasemmassa reunassa olevan käyttökokemuksen vaihtajan avulla.
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.
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" )
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))
MLFlowTransformer
Luo objekti, joka lataa koneoppimismallin päättelyä varten. Jotta voit luoda objektinMLFlowTransformer
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 )
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_version
ja 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,
Siirry tietyn koneoppimismallin version kohdesivulle.
Valitse avattavasta Käytä tätä versiota - valikosta Käytä tätä mallia ohjatussa toiminnossa.
Valitse syötetaulukko -vaiheessa "Käytä koneoppimismallin ennusteita" -ikkuna avautuu.
Valitse syötetaulukko nykyisen työtilasi Lakehouse-kohdasta.
Siirry Yhdistä syötesarakkeet -vaiheeseen valitsemalla Seuraava .
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ä.
Siirry Luo tulostetaulukko -vaiheeseen valitsemalla Seuraava .
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.
Siirry Yhdistä tulostarakkeet -vaiheeseen valitsemalla Seuraava .
Annettujen tekstikenttien avulla voit nimetä koneoppimismallin ennusteet tallentavan tulostaulukon sarakkeet.
Siirry Määritä muistikirja -vaiheeseen valitsemalla Seuraava .
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.
Siirry Tarkistus ja valmis -vaiheeseen valitsemalla Seuraava .
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.
Mukautettavan koodimallin käyttäminen
Koodimallin käyttäminen eräennusteiden luonnissa:
- Siirry tietyn koneoppimismalliversion kohdesivulle.
- 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
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
)