הפעלה של Cloud Profiler לניפוי באגים בביצועים של אימון מודלים

בדף הזה מוסבר איך להפעיל את Cloud Profiler כדי שתוכלו לנפות באגים בביצועים של אימון מודלים במשימות אימון ללא שרת.

אימון מודלים יכול להיות יקר מבחינת משאבי מחשוב. בעזרת Profiler אפשר לעקוב אחרי הביצועים של אימון המודל ולבצע אופטימיזציה שלהם. הכלי עוזר להבין את צריכת המשאבים של פעולות האימון. המידע הזה מאפשר לכם לזהות צווארי בקבוק בביצועים ולתקן אותם כדי לאמן מודלים מהר יותר ובעלות נמוכה יותר.

לפני שמתחילים

הפעלת כלי לניתוח ביצועים (profiler)

כדי להפעיל את Profiler למשימת האימון, מוסיפים את השורות הבאות לסקריפט האימון:

  1. מוסיפים את cloud_profilerהייבוא ברמה העליונה של הייבוא:

    from google.cloud.aiplatform.training_utils import cloud_profiler
    
  2. מאתחלים את הפלאגין cloud_profiler על ידי הוספת:

    cloud_profiler.init()
    

דוגמה

הנה דוגמה לסקריפט הדרכה:

#!/usr/bin/env python

import tensorflow as tf
import argparse
import os
from google.cloud.aiplatform.training_utils import cloud_profiler
import time

"""Train an mnist model and use cloud_profiler for profiling."""

def _create_model():
    model = tf.keras.models.Sequential(
        [
            tf.keras.layers.Flatten(input_shape=(28, 28)),
            tf.keras.layers.Dense(128, activation="relu"),
            tf.keras.layers.Dropout(0.2),
            tf.keras.layers.Dense(10),
        ]
    )
    return model

def main(args):
    strategy = None
    if args.distributed:
        strategy = tf.distribute.MultiWorkerMirroredStrategy()

    mnist = tf.keras.datasets.mnist

    (x_train, y_train), (x_test, y_test) = mnist.load_data()
    x_train, x_test = x_train / 255.0, x_test / 255.0

    if args.distributed:
        strategy = tf.distribute.MultiWorkerMirroredStrategy()
        with strategy.scope():
            model = _create_model()
            model.compile(
                optimizer="adam",
                loss=tf.keras.losses.sparse_categorical_crossentropy,
                metrics=["accuracy"],
            )
    else:
        model = _create_model()
        model.compile(
            optimizer="adam",
            loss=tf.keras.losses.sparse_categorical_crossentropy,
            metrics=["accuracy"],
        )

    # Initialize the profiler.
    cloud_profiler.init()

    # Use AIP_TENSORBOARD_LOG_DIR to update where logs are written to.
    tensorboard_callback = tf.keras.callbacks.TensorBoard(
        log_dir=os.environ["AIP_TENSORBOARD_LOG_DIR"], histogram_freq=1
    )

    model.fit(
        x_train,
        y_train,
        epochs=args.epochs,
        verbose=0,
        callbacks=[tensorboard_callback],
    )
if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "--epochs", type=int, default=100, help="Number of epochs to run model."
    )
    parser.add_argument(
        "--distributed", action="store_true", help="Use MultiWorkerMirroredStrategy"
    )
    args = parser.parse_args()
    main(args)

גישה למרכז הבקרה של Profiler

אחרי שמגדירים את סקריפט האימון כדי להפעיל את Profiler, מריצים את סקריפט האימון עם מופע Vertex AI TensorBoard.

בסקריפט ההדרכה, מוודאים שההגדרות הבאות מוגדרות:

  • מגדירים את BASE_OUTPUT_DIR: לקטגוריית Cloud Storage שבה רוצים לאחסן את היומנים של Vertex AI TensorBoard שנוצרו על ידי סקריפט האימון.
  • מגדירים את 'serviceAccount': לחשבון השירות שיצרתם עם התפקידים roles/storage.admin ו-roles/aiplatform.user.
  • מגדירים את 'tensorboard': לשם הדומיין שמוגדר במלואו של מופע Vertex AI TensorBoard שרוצים להשתמש בו עם משימת האימון הזו. השם המוגדר במלואו הוא בפורמט הבא:

    projects/PROJECT_NUMBER_OR_ID/locations/REGION/tensorboards/TENSORBOARD_INSTANCE_ID
    

יש שתי דרכים לגשת ללוח הבקרה של Profiler ממסוף Google Cloud :

  • מהדף 'משרות בהתאמה אישית'.
  • בדף 'ניסויים'.

גישה ללוח הבקרה של Profiler דרך הדף Custom jobs

אתם יכולים להשתמש בשיטה הזו כדי לגשת ללוח הבקרה של Profiler גם אם משימת האימון נמצאת במצב Finished.

  1. במסוף Google Cloud , עוברים לכרטיסייה Custom jobs בדף Training.

    עוברים אל משימות בהתאמה אישית

  2. לוחצים על השם של משימת האימון שיצרתם כדי לעבור לדף הפרטים של המשימה.

  3. לוחצים על Open TensorBoard (פתיחת TensorBoard).

  4. לוחצים על הכרטיסייה פרופיל.

גישה ללוח הבקרה של כלי הפרופיל דרך הדף 'ניסויים'

אפשר להשתמש בשיטה הזו כדי לגשת ללוח הבקרה של Profiler רק כשמשימת האימון נמצאת במצב Running.

  1. נכנסים לדף Vertex AI Experiments במסוף Google Cloud .

    מעבר אל Vertex AI Experiments

  2. בוחרים את האזור של משימת האימון שיצרתם.

  3. לוחצים על Open TensorBoard (פתיחת TensorBoard) לצד השם של משימת האימון.

  4. לוחצים על הכרטיסייה פרופיל.

תיעוד סשן פרופילים

כדי לתעד סשן פרופילים, משימת האימון צריכה להיות במצב Running. בכרטיסייה פרופיל במופע של Vertex AI TensorBoard, מבצעים את השלבים הבאים:

  1. לוחצים על צילום הפרופיל.
  2. בשדה Profile Service URL(s) or TPU name (כתובות ה-URL של שירות הפרופיל או שם ה-TPU), מזינים:

    workerpool0-0
    
  3. בקטע סוג הכתובת, בוחרים באפשרות כתובת IP.

  4. לוחצים על צילום.

Notebook

המאמרים הבאים