Εκτελείται αναζήτηση στο MLflow

Ekteleitai Anazetese Sto Mlflow



Για την παρακολούθηση και τη διαχείριση των πειραμάτων μηχανικής μάθησης, το MLflow προσφέρει μια εκτεταμένη πλατφόρμα. Η δυνατότητα αναζήτησης εκτελέσεων είναι ένα από τα βασικά χαρακτηριστικά του MLflow. Αυτό καθιστά δυνατό τον εντοπισμό των αναπτυγμένων πειραμάτων και την οργάνωσή τους με τρόπο που να διευκολύνει τον εντοπισμό των πληροφοριών όποτε χρειάζεται. Ενδέχεται να κάνουμε αναζήτηση σε εκτελέσεις χρησιμοποιώντας το API αναζήτησης MLflow χρησιμοποιώντας μια σειρά από διαφορετικά κριτήρια που μπορεί να περιλαμβάνουν τα ακόλουθα:
  • Αναγνωριστικό ή όνομα πειράματος
  • Αναγνωριστικό εκτέλεσης
  • Παράμετροι και Τιμές
  • Μετρήσεις και Τιμές
  • Ετικέτες
  • Άλλα χαρακτηριστικά που σχετίζονται με τις εκτελέσεις

Οι εκτελέσεις μπορούν να φιλτραριστούν κατά κατάσταση, ώρα έναρξης, ώρα λήξης και διάρκεια με τη χρήση του API αναζήτησης MLflow. Διευκολύνει το φιλτράρισμα πολλών εκτελέσεων και την εύρεση συγκεκριμένων εκτελέσεων που ενδιαφέρουν τους χρήστες.

Λειτουργία αναζήτησης MLflow

Χρησιμοποιήστε τη συνάρτηση mlflow.search_runs() για πρόσβαση στο API αναζήτησης MLflow. Αυτή η συνάρτηση δέχεται μια ποικιλία ορισμάτων όπως τα ακόλουθα:







  • Το αναγνωριστικό ή το όνομα του πειράματος
  • Φιλτράρισμα συμβολοσειράς ή κειμένου
  • Ο μέγιστος αριθμός εκτελέσεων προς επιστροφή καθορίζεται από το όρισμα max_results

Μια απλοποιημένη παραλλαγή της ρήτρας SQL (Structured Query Language) WHERE είναι η συμβολοσειρά ή το κείμενο φίλτρου. Μπορεί να χρησιμοποιηθεί για να υποδείξει τα κριτήρια βάσει των οποίων θέλουμε να ταξινομήσουμε τις εκτελέσεις.



Σύνταξη της συνάρτησης MLflow Search_Runs().

Το πραγματικό αναγνωριστικό ή το όνομα του πειράματος στο οποίο θέλουμε να αναζητήσουμε πρέπει να αντικατασταθεί με το 'experiment_id or experience_name' στο ακόλουθο παράδειγμα. Η μεταβλητή search_criteria επιτρέπει την εισαγωγή των κριτηρίων αναζήτησης όπως επιθυμείτε. Αυτά τα κριτήρια μπορεί να καθορίζονται από μετρήσεις, ετικέτες, παραμέτρους ή πρόσθετα χαρακτηριστικά. Η βασική σύνταξη της συνάρτησης search_runs() είναι η εξής:



# Εισαγάγετε το API αναζήτησης mlflow για να χρησιμοποιήσετε τη λειτουργία search_runs

εισαγωγή mlflow

# Δώστε κάποιο αναγνωριστικό ή όνομα πειράματος (είναι προαιρετικό, )

exp_id = 'Αναγνωριστικό πειράματος ή NAME'

# Καθορίστε τα κριτήρια αναζήτησης για εκτελέσεις

search_string = 'metrics.accuracy > 0,8 AND params.learning_rate = '0,01' AND params.efficiency_rate > '80''

# Εκτελέστε την αναζήτηση

τρέχει = mlflow. search_runs ( πειράματα_αναγνωριστικά = exp_id , συμβολοσειρά_φίλτρου = search_string )

# Εμφάνιση των αποτελεσμάτων

