הדמיה של משימות באמצעות Vertex AI TensorBoard

אם אתם רוצים להשתמש באשכולות אימון מנוהלים ב-Gemini Enterprise Agent Platform, פנו לנציג המכירות שלכם כדי לקבל גישה.

באמצעות אשכולות אימון מנוהלים ב-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.