Modul 5: Durchführen von Batchbewertungen und Speichern von Vorhersagen in einem Lakehouse
In diesem Modul erfahren Sie, wie Sie ein trainiertes und registriertes LightGBMRegressor-Modell aus der Microsoft Fabric MLflow-Modellregistrierung importieren und Batchvorhersagen für ein Testdataset ausführen, das aus einem Lakehouse geladen wurde.
Wichtig
Microsoft Fabric befindet sich derzeit in der Vorschauversion. Diese Informationen beziehen sich auf eine Vorabversion des Produkts, an der vor der Veröffentlichung noch wesentliche Änderungen vorgenommen werden können. Microsoft übernimmt keine Garantie, weder ausdrücklich noch stillschweigend, für die hier bereitgestellten Informationen.
Folgen Sie im Notizbuch
Die python-Befehle/skripts, die in jedem Schritt dieses Tutorials verwendet werden, finden Sie im begleitenden Notebook: 05-perform-batch-scoring-and-save-predictions-to-lakehouse.ipynb. Achten Sie darauf, dass Sie ein Lakehouse an das Notebook anfügen , bevor Sie es ausführen.
Durchführen von Batchbewertungen und Speichern von Vorhersagen
Lesen Sie eine zufällige Stichprobe bereinigter Daten aus der Lakehouse-Tabelle nyctaxi_prep nach puYear=2016 und puMonth=3 gefiltert.
SEED = 1234 # Random seed input_df = spark.read.format("delta").load("Tables/nyctaxi_prep")\ .filter("puYear = 2016 AND puMonth = 3")\ .sample(True, 0.01, seed=SEED) ## Sampling data to reduce execution time for this tutorial
Importieren Sie die erforderlichen pyspark.ml- und synapse.ml bibliotheken, und laden Sie das trainierte und registrierte LightGBMRegressor-Modell mithilfe der run_uri aus dem letzten Schritt von Modul 4: Trainieren und Registrieren von Machine Learning-Modellen kopiert.
import mlflow from pyspark.ml.feature import OneHotEncoder, VectorAssembler, StringIndexer from pyspark.ml import Pipeline from synapse.ml.core.platform import * from synapse.ml.lightgbm import LightGBMRegressor ## Define run_uri to fetch the model run_uri = "<enter the run_uri from module 04 here>" loaded_model = mlflow.spark.load_model(run_uri, dfs_tmpdir="Files/tmp/mlflow")
Führen Sie die Modelltransformation für den Eingabedatenrahmen aus, um Vorhersagen zu generieren und unnötige Vektorfeatures zu entfernen, die für das Modelltraining mit den folgenden Befehlen erstellt wurden.
# Generate predictions by applying model transform on the input dataframe predictions = loaded_model.transform(input_df) cols_toremove = ['storeAndFwdFlagIdx', 'timeBinsIdx', 'vendorIDIdx', 'paymentTypeIdx', 'vendorIDEnc', 'rateCodeIdEnc', 'paymentTypeEnc', 'weekDayEnc', 'pickupHourEnc', 'storeAndFwdFlagEnc', 'timeBinsEnc', 'features','weekDayNameIdx', 'pickupHourIdx', 'rateCodeIdIdx', 'weekDayNameEnc'] output_df = predictions.withColumnRenamed("prediction", "predictedtripDuration").drop(*cols_toremove)
Speichern Sie Vorhersagen in der Lakehouse-Deltatabelle nyctaxi_pred für nachgelagerte Verbrauchs- und Analysevorgänge.
table_name = "nyctaxi_pred" output_df.write.mode("overwrite").format("delta").save(f"Tables/{table_name}") print(f"Output Predictions saved to delta table: {table_name}")
Zeigen Sie eine Vorschau der endgültigen vorhergesagten Daten mit verschiedenen Methoden an, einschließlich SparkSQL-Abfragen, die mit dem Befehl %%sql magics ausgeführt werden können, der der Notebook-Engine mitteilt, dass es sich bei der Zelle um ein SparkSQL-Skript handelt.
%%sql SELECT * FROM nyctaxi_pred LIMIT 20
Die nyctaxi_pred Deltatabelle, die Vorhersagen enthält, kann auch über die Lakehouse-Benutzeroberfläche angezeigt werden, indem Sie zum Lakehouse-Element im aktiven Fabric-Arbeitsbereich navigieren.