Τυπώνω ( 'Αποτελέσματα αναζήτησης:' )

Τυπώνω ( τρέχει )

Εκτελέστε μια αναζήτηση χρησιμοποιώντας πολλά κριτήρια

1. Αναζήτηση κατά μετρική τιμή

Οι εκτελέσεις μπορούν να φιλτραριστούν με βάση τις τιμές συγκεκριμένων μετρήσεων χρησιμοποιώντας το πεδίο μετρήσεων στο API αναζήτησης MLflow. Μια συλλογή ονομάτων μετρήσεων που χωρίζονται με κόμμα εμφανίζεται στο πεδίο μετρήσεων. Για παράδειγμα, η ακόλουθη συμβολοσειρά φίλτρου εντοπίζει όλες τις εκτελέσεις με τιμή ακρίβειας μεγαλύτερη από 0,9:





μετρήσεις. ακρίβεια > 0,9

Η πλήρης λίστα των μετρήσεων που είναι διαθέσιμες για χρήση στο πεδίο μετρήσεων δίνεται ως εξής:

  • ακρίβεια
  • auc
  • στ1
  • ακρίβεια
  • ανάκληση
  • χάρτης
  • logloss
  • classification_error
  • multi_class_logloss

Επιπλέον, οι χρήστες μπορούν να φιλτράρουν τις εκτελέσεις με βάση το εύρος τιμών μιας μέτρησης χρησιμοποιώντας το πεδίο μετρήσεων. Για παράδειγμα, η επόμενη συμβολοσειρά φίλτρου εντοπίζει όλες τις εκτελέσεις που έχουν μέτρο ακρίβειας με τιμή μεταξύ 0,4 και 0,8:



μετρήσεις. ακρίβεια ΜΕΤΑΞΥ 0.4 ΚΑΙ 0,8

Στο πεδίο μετρήσεων, οι τελεστές AND και OR συνδυάζουν τις μετρήσεις για να βρουν τις εκτελέσεις με ακρίβεια μετρήσεων και τιμές f1 πάνω από 0,3 και 0,8:

μετρήσεις. ακρίβεια > 0.3 ΚΑΙ μετρήσεις. στ1 > 0,8

2. Αναζήτηση κατά τιμή παραμέτρου

Χρησιμοποιήστε το πεδίο παραμέτρων στο API αναζήτησης MLflow για να πραγματοποιήσετε αναζήτηση με βάση μια τιμή παραμέτρου. Τα ονόματα και οι τιμές των παραμέτρων παρατίθενται στο πεδίο παραμέτρων χρησιμοποιώντας κόμματα. Σε αυτό το παράδειγμα, η προαναφερθείσα συμβολοσειρά φίλτρου εντοπίζει όλες τις εκτελέσεις με την παράμετρο num_boost_round που έχουν την τιμή 100:

παραμέτρους. num_boost_round = '100'

Μερικά ακόμη παραδείγματα συμβολοσειρών αναζήτησης για τιμές παραμέτρων:

  • params.num_boost_round = 900
  • params.learning_rate ΜΕΤΑΞΥ 0,001 ΚΑΙ 0,01
  • params.num_boost_round='70' ΚΑΙ params.learning_rate='0.01'

3. Αναζήτηση ανά ετικέτες

Ακολουθεί ένα παράδειγμα αναζήτησης που χρησιμοποιεί ετικέτες:

κριτήρια αναζήτησης = 'tags.mlflow.source.type = 'λεξικό''

Παράδειγμα των τιμών μήτρας και παραμέτρων για την εκτέλεση της συνάρτησης Mlflow.search_runs()

Ας δουλέψουμε με ένα παράδειγμα ρύθμισης ενός πειράματος MLflow, καταγραφής εκτελέσεων και, στη συνέχεια, χρήσης του mlflow.search_runs() για την έναρξη μιας αναζήτησης. Για να κατανοήσετε πλήρως τον κώδικα, ακολουθήστε τα εξής βήματα:

Βήμα 1: Δημιουργήστε ένα πείραμα ροής ML

Ξεκινάμε ρυθμίζοντας ένα πείραμα MLflow. Παίρνει το υπάρχον πείραμα εάν το πείραμα υπάρχει ήδη. Αν όχι, δημιουργεί ένα νέο.

Επεξήγηση κώδικα:

Η βιβλιοθήκη MLflow εισάγεται στην πρώτη γραμμή του κώδικα και το experiment_name ορίζεται σε 'My First MLflow Experiment' στην επόμενη γραμμή. Όταν το πειραματικό_όνομα μεταβιβαστεί στη συνάρτηση 'mlflow.get_experiment_by_name', αυτή η συνάρτηση επιστρέφει 'Κανένα' εάν το πείραμα δεν υπάρχει και ένα αντικείμενο του πειράματος διαφορετικά.

Ελέγξτε για την ύπαρξη του πειράματος στη δήλωση υπό όρους. Εάν το πείραμα υπάρχει ήδη, ορίστε το experiment_id. Διαφορετικά, χρησιμοποιήστε το 'mlflow.create_experiment' για να δημιουργήσετε ένα νέο πείραμα. Το αναγνωριστικό πειράματος επιστρέφεται από αυτήν τη συνάρτηση. Εμφανίστε το αναγνωριστικό πειράματος στην οθόνη της κονσόλας ή του τερματικού στο τέλος του πειράματος. Αντιγράψτε τον παρακάτω κώδικα στο σημειωματάριο και αποθηκεύστε το αρχείο με το όνομα που θέλετε και με την επέκταση “.py”:

# εισαγωγή βιβλιοθήκης mlflow

εισαγωγή mlflow

# Δημιουργήστε ή λάβετε το πείραμα

exp_name = 'Το πρώτο μου πείραμα MLflow'

# Λήψη του πειράματος με το όνομα χρησιμοποιώντας τη συνάρτηση mlflow get_experiment_by_name

exp = mlflow. get_experiment_by_name ( exp_name )

# Ελέγξτε εάν το πείραμα δεν υπάρχει ήδη

αν exp είναι Κανένας :

# Δημιουργήστε νέο πείραμα και περάστε το όνομα του πειράματος στη συνάρτηση mlflow.create_experiment

exp_id = mlflow. δημιουργία_πείραμα ( exp_name )

# Εμφανίστε το μήνυμα επιτυχίας στην οθόνη

Τυπώνω ( 'Το πείραμα δεν υπάρχει. Το πείραμα δημιουργήθηκε με επιτυχία!' )

αλλού :

# Λήψη του πειράματος_αναγνωριστικό του υπάρχοντος πειράματος

exp_id = exp. πειραματικό_αναγνωριστικό

Τυπώνω ( 'Το πείραμα υπάρχει ήδη!' )

# Εμφάνιση αναγνωριστικού πειράματος

Τυπώνω ( 'Αναγνωριστικό πειράματος:' , exp_id )

Τώρα, εκκινήστε το πρόγραμμα στη γραμμή εντολών ή στο παράθυρο τερματικού χρησιμοποιώντας τον μεταγλωττιστή Python και πληκτρολογήστε 'Python' και στη συνέχεια το όνομα αρχείου που, σε αυτήν την περίπτωση, είναι 'MyFirstMlflowExperiment.py'. Όταν το πείραμα εκτελείται για πρώτη φορά, δεν υπάρχει ακόμη. Έτσι, το MLFlow δημιουργεί ένα και εκτυπώνει το αναγνωριστικό πειράματος στην οθόνη της κονσόλας:

Εκτελέστε ξανά τον κώδικα για να επαληθεύσετε ότι δεν δημιουργεί νέα πειράματα και να εμφανίσετε το αναγνωριστικό αυτών που ήδη υπάρχουν. Το ακόλουθο στιγμιότυπο οθόνης δείχνει ότι το πείραμα υπάρχει ήδη:

Βήμα 2: Καταγράψτε τις εκτελέσεις με μετρήσεις και παραμέτρους

