פלטפורמת אבחון של למידת מכונה

‫Google Cloud ML Diagnostics היא פלטפורמה מנוהלת מקצה לקצה לאופטימיזציה, למעקב ולאבחון של עומסי עבודה של AI ו-ML ב- Google Cloud. אתם יכולים להשתמש ב-ML Diagnostics כדי לעקוב אחרי עומסי עבודה, וגם לאסוף ולהציג את כל המדדים, ההגדרות והפרופילים של עומסי העבודה בפלטפורמה אחת. אפשר להשתמש בכלי לאבחון ML באימון, בלמידת חיזוק (RL) אחרי אימון ובעומסי עבודה של היקש, והוא תואם לכל כלי התזמור ב-Cloud TPU. התמיכה ב-GKE זמינה לכלל המשתמשים (GA). התמיכה ב-Slurm מנוהל באמצעות Cluster Director, כלי תזמור בהתאמה אישית כמו Kubernetes ו-Slurm, ו-Compute Engine נמצאת בגרסת טרום-השקה (Preview).

התכונות הבאות של "אבחון באמצעות למידת מכונה" זמינות לכלל המשתמשים:

  • מעקב אחרי עומסי עבודה: מעקב ואבחון אוטומטיים של עומסי עבודה של AI/ML שפועלים ביחידות TPU של GKE. בכל משימה ב-GKE, הכלי 'אבחון עומסי עבודה' של ML יוצר באופן אוטומטי הרצה של למידת מכונה, עוקב אחרי מחזור העבודה של ה-TPU בעומס העבודה, מזהה אירועים שמשפיעים על עומס העבודה ומנתח שכבות שונות של עומס העבודה – כמו תשתית, כלי תזמור ומסגרת – כדי לעזור לקבוע מהן הסיבות האפשריות לאירוע.
  • הרצות של למידת מכונה: אתם יכולים להשתמש ב-ML Diagnostics כדי ליצור ולרשום את ההרצות של למידת המכונה באמצעות Google Cloud CLI, או לשלב את ML Diagnostics SDK בעומס העבודה שלכם. אתם יכולים ליצור ולרשום הרצות באופן אוטומטי באמצעות מעקב אחרי עומסי עבודה, לפרוס מכונות מנוהלות של XProf עם הרצות של למידת מכונה, ולאסוף ולנהל מדדים, הגדרות וסשנים של פרופילים של עומסי עבודה.
  • חוויית השימוש ב-CLI של gcloud: אתם יכולים להשתמש בממשקי ה-API של ML Diagnostics דרך ה-CLI של gcloud כדי לרשום ולנהל הרצות, לפרוס משאבי XProf מנוהלים, להציג באופן חזותי סשנים של פרופילים בקטגוריות אחסון ולהפעיל תיעוד פרופילים מה-CLI. אתם יכולים גם להציג רשימה של כל האירועים שזוהו על ידי מעקב אחר עומסי עבודה, ולקבל פרטים על הניתוח של האירועים האלה באמצעות ה-CLI או ה-API.
  • ‫Python SDK: משתמשים ב-ML Diagnostics SDK בקוד פתוח שמשולב בעומסי עבודה של למידת מכונה, כדי לקבל חוויית אבחון מלאה של עומסי העבודה של למידת המכונה. מעקב אחרי עומסי עבודה ואיסוף וניהול של מדדים, הגדרות ופרופילים של עומסי עבודה ב- Google Cloud.
  • יצירת פרופילים מנוהלת: כלי האבחון של למידת המכונה פורס מופע מנוהל של XProf עם קצה עורפי שניתן להתאמה לחשבונות משויכים, וכך מאפשר טעינה מהירה של פרופילים גדולים. הוא תומך בגישה של כמה משתמשים לפרופילים בו-זמנית, ומכיל תכונות מובנות כמו יצירת פרופילים בכמה מארחים ויצירת פרופילים על פי דרישה.
  • מדדי עומס עבודה: מעקב אחרי מדדי עומס עבודה, כולל איכות המודל, ביצועי המודל ומדדי המערכת. בעזרת מעקב אחרי עומסי עבודה, אתם יכולים לקבל מדדי מערכת שמשויכים לעומס העבודה בלי לשלב את ה-SDK.
  • ניהול הגדרות של עומסי עבודה: מעקב אחרי הגדרות של עומסי עבודה, כולל הגדרות תוכנה, הגדרות מערכת והגדרות שמוגדרות על ידי המשתמש.
  • הצגה חזותית ב-Cluster Director וב-GKE: הצגה חזותית של מדדים, הגדרות ופרופילים ב-Cluster Director וב-Google Kubernetes Engine במסוף Google Cloud .
  • שיתוף באמצעות קישור: שיתוף פעולה באמצעות קישורים שניתן לשתף עם מידע על הפעלות של למידת מכונה, מעקב אחרי עומסי עבודה, מדדים ופרופילים.

הכלי "אבחון באמצעות למידת מכונה" כולל גם את התכונות הבאות בגרסת טרום-השקה (Preview):

  • מעקב אחרי עומסי עבודה: תיעוד אוטומטי של פרופילי XProf לאבחון נוסף, כשמנתחי הירידה בביצועים מראים מצב לא תקין.
  • ‫Python SDK: תמיכה בעומסי עבודה של vLLM,‏ Tunix ו-TorchTPU.
  • ניהול פרופילים: יצירת פרופילים רציפה במצב תמונת מצב וניתוח פרופילים מבוסס-סוכנים.

סוגי frameworks ותזמור של עומסי עבודה

הכלי "אבחון למידת מכונה" תומך ב-JAX וזמין לכלל המשתמשים ב-GKE. מסגרות של עומסי עבודה כמו TorchTPU, ‏vLLM ב-JAX, ‏vLLM ב-TorchTPU ו-Tunix זמינות בגרסת טרום-השקה (Preview) במתאמים הבאים:

  • GKE
  • ‫Kubernetes בניהול עצמי
  • ‫Slurm שמנוהל על ידי Cluster Director
  • ‫Slurm בניהול עצמי
  • Compute Engine

בטבלה הבאה מפורטים התכונות הנתמכות והרכיבים הנדרשים לעומסי עבודה של JAX בסוגים שונים של כלי ניהול:

סוג כלי התזמור תכונות נתמכות ורכיבים נדרשים
GKE
  • מעקב אחרי עומסי עבודה ב-GKE Job ו-JobSet
  • מדדי SDK ופרופיילינג פרוגרמטי (GKE webhook)
  • יצירת פרופילים על פי דרישה (מפעיל GKE)
  • יצירת פרופילים על פי דרישה, יצירת פרופילים רציפה ואיסוף פרופילים אוטומטי ממעקב אחרי עומסי עבודה (Diagon DaemonSet)
Kubernetes בניהול עצמי
  • מדדי SDK ופרופיילינג פרוגרמטי (Webhook של Kubernetes)
  • יצירת פרופילים על פי דרישה (אופרטור של Kubernetes)
  • יצירת פרופילים לפי דרישה ובאופן רציף (Diagon DaemonSet)
‫Slurm בניהול Cluster Director, ‏Slurm בניהול עצמי ו-Compute Engine
  • מדדי SDK ופרופיילינג פרוגרמטי
  • יצירת פרופילים לפי דרישה ובאופן רציף (Diagon DaemonSet)

נתיבי משתמשים

אתם יכולים להשתמש בפלטפורמת ML Diagnostics באופן אוטומטי עם מעקב אחרי עומסי עבודה בכל המשימות ב-GKE, או לשלב את ה-SDK עם עומס העבודה כדי ליהנות מחוויית אבחון מלאה של עומסי עבודה של למידת מכונה. אפשר להשתמש בפלטפורמת האבחון של למידת המכונה דרך מסוף Google Cloud או ה-CLI. המעקב אחרי עומסי עבודה זמין באופן אוטומטי לכל עומסי העבודה שנפרסו באמצעות GKE ב-TPU.

באמצעות ה-CLI, אתם יכולים להשתמש ב-ML Diagnostics gcloud CLI כדי ליצור או לשנות הרצה של למידת מכונה, ולפרוס את המשאבים המנוהלים של XProf. כדי להשתמש ב-ML Diagnostics SDK, צריך לשלב אותו בעומס העבודה של ה-ML כדי לאסוף ולנהל את המדדים וההגדרות של עומס העבודה, ולפרוס משאבי XProf מנוהלים.

כדי להתחיל, אתם יכולים להיעזר באחד מהמדריכים הבאים:

דרישות מוקדמות

לפני שמשתמשים ב-ML Diagnostics, צריך להפעיל את Cluster Director API ולהוסיף את הרשאות ה-IAM הנדרשות. אם אתם משתמשים ב-GKE, המעקב אחרי עומסי העבודה כבר מופעל. עם זאת, כדי להשתמש ב-ML Diagnostics SDK ובפרופיילינג על פי דרישה, צריך פריטי מידע נוספים של GKE ולהגדיר את אשכול GKE. מידע נוסף זמין במאמר הגדרת GKE.

הפעלת Cluster Director API

כדי להשתמש במוצר ML Diagnostics, אתם לא צריכים להשתמש ב-Cluster Director לפריסה ולניהול של האשכולות. הכלי "אבחון למידת מכונה" פועל עם אשכולות שמנוהלים על ידי GKE,‏ Cluster Director או כלי תזמור בהתאמה אישית. ‫ML Diagnostics הוא חלק ממשפחת ה-APIs של Cluster Director, אבל לא מחייב את המשתמשים להשתמש במוצר Cluster Director עצמו.

מידע נוסף על הפעלת Cluster Director API זמין במאמר הפעלת API בפרויקט ב- Google Cloud .

הרשאות IAM

לחשבון השירות Google Cloud שמשמש את עומס העבודה, צריך להקצות את תפקידי ה-IAM הבאים בפרויקט:

  • ‫roles/hypercomputecluster.editor: כדי לקבל גישה מלאה ליצירה ולניהול של משאבי MLRun ולצפייה בממשק המשתמש.
  • ‫roles/logging.logWriter: כדי לכתוב יומנים ומדדים ב-Cloud Logging.
  • ‫roles/storage.objectUser: כדי לשמור פרופילים בקטגוריה של Cloud Storage שצוינה ב-machinelearning_run.

אתם יכולים גם ליצור תפקידים בהתאמה אישית שנותנים למשתמשים קבוצת משנה של ממשקי API שנדרשים ל-ML Diagnostics. מכיוון שהמשתמשים לא צריכים להשתמש ב-Cluster Director כדי לנהל אשכולות, צריך להקצות רק את ההרשאות הבאות:

  • hypercomputecluster.locations.get
  • hypercomputecluster.locations.list
  • hypercomputecluster.clusters.list
  • hypercomputecluster.nodes.list
  • hypercomputecluster.machineLearningRuns.create
  • hypercomputecluster.machineLearningRuns.delete
  • hypercomputecluster.machineLearningRuns.get
  • hypercomputecluster.machineLearningRuns.list
  • hypercomputecluster.machineLearningRuns.update
  • hypercomputecluster.operations.cancel
  • hypercomputecluster.operations.delete
  • hypercomputecluster.operations.get
  • hypercomputecluster.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

לעומסי עבודה ב-Google Kubernetes Engine, משתמשים באיחוד שירותי אימות הזהות של עומסי עבודה כדי לשייך חשבון שירות של Kubernetes לחשבון שירות של Google Cloud שהוקצו לו התפקידים הנדרשים. פודים שפועלים ברשת המארחת (hostNetwork: true) לא משתמשים באיחוד זהויות של עומסי עבודה ל-GKE. במקרים כאלה, תוכלו לקרוא את המאמר חלופות לאיחוד זהויות של עומסי עבודה ל-GKE.

הפעלת Observability Analytics ב-Cloud Logging

הנתונים בתרשימי הסדרות העיתיות של מדדי המודל ומדדי הביצועים מוצגים באמצעות שאילתת Observability Analytics מול קטגוריית היומנים _Default של הפרויקט. אם לא הפעלתם את Observability Analytics בקטגוריה הזו, התרשימים האלה לא יפעלו והווידג'ט יציג את ההודעה Something went wrong in the backend או 0 time series, למרות שנתוני המדדים קיימים ב-Cloud Logging והפרופילים ומדדי המערכת מוצגים כמו שצריך.

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

gcloud logging buckets update _Default --location=global \
  --enable-analytics --project=PROJECT_ID

כדי להריץ את הפקודה הזו צריך את ההרשאה logging.buckets.update, שכלולה בתפקידים כמו roles/logging.configWriter.

תמחור

אתם מחויבים על אחסון המדדים דרך Cloud Logging ועל אחסון הפרופילים דרך Cloud Storage. אין צורך להפעיל חיוב נוסף על השירותים האלה כשמשתמשים בפלטפורמת ML Diagnostics. אין חיוב על משאבי XProf המנוהלים שנפרסו על ידי פלטפורמת ML Diagnostics.