החיפוש פועל ב-MLflow

Hhypws Pw L B Mlflow



כדי לעקוב ולנהל את ניסויי למידת המכונה, MLflow מציעה פלטפורמה נרחבת. היכולת לחפש ריצות היא אחת מתכונות המפתח של MLflow. זה מאפשר לזהות את הניסויים שפותחו ולארגן אותם בצורה שתקל על איתור המידע בכל עת שצריך. אנו עשויים לחפש ריצות באמצעות ממשק API לחיפוש MLflow תוך שימוש במספר קריטריונים שונים שעשויים לכלול את הדברים הבאים:
  • מזהה או שם ניסוי
  • מזהה הפעלה
  • פרמטרים וערכים
  • מדדים וערכים
  • תגים
  • תכונות אחרות המשויכות לריצות

ניתן לסנן ריצות לפי סטטוס, שעת התחלה, זמן סיום ומשך באמצעות שימוש בממשק API לחיפוש MLflow. זה מקל על סינון ריצות רבות ולמצוא ריצות ספציפיות שהמשתמשים מעוניינים בהן.

פונקציית חיפוש של MLflow

השתמש בפונקציה mlflow.search_runs() כדי לגשת ל-API של החיפוש של MLflow. פונקציה זו מקבלת מגוון ארגומנטים כמו הבאים:







  • מזהה הניסוי או השם
  • סינון מחרוזת או טקסט
  • המספר המרבי של ריצות להחזר מצוין על ידי הארגומנט max_results

גרסה פשוטה של ​​משפט ה-SQL (שפת שאילתות מובנית) WHERE היא מחרוזת המסנן או הטקסט. ניתן להשתמש בו כדי לציין את הקריטריונים לפיהם אנו רוצים למיין את הריצות.



תחביר של הפונקציה MLflow Search_Runs()

יש להחליף את המזהה או השם בפועל של הניסוי שברצוננו לחפש בתוכו ב-'experiment_id או experiment_name' בדוגמה הבאה. המשתנה search_criteria מאפשר להזין את קריטריוני החיפוש כרצונך. קריטריונים אלה עשויים להיקבע על ידי מדדים, תגים, פרמטרים או מאפיינים נוספים. התחביר הבסיסי של הפונקציה search_runs() הוא כדלקמן:



# ייבא את API לחיפוש mlflow כדי להשתמש בפונקציית search_runs

יְבוּא mlflow

# ספק מזהה ניסוי או שם כלשהו (זה אופציונלי; )

exp_id = 'מזהה ניסוי או שם'

# הגדר את קריטריוני החיפוש עבור ריצות

מחרוזת_חיפוש = 'metrics.accuracy > 0.8 AND params.learning_rate = '0.01' AND params.efficiency_rate > '80''

# בצע את החיפוש

פועל = mlflow. search_runs ( experiment_ID = exp_id , filter_string = מחרוזת_חיפוש )

# הצג את התוצאות

הדפס ( 'תוצאות חיפוש:' )

הדפס ( פועל )

הפעל חיפוש באמצעות קריטריונים רבים

1. חפש לפי ערך מטרי

ניתן לסנן ריצות לפי ערכים של מדדים מסוימים באמצעות שדה המדדים בממשק API לחיפוש MLflow. אוסף של שמות מדדים מופרדים בפסיקים מופיע בשדה המדדים. לדוגמה, מחרוזת הסינון הבאה מאתרת את כל הריצות בערך של דיוק גדול מ-0.9:





מדדים. דיוק > 0.9

הרשימה המלאה של המדדים הזמינים לשימוש בשדה המדדים ניתנת באופן הבא:

  • דיוק
  • auc
  • f1
  • דיוק
  • לִזכּוֹר
  • מַפָּה
  • לוגloss
  • שגיאת_סיווג
  • multi_class_logloss

בנוסף, המשתמשים יכולים לסנן את הריצות לפי טווח הערכים של מדד באמצעות שדה המדדים. לדוגמה, מחרוזת הסינון הבאה מאתרת את כל הריצות שיש להן מדידת דיוק עם ערך בין 0.4 ל-0.8:



מדדים. דיוק בֵּין 0.4 ו 0.8

בשדה המדדים, האופרטורים AND ו-OR משלבים את המדדים כדי למצוא את הריצות עם דיוק מדדים וערכי f1 מעל 0.3 ו-0.8:

מדדים. דיוק > 0.3 AND מדדים. f1 > 0.8

2. חפש לפי ערך פרמטר

השתמש בשדה פרמטרים בממשק API לחיפוש MLflow כדי לבצע חיפוש לפי ערך פרמטר. השמות והערכים של הפרמטרים מפורטים בשדה הפרמטרים באמצעות פסיקים. בדוגמה זו, מחרוזת הסינון הנ'ל מאתרת את כל הריצות עם הפרמטר num_boost_round בעלות הערך 100:

params. 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: צור ניסוי MLflow