Ας προσπαθήσουμε τώρα να καταγράψουμε ορισμένες εκτελέσεις με τις μετρήσεις και τις παραμέτρους για το πείραμα που μόλις δημιουργήθηκε. Σε ένα πραγματικό σενάριο, αναπτύσσουμε τα μοντέλα μηχανικής εκμάθησης και καταγράφουμε τις σχετικές πληροφορίες, όπως μετρήσεις και παραμέτρους, στο τέλος κάθε εκτέλεσης. Εδώ, η ακρίβεια χρησιμοποιείται ως μητρική τιμή και είναι 0,95 σε αυτήν την περίπτωση. Οι τιμές των παραμέτρων για το ποσοστό εκμάθησης και απόδοσης είναι 0,01 και 90, αντίστοιχα. Εδώ είναι ο κωδικός:

# Ξεκινήστε μια εκτέλεση MLflow για την καταγραφή μετρήσεων και παραμέτρων

με mlflow. start_run ( πειραματικό_αναγνωριστικό = exp_id ) :

# Ο κώδικας μηχανικής εκμάθησής σας εδώ (αυτό είναι απλώς ένα προσομοιωμένο παράδειγμα)

μοντέλο_ακρίβεια = 0,95

ρυθμός_μάθησης_μηχανής = 0,01

efficiency_rate = 90

# Μετρήσεις και παράμετροι καταγραφής

mlflow. log_metric ( 'ακρίβεια' , μοντέλο_ακρίβεια )

mlflow. log_param ( 'learning_rate' , ρυθμός_μάθησης_μηχανής )

mlflow. log_param ( 'rate_efficiency' , efficiency_rate )

Το αποτέλεσμα, όταν εκτελεστεί ο προαναφερόμενος κώδικας, φαίνεται εδώ. Το αποτέλεσμα είναι το ίδιο με πριν:

Βήμα 3: Εκτελέστε μια αναζήτηση χρησιμοποιώντας το Mlflow.search_runs()

Τέλος, εκτελούμε μια αναζήτηση στις εκτελέσεις που έχουν καταγραφεί χρησιμοποιώντας μερικές παραμέτρους και εμφανίζουμε τα αποτελέσματα στην οθόνη του τερματικού:

# Καθορίστε τα κριτήρια αναζήτησης για εκτελέσεις

define_search_criteria = 'metrics.accuracy > 0,8 AND params.learning_rate = '0,01' AND params.efficiency_rate = '90''

# Εκτελέστε την αναζήτηση

τρέχει = mlflow. search_runs ( πειράματα_αναγνωριστικά = exp_id , συμβολοσειρά_φίλτρου = define_search_criteria )

# Εμφάνιση των αποτελεσμάτων

Τυπώνω ( 'Αποτελέσματα αναζήτησης:' )

Τυπώνω ( τρέχει )

Μια προειδοποίηση που σχετίζεται με το εργαλείο Git παράγεται από την εκτέλεση της συνάρτησης search_runs:


Προσθέστε κάποιο κώδικα στην κορυφή του αρχείου Python για να απενεργοποιήσετε αυτήν την προειδοποίηση. Εδώ είναι η σύντομη ενότητα του κώδικα:

εισαγωγή mlflow

εισαγωγή εσείς

εσείς . κατά προσέγγιση [ 'GIT_PYTHON_REFRESH' ] = 'ησυχια'

Η συνάρτηση 'mlflow.search_runs' εκτελείται με επιτυχία μόλις προστεθούν αυτές οι γραμμές κώδικα:

συμπέρασμα

Η συνάρτηση 'mlflow.search_runs' δίνει τη δυνατότητα στους χρήστες να εξερευνήσουν και να αξιολογήσουν γρήγορα τα πειράματα μηχανικής μάθησης, να αναλύσουν πολλές εκτελέσεις και να εντοπίσουν τις βέλτιστες παραλλαγές ή μοντέλα υπερπαραμέτρων που έχουν ως αποτέλεσμα τα επιθυμητά αποτελέσματα. Είναι ένα αποτελεσματικό εργαλείο για την επίβλεψη, τον προγραμματισμό και την ανάλυση της ροής εργασιών μηχανικής εκμάθησης.