Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu se naučíte importovat registrovaný model LightGBMClassifier, který byl vytrénován v části 3 pomocí registru modelů Microsoft Fabric MLflow, a provádět dávkové předpovědi testovací datové sady načtené z lakehouse.
Microsoft Fabric umožňuje zprovoznit modely strojového učení škálovatelnou funkcí s názvem PREDICT, která podporuje dávkové bodování v jakémkoli výpočetním modulu. Dávkové předpovědi můžete generovat přímo z poznámkového bloku Microsoft Fabric nebo ze stránky položek daného modelu. Přečtěte si informace o PREDICT.
K vygenerování dávkových predikcí v testovací datové sadě použijete verzi 1 vytrénovaného modelu LightGBM, který ukázal nejlepší výkon mezi všemi natrénovanými modely strojového učení. Testovací datovou sadu načtete do datového rámce Sparku a vytvoříte objekt MLFlowTransformer pro generování dávkových předpovědí. Funkci PREDICT pak můžete vyvolat jedním z následujících tří způsobů:
- Rozhraní TRANSFORMER API ze služby SynapseML
- Spark SQL API
- Uživatelem definovaná funkce PySpark (UDF)
Požadavky
Získejte předplatné Microsoft Fabric. Nebo si zaregistrujte bezplatnou zkušební verzi Microsoft Fabric.
Přihlaste se k Microsoft Fabric.
Pomocí přepínače zkušeností v levém dolním rohu domovské stránky přepněte na Fabric.
Tato je čtvrtá část z pěti v sérii tutoriálů. K dokončení tohoto kurzu nejprve dokončete:
- část 1: Ingestování dat do Microsoft Fabric Lakehouse pomocí Apache Spark.
- část 2: Prozkoumání a vizualizace dat pomocí poznámkových bloků Microsoft Fabric, kde najdete další informace o datech.
- část 3: Trénování a registrace modelů strojového učení.
Sledujte v poznámkovém bloku
4-predict.ipynb je poznámkový blok, který doprovází tento kurz.
Pokud chcete otevřít doprovodný poznámkový blok pro tento kurz, postupujte podle pokynů v oddílu Příprava systému na kurzy datových věd, abyste mohli importovat poznámkový blok do svého pracovního prostoru.
Pokud chcete raději zkopírovat a vložit kód z této stránky, můžete vytvořit nový poznámkový blok.
Než začnete spouštět kód, nezapomeňte k poznámkovému bloku připojit lakehouse.
Důležitý
Připojte stejné jezero, které jste použili v ostatních částech této série.
Načtení testovacích dat
Načtěte testovací data, která jste uložili v části 3.
df_test = spark.read.format("delta").load("Tables/df_test")
display(df_test)
PREDICT s využitím rozhraní Transformer API
Pokud chcete použít rozhraní Transformer API ze synapseML, musíte nejprve vytvořit objekt MLFlowTransformer.
Vytvoření instance objektu MLFlowTransformer
Objekt MLFlowTransformer je obálka kolem modelu MLFlow, který jste zaregistrovali v části 3. Umožňuje generovat dávkové předpovědi pro daný datový rámec. Pokud chcete vytvořit instanci objektu MLFlowTransformer, budete muset zadat následující parametry:
- Sloupce z testovacího datového rámce, které potřebujete jako vstup do modelu (v tomto případě byste je potřebovali všechny).
- Název nového výstupního sloupce (v tomto případě předpovědi).
- Správný název modelu a verze modelu pro generování předpovědí (v tomto případě
lgbm_sma verze 1).
from synapse.ml.predict import MLFlowTransformer
model = MLFlowTransformer(
inputCols=list(df_test.columns),
outputCol='predictions',
modelName='lgbm_sm',
modelVersion=1
)
Teď, když máte objekt MLFlowTransformer, můžete ho použít ke generování dávkových předpovědí.
import pandas
predictions = model.transform(df_test)
display(predictions)
PREDICT s využitím rozhraní Spark SQL API
Následující kód vyvolá funkci PREDICT pomocí rozhraní SPARK SQL API.
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))
PREDICT s uživatelem definovanou funkcí (UDF)
Následující kód vyvolá funkci PREDICT s funkcí PySpark UDF.
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])))
Všimněte si, že kód PREDICT můžete také vygenerovat ze stránky položek modelu. Přečtěte si informace o PREDICT.
Zápis výsledků predikce modelu do jezera
Jakmile vygenerujete dávkové předpovědi, napište výsledky předpovědi modelu zpět do jezera.
# Save predictions to lakehouse to be used for generating a Power BI report
table_name = "customer_churn_test_predictions"
predictions.write.format('delta').mode("overwrite").save(f"Tables/{table_name}")
print(f"Spark DataFrame saved to delta table: {table_name}")
Další krok
Pokračujte k: