Σημείωση
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να συνδεθείτε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Αυτό το σεμινάριο δείχνει πώς να εισαγάγετε το καταχωρημένο μοντέλο LightGBMClassifier που δημιουργήσατε στο μέρος 3. Αυτό το εκπαιδευτικό βοήθημα χρησιμοποίησε το μητρώο μοντέλου Microsoft Fabric MLflow για να εκπαιδεύσει το μοντέλο και, στη συνέχεια, να εκτελέσει προβλέψεις δέσμης σε ένα δοκιμαστικό σύνολο δεδομένων που φορτώθηκε από μια λίμνη.
Το Microsoft Fabric σάς επιτρέπει να θέσετε σε λειτουργία μοντέλα εκμάθησης μηχανής με μια κλιμακούμενη συνάρτηση που ονομάζεται PREDICT, η οποία υποστηρίζει τη βαθμολόγηση δέσμης σε οποιαδήποτε μηχανή υπολογιστικής λειτουργίας. Μπορείτε να δημιουργήσετε προβλέψεις δέσμης απευθείας από ένα σημειωματάριο Microsoft Fabric ή από τη σελίδα στοιχείου ενός συγκεκριμένου μοντέλου. Για να μάθετε περισσότερα, ανατρέξτε στο θέμα ΠΡΟΒΛΕΨΗ.
Για να δημιουργήσετε μαζικές προβλέψεις στο σύνολο δεδομένων δοκιμής, θα χρησιμοποιήσετε την έκδοση 1 του εκπαιδευμένου μοντέλου LightGBM που έδειξε την καλύτερη απόδοση μεταξύ όλων των εκπαιδευμένων μοντέλων εκμάθησης μηχανής. Θα φορτώσετε το σύνολο δεδομένων δοκιμής σε ένα spark DataFrame και θα δημιουργήσετε ένα αντικείμενο MLFlowTransformer για να δημιουργήσετε προβλέψεις παρτίδας. Στη συνέχεια, μπορείτε να καλέσετε τη συνάρτηση PREDICT χρησιμοποιώντας έναν από τους ακόλουθους τρεις τρόπους:
- API μετασχηματιστή από το SynapseML
- Spark SQL API
- Συνάρτηση PySpark που ορίζεται από τον χρήστη (UDF)
Προϋποθέσεις
Λάβετε μια συνδρομής Microsoft Fabric . Εναλλακτικά, εγγραφείτε για μια δωρεάν δοκιμαστική έκδοση microsoft Fabric.
Εισέλθετε για να το Microsoft Fabric.
Μεταβείτε στο Fabric χρησιμοποιώντας την εναλλαγή εμπειριών στην κάτω αριστερή πλευρά της αρχικής σελίδας σας.
Αυτό είναι το μέρος 4 μιας σειράς σεμιναρίων πέντε μερών. Για να ολοκληρώσετε αυτή την εκμάθηση, ολοκληρώστε πρώτα τα εξής:
- Μέρος 1: Πρόσληψη δεδομένων σε μια λίμνη Microsoft Fabric χρησιμοποιώντας Το Apache Spark.
- Μέρος 2: Εξερευνήστε και απεικονίστε δεδομένα χρησιμοποιώντας σημειωματάρια Microsoft Fabric για να μάθετε περισσότερα σχετικά με τα δεδομένα.
- Μέρος 3: Εκπαίδευση και καταχώρηση μοντέλων εκμάθησης μηχανής.
%pip install scikit-learn==1.6.1
Παρακολούθηση στο σημειωματάριο
4-predict.ipynb είναι το σημειωματάριο που συνοδεύει αυτό το εκπαιδευτικό βοήθημα.
Για να ανοίξετε το σημειωματάριο που συνοδεύει αυτό το εκπαιδευτικό βοήθημα, ακολουθήστε τις οδηγίες στο Προετοιμασία του συστήματός σας για εκπαιδευτικά βοηθήματα επιστήμης δεδομένων, να εισαγάγετε το σημειωματάριο στον χώρο εργασίας σας.
Εάν προτιμάτε να αντιγράψετε και να επικολλήσετε τον κώδικα από αυτήν τη σελίδα, μπορείτε να δημιουργήσετε ένα νέο σημειωματάριο.
Βεβαιωθείτε ότι επισυνάψετε μια λίμνη στο σημειωματάριο προτού ξεκινήσετε την εκτέλεση κώδικα.
Σημαντικός
Επισυνάψτε το ίδιο lakehouse που χρησιμοποιήσατε στα άλλα μέρη αυτής της σειράς.
Φόρτωση των δεδομένων δοκιμής
Στο παρακάτω απόσπασμα κώδικα, φορτώστε τα δεδομένα δοκιμής που αποθηκεύσατε στο Μέρος 3:
df_test = spark.read.format("delta").load("Tables/df_test")
display(df_test)
ΠΡΟΒΛΕΨΗ με το API μετασχηματισμού
Για να χρησιμοποιήσετε το Transformer API από το 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
Το παρακάτω τμήμα κώδικα χρησιμοποιεί το Spark SQL API για να καλέσει τη συνάρτηση 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 με μια συνάρτηση που ορίζεται από τον χρήστη (UDF)
Το ακόλουθο απόσπασμα κώδικα χρησιμοποιεί ένα PySpark UDF για να καλέσει τη συνάρτηση 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])))
Μπορείτε επίσης να δημιουργήσετε κώδικα PREDICT από τη σελίδα στοιχείου ενός μοντέλου. Για περισσότερες πληροφορίες σχετικά με τη συνάρτηση PREDICT, ανατρέξτε στο θέμα Βαθμολόγηση μοντέλου εκμάθησης μηχανής με τον πόρο PREDICT.
Εγγραφή αποτελεσμάτων πρόβλεψης μοντέλου στο lakehouse
Αφού δημιουργήσετε προβλέψεις δέσμης, γράψτε τα αποτελέσματα πρόβλεψης μοντέλου πίσω στο lakehouse, όπως φαίνεται στο παρακάτω τμήμα κώδικα:
# 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}")
Επόμενο βήμα
Συνεχίστε με το: