Εκπαιδευτικό βοήθημα, Μέρος 4: Εκτέλεση βαθμολόγησης δέσμης και αποθήκευση προβλέψεων σε ένα lakehouse
Σε αυτό το εκπαιδευτικό βοήθημα, θα μάθετε να εισαγάγετε το καταχωρημένο μοντέλο LightGBMClassifier που εκπαιδεύτηκε στο μέρος 3 χρησιμοποιώντας το μητρώο μοντέλου Microsoft Fabric MLflow και να εκτελείτε προβλέψεις δέσμης σε ένα σύνολο δεδομένων δοκιμής που φορτώθηκε από μια λίμνη.
Το Microsoft Fabric σάς επιτρέπει να χρησιμοποιείτε μοντέλα εκμάθησης μηχανής με μια συνάρτηση με δυνατότητα κλιμάκωσης που ονομάζεται PREDICT, η οποία υποστηρίζει βαθμολόγηση δέσμης σε οποιονδήποτε μηχανισμό υπολογιστικής λειτουργίας. Μπορείτε να δημιουργήσετε προβλέψεις δέσμης απευθείας από ένα σημειωματάριο Microsoft Fabric ή από μια συγκεκριμένη σελίδα στοιχείων του μοντέλου. Μάθετε σχετικά με PREDICT .
Για να δημιουργήσετε προβλέψεις δέσμης στο σύνολο δεδομένων δοκιμής, θα χρησιμοποιήσετε την έκδοση 1 του εκπαιδευμένου μοντέλου LightGBM που παρουσίασε τις καλύτερες επιδόσεις μεταξύ όλων των εκπαιδευμένων μοντέλων εκμάθησης μηχανής. Θα φορτώσετε το σύνολο δεδομένων δοκιμής σε ένα spark DataFrame και θα δημιουργήσετε ένα αντικείμενο MLFlowTransformer για τη δημιουργία προβλέψεων δέσμης. Στη συνέχεια, μπορείτε να καλέσετε τη συνάρτηση PREDICT χρησιμοποιώντας έναν από τους εξής τρεις τρόπους:
- API μετασχηματιστή από το SynapseML
- Spark SQL API
- Συνάρτηση PySpark που ορίζεται από τον χρήστη (UDF)
Προϋποθέσεις
Λάβετε μια συνδρομής Microsoft Fabric . Εναλλακτικά, εγγραφείτε για μια δωρεάν δοκιμαστική έκδοση microsoft Fabric.
Εισέλθετε για να το Microsoft Fabric.
Χρησιμοποιήστε την εναλλαγή εμπειρίας στην κάτω αριστερή πλευρά της αρχικής σελίδας σας για να μεταβείτε σε Fabric.
Αυτό το μέρος 4 από 5 στη σειρά εκμάθησης. Για να ολοκληρώσετε αυτή την εκμάθηση, ολοκληρώστε πρώτα τα εξής:
- Μέρος 1: Πρόσληψη δεδομένων σε μια λίμνη Microsoft Fabric χρησιμοποιώντας Το Apache Spark.
- Μέρος 2: Εξερευνήστε και απεικονίστε δεδομένα χρησιμοποιώντας σημειωματάρια Microsoft Fabric για να μάθετε περισσότερα σχετικά με τα δεδομένα.
- Μέρος 3: Εκπαίδευση και καταχώρηση μοντέλων εκμάθησης μηχανής.
Παρακολούθηση στο σημειωματάριο
4-predict.ipynb είναι το σημειωματάριο που συνοδεύει αυτό το εκπαιδευτικό βοήθημα.
Για να ανοίξετε το σημειωματάριο που συνοδεύει αυτό το εκπαιδευτικό βοήθημα, ακολουθήστε τις οδηγίες στο Προετοιμασία του συστήματός σας για εκπαιδευτικά βοηθήματα επιστήμης δεδομένων, να εισαγάγετε το σημειωματάριο στον χώρο εργασίας σας.
Εάν προτιμάτε να αντιγράψετε και να επικολλήσετε τον κώδικα από αυτήν τη σελίδα, μπορείτε να δημιουργήσετε ένα νέο σημειωματάριο.
Βεβαιωθείτε ότι επισυνάψετε μια λίμνη στο σημειωματάριο προτού ξεκινήσετε την εκτέλεση κώδικα.
Σημαντικός
Επισυνάψτε το ίδιο lakehouse που χρησιμοποιήσατε στα άλλα μέρη αυτής της σειράς.
Φόρτωση των δεδομένων δοκιμής
Φορτώστε τα δεδομένα δοκιμής που αποθηκεύσατε στο Μέρος 3.
df_test = spark.read.format("delta").load("Tables/df_test")
display(df_test)
ΠΡΟΒΛΕΨΗ με το API μετασχηματισμού
Για να χρησιμοποιήσετε το API transformer από το SynapseML, θα πρέπει πρώτα να δημιουργήσετε ένα αντικείμενο MLFlowTransformer.
Αντικείμενο Instantiate MLFlowTransformer
Το αντικείμενο MLFlowTransformer είναι ένα πρόγραμμα περιτύλιξης του μοντέλου MLFlow που καταχωρίσατε στο Μέρος 3. Σας επιτρέπει να δημιουργήσετε προβλέψεις δέσμης σε ένα δεδομένο DataFrame. Για να δημιουργήσετε το αντικείμενο MLFlowTransformer, θα πρέπει να καταχωρήσετε τις ακόλουθες παραμέτρους:
- Οι στήλες από το δοκιμαστικό DataFrame που χρειάζεστε ως είσοδο στο μοντέλο (σε αυτή την περίπτωση, θα τις χρειαστείτε όλες).
- Ένα όνομα για τη νέα στήλη εξόδου (σε αυτή την περίπτωση, προβλέψεις).
- Το σωστό όνομα μοντέλου και έκδοση μοντέλου για τη δημιουργία των προβλέψεων (σε αυτή την περίπτωση,
lgbm_sm
και έκδοση 1).
from synapse.ml.predict import MLFlowTransformer
model = MLFlowTransformer(
inputCols=list(df_test.columns),
outputCol='predictions',
modelName='lgbm_sm',
modelVersion=1
)
Τώρα που έχετε το αντικείμενο MLFlowTransformer, μπορείτε να το χρησιμοποιήσετε για τη δημιουργία προβλέψεων δέσμης.
import pandas
predictions = model.transform(df_test)
display(predictions)
ΠΡΌΒΛΕΨΗ με το Spark SQL API
Ο ακόλουθος κώδικας καλεί τη συνάρτηση PREDICT με το 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 με μια συνάρτηση που ορίζεται από τον χρήστη (UDF)
Ο ακόλουθος κώδικας καλεί τη συνάρτηση PREDICT με ένα UDF PySpark.
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])))
Σημειώστε ότι μπορείτε επίσης να δημιουργήσετε κώδικα PREDICT από τη σελίδα στοιχείου ενός μοντέλου. Μάθετε σχετικά με PREDICT .
Εγγραφή αποτελεσμάτων πρόβλεψης μοντέλου στο lakehouse
Αφού δημιουργήσετε προβλέψεις δέσμης, γράψτε τα αποτελέσματα πρόβλεψης μοντέλου στο lakehouse.
# 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}")
Επόμενο βήμα
Συνεχίστε με το: