Πειράματα εκμάθησης μηχανής στο Microsoft Fabric
Ένας πειραματισμός εκμάθησης μηχανής είναι η κύρια μονάδα οργανισμού και ελέγχου για όλες τις σχετικές εκτελέσεις εκμάθησης μηχανής. Μια εκτέλεση αντιστοιχεί σε μία εκτέλεση κώδικα μοντέλου. Σε MLflow, η παρακολούθηση βασίζεται σε πειράματα και εκτελέσεις.
Τα πειράματα εκμάθησης μηχανής επιτρέπουν στους επιστήμονες δεδομένων να καταγράφουν παραμέτρους, εκδόσεις κώδικα, μετρικά και αρχεία εξόδου κατά την εκτέλεση του κώδικα εκμάθησης μηχανής. Τα πειράματα σάς επιτρέπουν επίσης να απεικονίζετε, να αναζητάτε και να συγκρίνετε εκτελέσεις, καθώς και να κάνετε λήψη αρχείων εκτέλεσης και μετα-δεδομένων για ανάλυση σε άλλα εργαλεία.
Σε αυτό το άρθρο, θα μάθετε περισσότερα σχετικά με τον τρόπο με τον οποίο οι επιστήμονες δεδομένων μπορούν να αλληλεπιδράσουν και να χρησιμοποιήσουν πειράματα εκμάθησης μηχανής για να οργανώσουν τη διαδικασία ανάπτυξής τους και να παρακολουθούν πολλές εκτελέσεις.
Προϋποθέσεις
- Μια συνδρομή Power BI Premium. Εάν δεν έχετε, ανατρέξτε στο θέμα Τρόπος αγοράς του Power BI Premium.
- Ένας χώρος εργασίας Power BI με εκχωρημένους premium εκχωρημένους πόρους.
Δημιουργία πειράματος
Μπορείτε να δημιουργήσετε ένα πείραμα εκμάθησης μηχανής απευθείας από το περιβάλλον εργασίας χρήστη (UI) του fabric ή γράφοντας κώδικα που χρησιμοποιεί το API MLflow.
Δημιουργία πειράματος με χρήση του περιβάλλοντος εργασίας χρήστη
Για να δημιουργήσετε ένα πείραμα εκμάθησης μηχανής από το περιβάλλον εργασίας χρήστη:
- Δημιουργήστε έναν νέο χώρο εργασίας ή επιλέξτε έναν υπάρχοντα.
- Μπορείτε να δημιουργήσετε ένα νέο στοιχείο μέσω του χώρου εργασίας ή χρησιμοποιώντας τη Δημιουργία.
- Εισαγάγετε ένα όνομα πειράματος και επιλέξτε Δημιουργία. Αυτή η ενέργεια δημιουργεί ένα κενό πείραμα εντός του χώρου εργασίας σας.
Μετά τη δημιουργία του πειράματος, μπορείτε να αρχίσετε να προσθέτετε εκτελέσεις για την παρακολούθηση μετρικών και παραμέτρων εκτέλεσης.
Δημιουργία πειράματος με χρήση του API MLflow
Μπορείτε επίσης να δημιουργήσετε ένα πείραμα εκμάθησης μηχανής απευθείας από την εμπειρία σύνταξης, χρησιμοποιώντας τα API mlflow.create_experiment()
ή mlflow.set_experiment()
. Στον παρακάτω κώδικα, αντικαταστήστε το <EXPERIMENT_NAME>
με το όνομα του πειράματός σας.
import mlflow
# This will create a new experiment with the provided name.
mlflow.create_experiment("<EXPERIMENT_NAME>")
# This will set the given experiment as the active experiment.
# If an experiment with this name does not exist, a new experiment with this name is created.
mlflow.set_experiment("<EXPERIMENT_NAME>")
Διαχείριση εκτελέσεων σε ένα πείραμα
Ένα πείραμα εκμάθησης μηχανής περιέχει μια συλλογή εκτελέσεων για απλοποιημένη παρακολούθηση και σύγκριση. Στο πλαίσιο ενός πειράματος, ένας επιστήμονας δεδομένων μπορεί να περιηγηθεί σε διάφορες εκτελέσεις και να εξερευνήσει τις υποκείμενες παραμέτρους και τα μετρικά. Οι επιστήμονες δεδομένων μπορούν επίσης να συγκρίνουν εκτελέσεις μέσα σε ένα πείραμα εκμάθησης μηχανής για να προσδιορίσουν ποιο υποσύνολο παραμέτρων αποδίδει μια επιθυμητή απόδοση μοντέλου.
Παρακολούθηση εκτελέσεων
Μια εκτέλεση εκμάθησης μηχανής αντιστοιχεί σε μία μόνο εκτέλεση κώδικα μοντέλου.
Κάθε εκτέλεση περιλαμβάνει τις ακόλουθες πληροφορίες:
- Source: Το όνομα του σημειωματάριου που δημιούργησε την εκτέλεση.
- καταχωρημένη έκδοση: Υποδεικνύει εάν η εκτέλεση αποθηκεύτηκε ως μοντέλο εκμάθησης μηχανής.
- ημερομηνία έναρξης: Ώρα έναρξης της εκτέλεσης.
- κατάστασης: Πρόοδος της εκτέλεσης.
- Hyperparameters: Υπερπαραμετρήσεις που αποθηκεύτηκαν ως ζεύγη κλειδιού-τιμής. Αμφότερα τα κλειδιά και οι τιμές είναι συμβολοσειρές.
- μετρικά: Εκτελέστε τα μετρικά που έχουν αποθηκευτεί ως ζεύγη κλειδιού-τιμής. Η τιμή είναι αριθμητική.
- αρχεία εξόδου: Αρχεία εξόδου σε οποιαδήποτε μορφή. Για παράδειγμα, μπορείτε να καταγράψετε εικόνες, περιβάλλον, μοντέλα και αρχεία δεδομένων.
- ετικέτες: Μετα-δεδομένα ως ζεύγη κλειδιού-τιμής προς εκτελέσεις.
Προβολή πρόσφατων εκτελέσεων
Μπορείτε επίσης να προβάλετε πρόσφατες εκτελέσεις για ένα πείραμα, επιλέγοντας λίστα Εκτέλεση. Αυτή η προβολή σάς επιτρέπει να παρακολουθείτε την πρόσφατη δραστηριότητα, να μεταβείτε γρήγορα στη σχετική εφαρμογή Spark και να εφαρμόσετε φίλτρα με βάση την κατάσταση εκτέλεσης.
Σύγκριση και φιλτράρισμα εκτελέσεων
Για να συγκρίνετε και να αξιολογήσετε την ποιότητα των εκτελέσεων εκμάθησης μηχανής, μπορείτε να συγκρίνετε τις παραμέτρους, τα μετρικά και τα μετα-δεδομένα μεταξύ των επιλεγμένων εκτελέσεων σε ένα πείραμα.
Εφαρμογή ετικετών σε εκτελέσεις
Η προσθήκη ετικετών MLflow για δοκιμαστικές εκτελέσεις επιτρέπει στους χρήστες να προσθέτουν προσαρμοσμένα μετα-δεδομένα με τη μορφή ζευγών κλειδιού-τιμής στις εκτελέσεις τους. Αυτές οι ετικέτες βοηθούν στην κατηγοριοποίηση, το φιλτράρισμα και την αναζήτηση εκτελέσεων με βάση συγκεκριμένα χαρακτηριστικά, διευκολύνοντας τη διαχείριση και ανάλυση πειραμάτων στην πλατφόρμα MLflow. Οι χρήστες μπορούν να χρησιμοποιήσουν ετικέτες για την προσθήκη ετικετών σε εκτελέσεις με πληροφορίες όπως τύπους μοντέλων, παραμέτρους ή οποιαδήποτε σχετικά αναγνωριστικά, βελτιώνοντας τον συνολικό οργανισμό και την ιχνηλασιμότητα των πειραμάτων.
Αυτό το τμήμα κώδικα ξεκινά μια εκτέλεση MLflow, καταγράφει ορισμένες παραμέτρους και μετρικά και προσθέτει ετικέτες για την κατηγοριοποίηση και την παροχή πρόσθετου περιβάλλοντος για την εκτέλεση.
import mlflow
import mlflow.sklearn
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.datasets import fetch_california_housing
# Autologging
mlflow.autolog()
# Load the California housing dataset
data = fetch_california_housing(as_frame=True)
X = data.data
y = data.target
# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Start an MLflow run
with mlflow.start_run() as run:
# Train the model
model = LinearRegression()
model.fit(X_train, y_train)
# Predict and evaluate
y_pred = model.predict(X_test)
# Add tags
mlflow.set_tag("model_type", "Linear Regression")
mlflow.set_tag("dataset", "California Housing")
mlflow.set_tag("developer", "Bob")
Αφού εφαρμοστούν οι ετικέτες, μπορείτε να προβάλετε τα αποτελέσματα απευθείας από το ενσωματωμένο γραφικό στοιχείο MLflow ή από τη σελίδα λεπτομερειών εκτέλεσης.
Προειδοποίηση
προειδοποίηση : Περιορισμοί στην εφαρμογή ετικετών στο πείραμα MLflow εκτελείται σε Fabric
- μη κενές ετικέτες: Τα ονόματα ή οι τιμές ετικετών δεν μπορούν να είναι κενά. Εάν επιχειρήσετε να εφαρμόσετε μια ετικέτα με ένα κενό όνομα ή τιμή, η λειτουργία θα αποτύχει.
- ονόματα ετικετών: Τα ονόματα ετικετών μπορούν να έχουν μήκος έως 250 χαρακτήρες.
- τιμών ετικέτας: Οι τιμές ετικέτας μπορεί να έχουν μήκος έως 5000 χαρακτήρες.
-
ονόματα περιορισμένων ετικετών: Δεν υποστηρίζονται ονόματα ετικετών που ξεκινούν με συγκεκριμένα προθέματα. Συγκεκριμένα, τα ονόματα ετικετών που ξεκινούν με
synapseml
,mlflow
ήtrident
είναι περιορισμένα και δεν θα γίνονται αποδεκτά.
Οπτική σύγκριση εκτελέσεων
Μπορείτε να συγκρίνετε και να φιλτράρετε οπτικά εκτελέσεις σε ένα υπάρχον πείραμα. Η οπτική σύγκριση σάς επιτρέπει να περιηγηθείτε εύκολα μεταξύ πολλών εκτελέσεων και ταξινόμησης σε αυτές.
Για τη σύγκριση εκτελέσεων:
- Επιλέξτε ένα υπάρχον πείραμα εκμάθησης μηχανής που περιέχει πολλές εκτελέσεις.
- Επιλέξτε την καρτέλα
Προβολή και, στη συνέχεια, μεταβείτε στην προβολή λίσταΕκτέλεση. Εναλλακτικά, μπορείτε να επιλέξετε λεπτομέρειεςλίστα προβολής εκτέλεσης απευθείας από την προβολήεκτέλεσης. - Προσαρμόστε τις στήλες εντός του πίνακα αναπτύσσοντας το Προσαρμογή στηλών τμήμα παραθύρου. Εδώ, μπορείτε να επιλέξετε τις ιδιότητες, τα μετρικά, τις ετικέτες και τους υπερπαραμέτρους που θα θέλατε να δείτε.
- Αναπτύξτε το τμήμα παραθύρου Φίλτρο για να περιορίσετε τα αποτελέσματά σας με βάση ορισμένα επιλεγμένα κριτήρια.
- Επιλέξτε πολλές εκτελέσεις για να συγκρίνετε τα αποτελέσματά τους στο τμήμα παραθύρου σύγκρισης μετρικών. Από αυτό το τμήμα παραθύρου, μπορείτε να προσαρμόσετε τα γραφήματα αλλάζοντας τον τίτλο γραφήματος, τον τύπο απεικόνισης, τον άξονα Χ, τον άξονα Υ και πολλά άλλα.
Σύγκριση εκτελέσεων με χρήση του API MLflow
Οι επιστήμονες δεδομένων μπορούν επίσης να χρησιμοποιήσουν MLflow για να υποβάλλουν ερωτήματα και να αναζητήσουν μεταξύ εκτελέσεων σε ένα πείραμα. Μπορείτε να εξερευνήσετε περισσότερα API MLflow για αναζήτηση, φιλτράρισμα και σύγκριση εκτελέσεων, μεταβαίνοντας στην τεκμηρίωση του MLflow.
Λήψη όλων των εκτελέσεων
Μπορείτε να χρησιμοποιήσετε το mlflow.search_runs()
API αναζήτησης MLflow για να λάβετε όλες τις εκτελέσεις σε ένα πείραμα, αντικαθιστώντας <EXPERIMENT_NAME>
με το όνομα του πειράματος ή το <EXPERIMENT_ID>
με το αναγνωριστικό πειράματος στον ακόλουθο κώδικα:
import mlflow
# Get runs by experiment name:
mlflow.search_runs(experiment_names=["<EXPERIMENT_NAME>"])
# Get runs by experiment ID:
mlflow.search_runs(experiment_ids=["<EXPERIMENT_ID>"])
Φιλοδώρημα
Μπορείτε να κάνετε αναζήτηση σε πολλά πειράματα, παρέχοντας μια λίστα με αναγνωριστικά πειραμάτων στην παράμετρο experiment_ids
. Παρομοίως, η παροχή μιας λίστας ονομάτων πειραμάτων στην παράμετρο experiment_names
θα επιτρέψει στο MLflow την αναζήτηση σε πολλά πειράματα. Αυτό μπορεί να είναι χρήσιμο εάν θέλετε να κάνετε σύγκριση μεταξύ εκτελέσεων σε διαφορετικά πειράματα.
Παραγγελίες και περιορισμός εκτελέσεων
Χρησιμοποιήστε την παράμετρο max_results
από search_runs
για να περιορίσετε τον αριθμό των εκτελέσεων που επιστρέφονται. Η παράμετρος order_by
σάς επιτρέπει να καταχωρήσετε τις στήλες προς ταξινόμηση και μπορεί να περιέχει μια προαιρετική τιμή DESC
ή ASC
. Για παράδειγμα, το παρακάτω παράδειγμα επιστρέφει την τελευταία εκτέλεση ενός πειράματος.
mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])
Σύγκριση εκτελέσεων σε ένα σημειωματάριο Fabric
Μπορείτε να χρησιμοποιήσετε το γραφικό στοιχείο σύνταξης MLFlow στα σημειωματάρια Fabric για να παρακολουθείτε τις εκτελέσεις MLflow που δημιουργούνται σε κάθε κελί σημειωματάριου. Το γραφικό στοιχείο σάς επιτρέπει να παρακολουθείτε τις εκτελέσεις σας, συσχετισμένα μετρικά, παραμέτρους και ιδιότητες μέχρι το επίπεδο του μεμονωμένου κελιού.
Για να λάβετε μια οπτική σύγκριση, μπορείτε επίσης να μεταβείτε στην σύγκριση εκτέλεσης προβολή. Αυτή η προβολή παρουσιάζει τα δεδομένα γραφικά, βοηθώντας στη γρήγορη αναγνώριση μοτίβων ή αποκλίσεων μεταξύ διαφορετικών εκτελέσεων.
Αποθήκευση εκτέλεσης ως μοντέλου εκμάθησης μηχανής
Όταν μια εκτέλεση αποδώσει το επιθυμητό αποτέλεσμα, μπορείτε να αποθηκεύσετε την εκτέλεση ως μοντέλο για βελτιωμένη παρακολούθηση μοντέλου και για ανάπτυξη μοντέλου, επιλέγοντας αποθήκευση ως μοντέλο εκμάθησης μηχανής.
Παρακολούθηση πειραμάτων εκμάθησης μηχανής (προεπισκόπηση)
Τα πειράματα εκμάθησης μηχανής ενοποιούνται απευθείας στην Παρακολούθηση. Αυτή η λειτουργικότητα έχει σχεδιαστεί για να παρέχει περισσότερες πληροφορίες σχετικά με τις εφαρμογές Σας Spark και τα πειράματα εκμάθησης μηχανής που δημιουργούν, διευκολύνοντας τη διαχείριση και τον εντοπισμό σφαλμάτων σε αυτές τις διαδικασίες.
Παρακολούθηση εκτελέσεων από την οθόνη
Οι χρήστες μπορούν να παρακολουθούν τις εκτελέσεις πειραμάτων απευθείας από την παρακολούθηση, παρέχοντας μια ενοποιημένη προβολή όλων των δραστηριοτήτων τους. Αυτή η ενοποίηση περιλαμβάνει επιλογές φιλτραρίσματος, επιτρέποντας στους χρήστες να εστιάζουν σε πειράματα ή εκτελέσεις που δημιουργήθηκαν εντός των τελευταίων 30 ημερών ή άλλων καθορισμένων περιόδων.
Παρακολούθηση σχετικών εκτελέσεων πειραμάτων εκμάθησης μηχανής από την εφαρμογή Spark
Το πείραμα εκμάθησης μηχανής ενσωματώνεται απευθείας στην Παρακολούθηση, όπου μπορείτε να επιλέξετε μια συγκεκριμένη εφαρμογή Spark και να αποκτήσετε πρόσβαση σε Στιγμιότυπα στοιχείων. Εδώ, θα βρείτε μια λίστα με όλα τα πειράματα και τις εκτελέσεις που δημιουργούνται από αυτήν την εφαρμογή.