בדף הזה מוסבר על מצב אשכול האימון במהלך מחזור החיים של משימת אימון, ואיך Agent Platform מטפל בשגיאות אימון. אפשר להשתמש במידע הזה כדי להתאים את קוד האימון בהתאם.
מחזור החיים של משימת אימון
בקטע הזה מוסבר איך Agent Platform מטפל במכונות וירטואליות של עובדים במהלך מחזור החיים של משימת אימון.
הוספת משימה חדשה לתור
כשיוצרים CustomJob או HyperparameterTuningJob, יכול להיות שהעבודה תישאר במצב JOB_STATE_QUEUED למשך זמן מסוים לפני שהיא תופעל על ידי Agent Platform. התקופה הזו בדרך כלל קצרה, אבל אםGoogle Cloud בפרויקט לא נותרו מספיק מכסות של אימון בהתאמה אישית בשביל העבודה,Google Cloud Agent Platform משאירה את העבודה בתור עד שיהיו מספיק מכסות.
הפעלת עובדים במקביל
כשמתחילה משימת אימון, Agent Platform מתזמנת כמה שיותר עובדים בזמן קצר. כתוצאה מכך, יכול להיות שהתהליכים יתחילו במקביל ולא ברצף. כדי לצמצם את זמן האחזור של ההפעלה, Agent Platform מתחיל להריץ את הקוד בכל עובד ברגע שהוא הופך לזמין. כשכל העובדים זמינים, Agent Platform מגדירה את מצב העבודה ל-JOB_STATE_RUNNING.
ברוב המקרים, מסגרת הלמידה החישובית מטפלת באופן אוטומטי בהפעלת העובדים במקביל. אם אתם משתמשים באסטרטגיית הפצה בקוד האימון, יכול להיות שתצטרכו להתאים אותה באופן ידני כדי לטפל בתהליכי עבודה שמתחילים במקביל. מידע נוסף על אסטרטגיות הפצה זמין ב-TensorFlow וב-PyTorch.
הפעלה מחדש של העובדים במהלך משימת האימון
במהלך משימת אימון, Agent Platform יכול להפעיל מחדש את ה-workers מכל מאגר workers עם אותו שם מארח. למה זה קורה?
- תחזוקת מכונות וירטואליות: כשמכונה וירטואלית שמריצה תהליך עבודה עוברת תחזוקה, Agent Platform מפעיל מחדש את תהליך העבודה במכונה וירטואלית אחרת. מידע נוסף על מיגרציה פעילה לצורך תחזוקה של מכונות וירטואליות
יציאות שאינן אפס: אם תהליך worker יוצא עם קוד יציאה שאינו אפס, Agent Platform מפעיל מחדש את התהליך הזה באופן מיידי באותה מכונה וירטואלית.
- אם תהליך worker נכשל בגלל שגיאה נפוצה, הוא נחשב שגיאה קבועה, ו-Agent Platform משביתה את כל העבודה. אם קונטיינרים כלשהם מופעלים מחדש לפני ש-Agent Platform משבית את כל העבודה, יכול להיות שהקונטיינרים האלה ייצרו יומנים ב-Cloud Logging.
- אם תהליך worker נכשל בגלל שגיאה לא קבועה (כל שגיאה שלא מופיעה בשגיאות הנפוצות), Agent Platform מאפשר לתהליך worker שהופעל מחדש להמשיך לפעול, עם עד חמש הפעלות מחדש לכל תהליך worker. אחרי חמש הפעלות מחדש, אם העובד נכשל שוב, Agent Platform מנסה שוב את כל העבודה עד שלוש פעמים לפני שהעבודה כולה נכשלת.
כדי לטפל בהפעלות מחדש של עובדים בקוד ההדרכה, כדאי לשמור נקודות ביקורת באופן קבוע במהלך ההדרכה, כדי שתוכלו לשחזר מנקודות הביקורת כשהעובד מופעל מחדש. אם אתם צופים שהאימון יימשך יותר מארבע שעות, מומלץ לשמור נקודת ביקורת לפחות פעם בארבע שעות. TensorFlow וב-PyTorch.
השלמת עבודה בהצלחה
פעולת אימון מסתיימת בהצלחה כשהרפליקה הראשית יוצאת עם קוד יציאה 0. בשלב הזה, Agent Platform משבית את כל העובדים האחרים שפועלים.
איך Agent Platform מטפל בשגיאות במשימות אימון
בקטע הזה מוסבר איך Agent Platform מטפל בשגיאות נפוצות של משימות אימון ובשגיאות פנימיות.
דקה אחת אחרי סיום העבודה, Agent Platform מגדירה את קוד השגיאה באובייקט של עבודת האימון, על סמך קוד היציאה.
טיפול בשגיאות נפוצות
Agent Platform משביתה את כל ה-workers אם היא נתקלת באחת מהבעיות הבאות:
| סוג השגיאה | הודעת שגיאה או יומן | הערה |
| חריגה מקוד המשתמש | הרפליקה REPLICA_NAME הסתיימה עם סטטוס שאינו אפס של EXIT_CODE. סיבת הביטול: REASON. | אם העבודה נתקלה בקודי יציאה שיכולים להיות זמניים,
Agent Platform מנסה להפעיל מחדש את העבודה עד שלוש פעמים.
קודי השגיאה הזמניים האפשריים שגורמים ל-Agent Platform לנסות שוב את העבודה כוללים את הקודים הבאים:
|
| אין זיכרון פנוי | העתק הנתונים REPLICA_NAME אזל הזיכרון והוא הסתיים עם סטטוס שאינו אפס של EXIT_CODE. |
GKE שומר זיכרון בצמתים של Agent Platform. בסוגי המכונות הקטנים ביותר (כמו n1-standard-4), סוכני מערכת של Agent Platform יכולים לתפוס עד 40% מהזיכרון הכולל.
במכונות וירטואליות גדולות יותר, התקורה קטנה יחסית. השוואה בין
סוגי מכונות n1-standard לפי זיכרון שניתן להקצאה.
|
| קיבולת לא מספקת באזור שלך (מלאי חסר ב-Compute Engine) | אין מספיק משאבים באזור: REGION_NAME. אפשר לנסות אזור אחר או להשתמש במאיץ אחר. | מלאי חסר מתרחש כשאין מספיק קיבולת ב-Compute Engine למעבד או ל-GPU שבחרתם באזור שלכם. היא לא קשורה למכסת הפרויקט.
במקרה כזה, Agent Platform מנסה להפעיל מחדש את העבודה עד שלוש פעמים.
לגבי משימות שפועלות במכונות וירטואליות מסוג A2 ו-A3, הכלי Dynamic Workload Scheduler מאפשר לתזמן משימות שיפעלו כשהמשאבים המבוקשים של ה-GPU יהיו זמינים, במקום שהמשימות ייכשלו בגלל שגיאת חוסר במלאי. מידע נוסף זמין במאמר תזמון של משימות אימון על סמך זמינות המשאבים. |
טיפול בשגיאות פנימיות
אם יש שגיאה פנימית ב-Agent Platform, המערכת מנסה להפעיל מחדש את העבודה פעמיים (שלושה ניסיונות בסך הכול). אם גם ניסיונות ההפעלה מחדש נכשלים, Agent Platform מחזירה שגיאה פנימית עם ההודעה:
Internal error occurred for the current attempt.