Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Microsoft Fabric vám umožňuje prevádzkovať modely machine learning pomocou škálovateľnej funkcie PREDICT. Táto funkcia podporuje dávkové bodovanie v akomkoľvek výpočtovom nástroji. Môžete generovať dávkové predikcie priamo z Microsoft Fabric notebooku alebo z položky daného ML modelu.
V tomto článku sa naučíte používať funkciu PREDICT tak, že napíšete kód sami alebo pomocou interaktívneho používateľského rozhrania, ktoré spracováva dávkové skóre za vás.
Požiadavky
Získajte predplatné Microsoft Fabric . Alebo sa zaregistrujte na bezplatnú skúšobnú verziu Microsoft Fabric.
Prihláste sa do Microsoft Fabric.
Prepnite na Fabric pomocou prepínača skúseností v ľavom dolnom rohu domovskej stránky.
Obmedzenia
- Funkcia PREDICT momentálne podporuje iba nasledujúce varianty modelov ML:
- CatBoost
- Keras
- LightGBM
- ONNX
- Prorok
- PyTorch
- Sklearn
- Spark
- Statsmodels (Statsmodels)
- Tok času
- XGBoost
- PREDICT vyžaduje , aby ste ukladali ML modely vo formáte MLflow, pričom ich podpisy sú vyplnené.
- PREDICT nepodporuje ML modely s viactenzorovými vstupmi alebo výstupmi.
Volanie funkcie PREDICT z notebooku
PREDICT podporuje modely zabalené v MLflow v registri Microsoft Fabric. Ak už máte vo svojom pracovnom priestore trénovaný a registrovaný model strojového učenia, môžete prejsť na krok 2. Ak nie, krok 1 poskytuje vzorový kód, ktorý vás prevedie trénovaním ukážkového logistického regresného modelu. Použite tento model na generovanie dávkových predpovedí na konci postupu.
Trénujte model strojového učenia a zaregistrujte ho pomocou toku MLflow. Ďalšia ukážka kódu využíva MLflow API na vytvorenie experimentu machine learning a potom spustí MLflow beh pre logistický regresný model scikit-learn. Modelová verzia sa potom uloží a zaregistruje v registri Microsoft Fabric. Pre viac informácií o trénovaní modelov a sledovaní vlastných experimentov si pozrite návod, ako trénovať ML modely pomocou scikit-learn.
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" )Načítanie testovacích údajov ako údajového prvku Spark. Ak chcete generovať dávkové predpovede s modelom strojového učenia trénovaným v predchádzajúcom kroku, potrebujete testovacie údaje vo forme prvku Údajovýframe služby Spark. V nasledujúcom kóde nahraďte hodnotu premennej
testvlastnými údajmi.# You can substitute "test" below with your own data test = spark.createDataFrame(data.frame.drop(['target'], axis=1))Vytvorte
MLFlowTransformerobjekt na načítanie modelu strojového učenia na odvodenie. Na vytvorenie objektuMLFlowTransformerna generovanie dávkových predikcií vykonajte tieto akcie:- Špecifikuj stĺpce
testDataFrame, ktoré potrebuješ ako vstupy do modelu (v tomto prípade všetky). - Vyberte názov pre nový výstupný stĺpec (v tomto prípade
predictions). - Uveďte správny názov modelu a verziu modelu pre generovanie týchto predpovedí.
Ak používate vlastný model strojového učenia, nahraďte hodnoty vstupných stĺpcov, názov výstupného stĺpca, názov modelu a verziu modelu.
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 )- Špecifikuj stĺpce
Generovanie predpovedí pomocou funkcie PREDICT. Ak chcete vyvolať funkciu PREDICT, použite rozhranie API Transformer, rozhranie API služby Spark SQL alebo funkciu definovanú používateľom V PySpark (UDF). V nasledujúcich častiach sa dozviete, ako generovať predpovede šarží s testovacími údajmi a modelom strojového učenia definovaným v predchádzajúcich krokoch, a to pomocou rôznych metód na vyvolanie funkcie PREDICT.
Funkcia PREDICT pomocou rozhrania API pre transformátor
Tento kód vyvolá funkciu PREDICT s rozhraním API transformátora. Ak používate vlastný model strojového učenia, nahraďte hodnoty modelu a otestujte údaje.
# You can substitute "model" and "test" below with values
# for your own model and test data
model.transform(test).show()
FUNKCIA PREDICT s rozhraním API služby Spark SQL
Tento kód volá funkciu PREDICT pomocou Spark SQL API. Ak používate svoj vlastný ML model, nahraďte hodnoty , model_namemodel_version, a features názvom modelu, verziou modelu a stĺpcami funkcií.
Poznámka
Keď používate Spark SQL API na generovanie predikcií, stále musíte vytvoriť MLFlowTransformer objekt, ako je ukázané v kroku 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()
FUNKCIA PREDICT s funkciou definovanou používateľom
Tento kód volá funkciu PREDICT pomocou PySpark UDF. Ak používate svoj vlastný ML model, nahraďte hodnoty modelu a funkcií.
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()
Generovanie kódu PREDICT zo stránky položky modelu strojového učenia
Zo stránky položiek ktoréhokoľvek ML modelu si môžete vybrať jednu z týchto možností na spustenie dávkovej generovania predikcií pre konkrétnu verziu modelu pomocou funkcie PREDICT:
- Skopíruj šablónu kódu do zápisníka a prispôsobuj si parametre sám.
- Použite vedený používateľský zážitok na generovanie PREDICT kódu.
Používanie interaktívneho používateľského rozhrania
Interaktívne používateľské rozhranie vás prevedie týmito krokmi:
- Vyberte zdrojové údaje na hodnotenie.
- Správne mapujte dáta na vstupy vášho ML modelu.
- Špecifikujte cieľ pre výstupy vášho modelu.
- Vytvorte si zápisník, ktorý používa PREDICT na generovanie a ukladanie výsledkov predikcií.
Ak chcete využiť interaktívne prostredie,
Prejdite na stránku položiek danej verzie modelu strojového učenia.
V rozbaľovacom zozname Použiť túto verziu vyberte možnosť Použiť tento model v sprievodcovi.
V kroku Výber vstupnej tabuľky sa otvorí okno Použiť predpovede modelu strojového učenia.
Vyberte vstupnú tabuľku z jazera vo svojom aktuálnom pracovnom priestore.
Výberom položky Ďalej prejdite na krok "Priradiť vstupné stĺpce".
Priraďte názvy stĺpcov zo zdrojovej tabuľky do vstupných polí modelu strojového učenia, ktoré sa získavajú z podpisu modelu. Musíte zadať vstupný stĺpec pre všetky požadované polia modelu. Okrem toho musia typy údajov zdrojového stĺpca zodpovedať očakávaným typom údajov modelu.
Prepitné
Sprievodca vyžaduje toto priradenie, ak sa názvy stĺpcov vstupnej tabuľky zhodujú s názvami stĺpcov zapísaných v podpise modelu strojového učenia.
Výberom položky Ďalej prejdite na krok Vytvorenie výstupnej tabuľky.
Zadajte názov novej tabuľky vo vybratom úchyte jazera aktuálneho pracovného priestoru. Táto výstupná tabuľka ukladá vstupné hodnoty vášho modelu strojového učenia a pripojí hodnoty predpovede k danej tabuľke. Podľa predvoleného nastavenia sa výstupná tabuľka vytvorí v tom istom jazere ako vstupná tabuľka. Môžete zmeniť cieľový lakehouse.
Výberom položky Ďalej prejdite na krok "Priradiť výstupné stĺpce".
Pomocou poskytnutých textových polí pomenujte stĺpce výstupnej tabuľky, ktorá ukladá predpovede modelu strojového učenia.
Výberom položky Ďalej prejdite na krok Konfigurovať poznámkový blok.
Zadajte názov nového poznámkového bloku, na ktorom je spustený vygenerovaný kód PREDICT. Sprievodca zobrazí v tomto kroku ukážku vygenerovaného kódu. Ak chcete, môžete kód skopírovať do Schránky a prilepiť ho do existujúceho poznámkového bloku.
Výberom položky Ďalej prejdite na krok Skontrolovať a dokončiť.
Skontrolujte podrobnosti na stránke súhrnu a vyberte položku Vytvoriť poznámkový blok , aby ste do pracovného priestoru pridali nový poznámkový blok s vygenerovaným kódom. Budete presmerovaní priamo do poznámkového bloku, kde môžete spustiť kód na generovanie a ukladanie predpovedí.
Použitie prispôsobiteľnej šablóny kódu
Ak chcete použiť šablónu kódu na generovanie dávkových predpovedí:
- Prejdite na stránku položiek danej verzie modelu strojového učenia.
- Vyberte položku Kopírovať kód, ktorý sa má použiť v rozbaľovacom zozname Použiť túto verziu . Výber kopíruje prispôsobiteľnú šablónu kódu.
Túto šablónu kódu môžete prilepiť do poznámkového bloku a generovať tak dávkové predpovede s modelom strojového učenia. Na úspešné spustenie šablóny kódu manuálne nahraďte nasledujúce hodnoty:
-
<INPUT_TABLE>: Cesta k súboru pre tabuľku, ktorá poskytuje vstupy do ML modelu. -
<INPUT_COLS>: Pole názvov stĺpcov zo vstupnej tabuľky, ktoré sa posiela do ML modelu. -
<OUTPUT_COLS>: Názov pre nový stĺpec vo výstupnej tabuľke, ktorý uchováva predpovede. -
<MODEL_NAME>: Názov ML modelu na generovanie predpovedí. -
<MODEL_VERSION>: Verzia ML modelu na generovanie predpovedí. -
<OUTPUT_TABLE>: Cesta k súboru tabuľky, ktorá uchováva predpovede.
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
)