Κοινοποίηση μέσω


Εκπαιδευτικό βοήθημα, Μέρος 4: Εκτέλεση βαθμολόγησης δέσμης και αποθήκευση προβλέψεων σε ένα lakehouse

Αυτό το σεμινάριο δείχνει πώς να εισαγάγετε το καταχωρημένο μοντέλο 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 χρησιμοποιώντας την εναλλαγή εμπειριών στην κάτω αριστερή πλευρά της αρχικής σελίδας σας.

    Στιγμιότυπο οθόνης που εμφανίζει την επιλογή του Fabric στο μενού εναλλαγής εμπειριών.

Αυτό είναι το μέρος 4 μιας σειράς σεμιναρίων πέντε μερών. Για να ολοκληρώσετε αυτή την εκμάθηση, ολοκληρώστε πρώτα τα εξής:

%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}")

Επόμενο βήμα

Συνεχίστε με το: