בעזרת Managed Training, אתם יכולים להציג את יומני האימון שלכם כמעט בזמן אמת באמצעות Vertex AI TensorBoard. פשוט מגדירים את עומס העבודה לשמירת יומנים בקטגוריה של Cloud Storage, והם יועברו אוטומטית לניתוח בממשק TensorBoard.
דרישות מוקדמות
לפני שמתחילים, חשוב לוודא שיש לכם:
- אשכול אימון מנוהל שפועל.
- קטגוריה של Cloud Storage לאחסון יומני TensorBoard. הקטגוריה הזו צריכה להיות באותו אזור כמו מופע TensorBoard. הוראות להגדרה מופיעות במאמר יצירת קטגוריה של Cloud Storage.
- מכונה של Vertex AI TensorBoard. הוראות ליצירה מפורטות במאמר בנושא יצירת מופע של Vertex AI TensorBoard.
- הרשאות IAM הנכונות. כדי לאפשר ל-Cloud Storage FUSE לקרוא ולכתוב בקטגוריית האחסון, לחשבון השירות שבו משתמשות המכונות הווירטואליות של האשכול צריך להיות התפקיד 'משתמש באובייקט אחסון' (
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
אחרי ששולחים את העבודה, אפשר לעקוב אחרי ההתקדמות שלה בדף Vertex AI Experiments במסוף Cloud de Confiance .
המאמרים הבאים
ניתוח מדדי אימון, הצגת גרפים של מודלים ופרופיל ביצועים ב-Vertex AI TensorBoard כדי לנפות באגים, לבצע אופטימיזציה של המודל ולהכין את המודל לשילוב בתהליך עבודה מלא של MLOps.
- פריסת המודל לצורך היקש: פורסים את המודל המאומן לנקודת קצה של Gemini Enterprise Agent Platform כדי להכניס לשימוש בסביבת הייצור בקשות היקש אונליין.
- ניהול מחזור החיים של המודל: אפשר להשתמש ב-Model Registry של Gemini Enterprise Agent Platform כדי ליצור גרסאות של המודלים המאומנים, לעקוב אחריהם ולהשוות ביניהם. כך אפשר לשמור על משילות המודלים ועל יכולת השחזור שלהם.
- הגדרת מעקב אחרי המודל: אחרי הפריסה, כדאי לעקוב אחרי המודל כדי לזהות סטיות בביצועים ואנומליות בנתונים, וכך לשמור על היעילות של המודל בסביבת הייצור.
- אופטימיזציה של העלויות וניהול האשכול: בודקים באופן קבוע את ניצול האשכול ומנהלים את מחזור החיים שלו (לדוגמה, מחיקת האשכול כשלא משתמשים בו) כדי לבצע אופטימיזציה של העלויות של חומרה מוזמנת.