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
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ä 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.
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" )
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))
MLFlowTransformer
Luo objekti, joka lataa koneoppimismallin päättelyä varten. Jotta voit luoda objektinMLFlowTransformer
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 )
- määritä, mitä DataFrame-kehyksen
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_version
ja 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,
Siirry tietyn koneoppimismalliversion kohdesivulle.
Valitse Käytä tätä mallia ohjatussa toiminnossa avattavasta Käytä tätä versiota -valikosta.
Valinta avaa Käytä koneoppimismallin ennusteita -ikkunan Valitse syötetaulukko -vaiheessa.
Valitse syötetaulukko jossakin nykyisen työtilasi Lakehouse-tallennustilasta.
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ä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ä.
Siirry Luo tulostetaulukko -vaiheeseen valitsemalla Seuraava .
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ä.
Siirry Yhdistä tulostarakkeet -vaiheeseen valitsemalla Seuraava .
Annettujen tekstikenttien avulla voit nimetä ne tulostetaulukon sarakkeet, jotka tallentavat koneoppimismallin ennusteet.
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 , 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.
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. 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
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
)
Liittyvä sisältö
Palaute
https://aka.ms/ContentUserFeedback.
Tulossa pian: Vuoden 2024 aikana poistamme asteittain GitHub Issuesin käytöstä sisällön palautemekanismina ja korvaamme sen uudella palautejärjestelmällä. Lisätietoja on täällä:Lähetä ja näytä palaute kohteelle