אנו מתחילים בהגדרת ניסוי MLflow. הוא מביא את הניסוי הקיים אם הניסוי כבר קיים. אם לא, זה יוצר אחד חדש.

הסבר קוד:

ספריית MLflow מיובאת בשורה הראשונה של הקוד, וה-experiment_name מוגדר ל-'My First MLflow Experiment' בשורה הבאה. כאשר experiment_name מועבר לפונקציה 'mlflow.get_experiment_by_name', פונקציה זו מחזירה 'None' אם הניסוי לא קיים ואובייקט של הניסוי אחרת.

בדקו את קיומו של הניסוי בהצהרת התנאי. אם הניסוי כבר קיים, הגדר את 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. create_experiment ( exp_name )

# הצג את הודעת ההצלחה על המסך

הדפס ( 'הניסוי לא קיים. הניסוי נוצר בהצלחה!' )

אַחֵר :

# אחזר את ה-experiment_id של הניסוי הקיים

exp_id = exp. experiment_id

הדפס ( 'הניסוי כבר קיים!' )

# הצג מזהה ניסוי

הדפס ( 'מזהה ניסוי:' , exp_id )

כעת, הפעל את התוכנית בשורת הפקודה או בחלון המסוף באמצעות מהדר Python והקלד 'Python' ולאחר מכן את שם הקובץ, שבמקרה זה הוא 'MyFirstMlflowExperiment.py'. כאשר הניסוי מופעל לראשונה, הוא עדיין לא קיים. לפיכך, MLFlow יוצר אחד ומדפיס את מזהה הניסוי על מסך המסוף:

הפעל מחדש את הקוד כדי לוודא שהוא לא יוצר ניסויים חדשים וכדי להציג את המזהה של אלה שכבר קיימים. צילום המסך הבא מראה שהניסוי כבר קיים:

שלב 2: רישום הריצות עם מדדים ופרמטרים

כעת ננסה לרשום כמה ריצות עם המדדים והפרמטרים של הניסוי שהוקם זה עתה. בתרחיש של עולם אמיתי, אנו מפתחים את מודלים של למידת מכונה ומתעדים את המידע הרלוונטי, כגון מדדים ופרמטרים, בסוף כל ריצה. כאן, הדיוק משמש כערך מטרי, והוא 0.95 במקרה זה. ערכי הפרמטרים ללמידה ושיעור היעילות הם 0.01 ו-90, בהתאמה. הנה הקוד:

# התחל ריצת MLflow לרישום מדדים ופרמטרים

עם mlflow. תתחיל לרוץ ( experiment_id = exp_id ) :

# קוד למידת המכונה שלך כאן (זו רק דוגמה מדומה)

דיוק_דגם = 0.95

קצב_למידה_מכונה = 0.01

יעילות_שיעור = 90

# יומן מדדים ופרמטרים

mlflow. log_metric ( 'דיוק' , דיוק_דגם )

mlflow. log_param ( 'שיעור_למידה' , קצב_למידה_מכונה )

mlflow. log_param ( 'שיעור_יעילות' , יעילות_שיעור )

התוצאה, כאשר הקוד הנ'ל מבוצע, נראה כאן. התוצאה זהה לבעבר:

שלב 3: בצע חיפוש באמצעות Mlflow.search_runs()

לבסוף, אנו מבצעים חיפוש על הריצות שנרשמו באמצעות מספר פרמטרים ומציגים את התוצאות במסך הטרמינל:

# הגדר את קריטריוני החיפוש עבור ריצות

הגדרת_קריטריוני_חיפוש = 'metrics.accuracy > 0.8 AND params.learning_rate = '0.01' AND params.efficiency_rate = '90''

# בצע את החיפוש

פועל = mlflow. search_runs ( experiment_ID = exp_id , filter_string = הגדרת_קריטריוני_חיפוש )

# הצג את התוצאות

הדפס ( 'תוצאות חיפוש:' )

הדפס ( פועל )

אזהרה הנוגעת לכלי Git מופקת על ידי ביצוע הפונקציה search_runs:


הוסף קוד בחלק העליון של קובץ Python כדי להשבית את האזהרה הזו. להלן הקטע הקצר של הקוד:

יְבוּא mlflow

יְבוּא אתה

אתה . בְּעֵרֶך [ 'GIT_PYTHON_REFRESH' ] = 'שֶׁקֶט'

הפונקציה 'mlflow.search_runs' מבוצעת בהצלחה לאחר הוספת שורות הקוד הבאות:

סיכום

הפונקציה 'mlflow.search_runs' מאפשרת למשתמשים לחקור ולהעריך במהירות את הניסויים של למידת מכונה, לנתח ריצות רבות, ולאתר את וריאציות ההיפרפרמטרים או המודלים האופטימליים שמביאים לתוצאות הרצויות. זהו כלי יעיל לפיקוח, תכנון וניתוח של זרימת העבודה של למידת מכונה.