Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku pokazano, jak zaimportować zarejestrowany model LightGBMClassifier utworzony w części 3. W tym samouczku użyto rejestru modeli MLflow usługi Microsoft Fabric do wytrenowania modelu, a następnie wykonano przewidywania wsadowe na testowym zestawie danych załadowanym z lakehouse.
Usługa Microsoft Fabric umożliwia operacjonalizację modeli uczenia maszynowego za pomocą skalowalnej funkcji o nazwie PREDICT, która obsługuje ocenianie wsadowe w dowolnym silniku obliczeniowym. Przewidywania wsadowe można wygenerować bezpośrednio z notebooka Microsoft Fabric lub z strony elementu wybranego modelu. Aby dowiedzieć się więcej, zobacz PREDICT.
Aby wygenerować przewidywania wsadowe w zestawie danych testowych, użyjesz wersji 1 wytrenowanego modelu LightGBM, który wykazał najlepszą wydajność wśród wszystkich wytrenowanych modeli uczenia maszynowego. Załadujesz testowy zestaw danych do DataFrame platformy Spark i utworzysz obiekt MLFlowTransformer, aby wygenerować wsadowe przewidywania. Następnie można wywołać funkcję PREDICT przy użyciu jednego z następujących trzech sposobów:
- Interfejs API Transformer z SynapseML
- Spark SQL API
- Funkcja zdefiniowana przez użytkownika (UDF) PySpark
Warunki wstępne
Pobierz subskrypcję usługi Microsoft Fabric . Możesz też utworzyć bezpłatne konto wersji próbnej usługi Microsoft Fabric.
Zaloguj się do usługi Microsoft Fabric.
Przełącz się na Fabric, używając przełącznika nawigacji w lewej dolnej części strony głównej.
Jest to część 4 z pięciu części serii samouczków. Aby ukończyć ten samouczek, najpierw wykonaj następujące czynności:
- część 1. Pozyskiwanie danych do usługi Microsoft Fabric lakehouse przy użyciu platformy Apache Spark.
- część 2: Eksplorowanie i wizualizowanie danych przy użyciu notesów usługi Microsoft Fabric, aby dowiedzieć się więcej o danych.
- część 3. Trenowanie i rejestrowanie modeli uczenia maszynowego.
%pip install scikit-learn==1.6.1
Śledź w notesie.
4-predict.ipynb to notebook, który towarzyszy temu samouczkowi.
Aby otworzyć notatnik towarzyszący do tego samouczka, postępuj zgodnie z instrukcjami w Przygotuj swój system do samouczków z nauki o danych, aby zaimportować notatnik do swojego obszaru roboczego.
Jeśli wolisz skopiować i wkleić kod z tej strony, możesz utworzyć nowy notes.
Przed rozpoczęciem uruchamiania kodu pamiętaj, aby dołączyć magazyn lakehouse do notesu.
Ważny
Dołącz ten sam dom na jeziorze, którego użyto w innych częściach tej serii.
Ładowanie danych testowych
W poniższym fragmencie kodu załaduj dane testowe zapisane w części 3:
df_test = spark.read.format("delta").load("Tables/df_test")
display(df_test)
PRZEWIDUJ z API Transformer
Aby użyć Transformer API z SynapseML, należy najpierw utworzyć obiekt MLFlowTransformer.
Utworzenie instancji obiektu MLFlowTransformer
Obiekt MLFlowTransformer służy jako opakowanie modelu MLFlow zarejestrowanego w części 3. Umożliwia ona generowanie przewidywań wsadowych dla danej ramki danych. Aby utworzyć instancję obiektu MLFlowTransformer, należy podać następujące parametry:
- Kolumny testowej ramki danych, których model potrzebuje jako danych wejściowych (w tym przypadku model potrzebuje ich wszystkich)
- Nazwa nowej kolumny danych wyjściowych (w tym przypadku przewidywania)
- Poprawna nazwa modelu i wersja modelu do wygenerowania przewidywań (w tym przypadku
lgbm_smi wersja 1)
Poniższy fragment kodu obsługuje następujące kroki:
from synapse.ml.predict import MLFlowTransformer
model = MLFlowTransformer(
inputCols=list(df_test.columns),
outputCol='predictions',
modelName='lgbm_sm',
modelVersion=1
)
Teraz, gdy masz obiekt MLFlowTransformer, możesz go użyć do generowania przewidywań wsadowych, jak pokazano w poniższym fragmencie kodu:
import pandas
predictions = model.transform(df_test)
display(predictions)
PREDICT with the Spark SQL API
Poniższy fragment kodu używa interfejsu API SQL platformy Spark do wywoływania funkcji 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))
FUNKCJA PREDICT z funkcją zdefiniowaną przez użytkownika (UDF)
Poniższy fragment kodu używa funkcji UDF PySpark do wywoływania funkcji 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])))
Możesz również wygenerować kod PREDICT na stronie elementu modelu. Aby uzyskać więcej informacji na temat funkcji PREDICT, zobacz Machine Learning model scoring with PREDICT resource (Ocenianie modelu uczenia maszynowego przy użyciu zasobu PREDICT ).
Zapisz wyniki przewidywania modelu do Lakehouse
Po wygenerowaniu przewidywań wsadowych zapisz wyniki przewidywania modelu z powrotem do usługi Lakehouse, jak pokazano w poniższym fragmencie kodu:
# 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}")
Następny krok
Przejdź do: