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.
Tento tutoriál ukazuje, ako importovať registrovaný model LightGBMClassifier, ktorý ste vytvorili v časti 3. Tento tutoriál použil Microsoft Fabric MLflow modelový register na trénovanie modelu a následné dávkové predikcie na testovacej datasete načítanej z jazerného domu.
Microsoft Fabric umožňuje operácionalizovať modely strojového učenia pomocou škálovateľnej funkcie nazvanej PREDICT, ktorá podporuje dávkové skórovanie v akomkoľvek výpočtovom engine. Môžete generovať dávkové predikcie priamo z Microsoft Fabric notebooku alebo z položky daného modelu. Pre viac informácií si pozrite PREDICT.
Na generovanie dávkových predikcií na testovacom datasete použijete verziu 1 trénovaného modelu LightGBM, ktorá preukázala najlepší výkon spomedzi všetkých trénovaných modelov strojového učenia. Testovací dataset načítate do spark DataFrame a vytvoríte objekt MLFlowTransformer na generovanie dávkových predikcií. Funkciu PREDICT potom môžete vyvolať jedným z troch nasledujúcich spôsobov:
- Transformer API zo synapseML
- Spark SQL API
- Funkcia definovaná používateľom v PySparku (UDF)
Predpoklady
Získajte predplatné služby Microsoft Fabric . Alebo si zaregistrujte bezplatnú skúšobnú služby Microsoft Fabric.
Prihláste sa do služby Microsoft Fabric.
Prepnite na Fabric pomocou prepínača skúseností v ľavom dolnom rohu domovskej stránky.
Toto je štvrtá časť päťdielnej série tutoriálov. Ak chcete dokončiť tento kurz, najskôr dokončite tieto kroky:
- 1. časť: Ingest data into a Microsoft Fabric lakehouse using Apache Spark.
- 2. časť: Preskúmajte a vizualizujte údaje pomocou poznámkových blokov služby Microsoft Fabric na ďalšie informácie o údajoch.
- 3. časť: Trénovanie a registrácia modelov strojového učenia.
%pip install scikit-learn==1.6.1
Sledovanie v notebooku
4-predict.ipynb je notebook, ktorý sprevádza tento kurz.
Ak chcete otvoriť sprievodný poznámkový blok pre tento kurz, postupujte podľa pokynov v téme Príprava systému na kurzy dátových vied na import notebooku do pracovného priestoru.
Ak by ste radšej skopírovali a prilepili kód z tejto stránky, môžete vytvoriť nový poznámkový blok.
Uistite sa, že pripojiť lakehouse k notebooku, ako začnete bežať kód.
Dôležitý
Pripojte rovnaký lakehouse ste použili v iných častiach tejto série.
Načítanie testovacích údajov
V nasledujúcom úryvku kódu načítajte testovacie dáta, ktoré ste si uložili v časti 3:
df_test = spark.read.format("delta").load("Tables/df_test")
display(df_test)
Funkcia PREDICT pomocou rozhrania API pre transformátor
Na použitie Transformer API zo SynapseML musíte najprv vytvoriť objekt MLFlowTransformer.
Inštancia objektu MLFlowTransformer
Objekt MLFlowTransformer slúži ako obal okolo modelu MLFlow, ktorý ste zaregistrovali v časti 3. Umožňuje generovať dávkové predpovede v danom údajovom prvku. Na inštanciu objektu MLFlowTransformer musíte poskytnúť nasledujúce parametre:
- Testovacie stĺpce DataFrame, ktoré model potrebuje ako vstup (v tomto prípade model potrebuje všetky)
- Názov pre nový výstupný stĺpec (v tomto prípade predikcie)
- Správny názov modelu a verzia modelu na generovanie predpovedí (v tomto prípade
lgbm_sma verzia 1)
Nasledujúci úryvok kódu rieši tieto kroky:
from synapse.ml.predict import MLFlowTransformer
model = MLFlowTransformer(
inputCols=list(df_test.columns),
outputCol='predictions',
modelName='lgbm_sm',
modelVersion=1
)
Teraz, keď máte objekt MLFlowTransformer, môžete ho použiť na generovanie dávkových predikcií, ako je znázornené v nasledujúcom úryvku kódu:
import pandas
predictions = model.transform(df_test)
display(predictions)
FUNKCIA PREDICT s rozhraním API služby Spark SQL
Nasledujúci úryvok kódu využíva Spark SQL API na vyvolanie funkcie PREDICT:
from pyspark.ml.feature import SQLTransformer
# Substitute "model_name", "model_version", and "features" below with values for your own model name, model version, and feature columns
model_name = 'lgbm_sm'
model_version = 1
features = df_test.columns
sqlt = SQLTransformer().setStatement(
f"SELECT PREDICT('{model_name}/{model_version}', {','.join(features)}) as predictions FROM __THIS__")
# Substitute "X_test" below with your own test dataset
display(sqlt.transform(df_test))
FUNKCIA PREDICT s funkciou definovanou používateľom (UDF)
Nasledujúci úryvok kódu používa PySpark UDF na vyvolanie funkcie PREDICT:
from pyspark.sql.functions import col, pandas_udf, udf, lit
# Substitute "model" and "features" below with values for your own model name and feature columns
my_udf = model.to_udf()
features = df_test.columns
display(df_test.withColumn("predictions", my_udf(*[col(f) for f in features])))
Môžeš tiež generovať PREDICT kód z položky v modeli. Viac informácií o funkcii PREDICT nájdete v článku Machine learning model scoring with PREDICT resource.
Písanie výsledkov predpovede modelu do jazera
Po vygenerovaní dávkových predpovedí zapíšte výsledky modelových predpovedí späť do jazerného domu, ako je znázornené v nasledujúcom úryvku kódu:
# Save predictions to lakehouse to be used for generating a Power BI report
table_name = "df_test_with_predictions_v1"
predictions.write.format('delta').mode("overwrite").save(f"Tables/{table_name}")
print(f"Spark DataFrame saved to delta table: {table_name}")
Ďalší krok
Prejdite na: