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 dozvíte, jak importovat registrovaný model LightGBMClassifier, který jste vytvořili v části 3. V tomto kurzu byl použit registr modelů Microsoft Fabric MLflow k trénování modelu a poté k provádění dávkových předpovědí na testovací datové sadě 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. Další informace najdete v tématu 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.
Přepněte na Fabric pomocí přepínače prostředí v levém dolním rohu domovské stránky.
Toto je část 4 pětidílné série kurzů. 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í.
%pip install scikit-learn==1.6.1
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
V následujícím fragmentu kódu 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 slouží jako obálka kolem modelu MLFlow, který jste zaregistrovali v části 3. Umožňuje generovat dávkové předpovědi pro daný datový rámec. Chcete-li vytvořit instanci objektu MLFlowTransformer, musíte zadat následující parametry:
- Sloupce testovacího datového rámce, které model potřebuje jako vstup (v tomto případě model potřebuje 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)
Následující fragment kódu zpracovává tyto kroky:
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í, jak je znázorněno v následujícím fragmentu kódu:
import pandas
predictions = model.transform(df_test)
display(predictions)
PREDICT s využitím rozhraní Spark SQL API
Následující fragment kódu používá rozhraní SPARK SQL API k vyvolání funkce 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))
PREDICT s uživatelem definovanou funkcí (UDF)
Následující fragment kódu používá K vyvolání funkce PREDICT funkci 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])))
Kód PREDICT můžete také vygenerovat ze stránky položek modelu. Další informace o funkci PREDICT najdete v tématu Bodování modelu strojového učení pomocí prostředku PREDICT .
Zápis výsledků predikce modelu do jezera
Po vygenerování dávkových předpovědí zapište výsledky předpovědi modelu zpět do lakehouse, jak je znázorněno v následujícím fragmentu 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}")
Další krok
Pokračujte k: