באמצעות אשכולות אימון מנוהלים ב-Gemini Enterprise Agent Platform, אתם יכולים להציג באופן חזותי את יומני האימון כמעט בזמן אמת באמצעות Vertex AI TensorBoard. פשוט מגדירים את עומס העבודה כך שהיומנים יישמרו בקטגוריה של Cloud Storage, והם יועברו אוטומטית לממשק של TensorBoard לצורך ניתוח.
דרישות מוקדמות
לפני שמתחילים, חשוב לוודא שהתנאים הבאים מתקיימים:
- אשכול פעיל של Managed Training Clusters.
- קטגוריה של Cloud Storage לאחסון היומנים של TensorBoard. הקטגוריה הזו צריכה להיות באותו אזור שבו נמצא המופע של TensorBoard. להוראות הגדרה, ראו יצירת קטגוריה של Cloud Storage.
- מכונה של Vertex AI TensorBoard. להוראות ליצירת מכונה, ראו יצירת מכונה של Vertex AI TensorBoard.
- הרשאות IAM מתאימות. כדי לאפשר ל-Cloud Storage FUSE לקרוא מקטגוריית האחסון ולכתוב אליה, חשבון השירות שבו משתמשות המכונות הווירטואליות של האשכול צריך את התפקיד Storage Object User (
roles/storage.objectUser).
הפעלת ההעלאה של Tensorboard
כדי להגדיר את השילוב של TensorBoard במשימה, מעבירים את הארגומנטים הבאים באמצעות הדגל --extra בשליחת המשימה ב-Slurm:
tensorboard_base_output_dir: הנתיב ב-Cloud Storage להעלאת היומנים. לדוגמה,gs://my-bucket/my-logs.
tensorboard_url: מציין את כתובת ה-URL של המכונה, הניסוי או ההרצה של Vertex AI TensorBoard. אם מציינים רק מופע, נוצרים ניסוי חדש והרצה חדשה. אם לא מציינים את המכונה, המערכת משתמשת במכונה שמוגדרת כברירת מחדל של TensorBoard בפרויקט. לדוגמה,projects/123/locations/us-central1/tensorboards/456.
דוגמה
# Using specific tensorboard instance
sbatch --extra="tensorboard_base_output_dir=<your-cloud-storage-dir>,tensorboard_url=projects/<project-id>/locations/<location>/tensorboards/<tensorboard-instance-id>" your_script.sbatch
כתיבת יומנים ממשימת האימון
בסקריפט האימון, ניגשים למשתנה הסביבה AIP_TENSORBOARD_LOG_DIR. המשתנה הזה מספק את הנתיב הייחודי ב-Cloud Storage שבו הסקריפט צריך לכתוב את יומני TensorBoard.
הנתיב בנוי באופן הבא:
gs://<your-cloud-storage-path>/<cluster-id>-<cluster-uuid>/tensorboard/job-<job-id>/
בדוגמה הבאה מוצג תהליך עבודה מלא עם שני רכיבים עיקריים: הסקריפט לשליחה של Slurm שמגדיר את המשימה, והסקריפט לאימון ב-Python שקורא את משתנה הסביבה כדי לכתוב את היומנים שלו.
סקריפט של משימת Slurm (simple_job.sbatch):
#!/bin/bash
#SBATCH --job-name=tensorboard-simple-test
#SBATCH --output=tensorboard-simple-test-%j.out
# Activate your Python virtual environment if needed
# source /path/to/your/venv/bin/activate
python3 simple_logger.py
סקריפט Python (simple_logger.py):
import tensorflow as tf
import os
# Get the log directory from the environment variable
log_dir = os.environ.get("AIP_TENSORBOARD_LOG_DIR")
print(f"Writing TensorBoard logs to: {log_dir}")
writer = tf.summary.create_file_writer(log_dir)
with writer.as_default():
for step in range(10):
# Simulate some metrics
loss = 1.0 - (step * 0.1)
accuracy = 0.6 + (step * 0.04)
# Log the metrics
tf.summary.scalar('loss', loss, step=step)
tf.summary.scalar('accuracy', accuracy, step=step)
writer.flush()
print(f"Step {step}: loss={loss:.4f}, accuracy={accuracy:.4f}")
writer.close()
print(f"--- Finished writing metrics to {log_dir} ---")
סנכרון יומנים בזמן אמת
כדי להציג מדדים ממשימה שפועלת, צריך לסגור מדי פעם את כותב הסיכום בקוד האימון וליצור אותו מחדש. הסיבה לכך היא ש-gcsfuse מסנכרן קובצי יומן ל-Cloud Storage רק אחרי שהם נסגרים. טכניקת ה"שטיפה" הזו מבטיחה שתוצאות הביניים יהיו גלויות במסוף TensorBoard לפני שהמשימה תושלם.
צפייה ב-Vertex AI TensorBoard
אחרי ששולחים את המשימה, אפשר לעקוב אחרי ההתקדמות שלה בדף Experiments on Gemini Enterprise Agent Platform במסוף Google Cloud .
המאמרים הבאים
לנתח מדדי אימון, להציג תרשימים של מודלים ולנתח את הביצועים ב-Vertex AI TensorBoard כדי לנפות באגים, לבצע אופטימיזציה של המודל ולהכין אותו לשילוב בתהליך עבודה מלא של MLOps.
- פריסת המודל להסקת מסקנות: פורסים את המודל המאומן בנקודת קצה של Gemini Enterprise Agent Platform כדי להציג בקשות להסקת מסקנות אונליין.
- ניהול מחזור החיים של המודל: אתם יכולים להשתמש במרשם המודלים של Gemini Enterprise Agent Platform כדי ליצור גרסאות, לעקוב אחרי המודלים שאומנו ולהשוות ביניהם. כך תוכלו לשמור על משילות המידע של המודל ועל יכולת השחזור שלו.
- הגדרת מעקב אחרי המודל: אחרי הפריסה, עוקבים אחרי המודל כדי לזהות שינויים בביצועים וחריגות בנתונים, וכך לשמור על היעילות של המודל בסביבת הייצור.
- אופטימיזציה של עלויות וניהול האשכול: כדאי לבדוק באופן קבוע את השימוש באשכול ולנהל את מחזור החיים שלו (למשל, למחוק את האשכול כשלא משתמשים בו) כדי לבצע אופטימיזציה של עלויות החומרה השמורה.