רישום נתונים באופן ידני להרצת ניסוי

למטרות רישום ביומן, משתמשים ב-Agent Platform SDK ל-Python.

מדדים ופרמטרים נתמכים:

  • מדדי סיכום
  • מדדים של סדרות עיתיות
  • parameters
  • מדדי סיווג

Agent Platform SDK ל-Python

הערה: אם הפרמטר האופציונלי resume מצוין כ-TRUE, הריצה שהתחילה קודם תתחדש. אם לא מציינים ערך, resume מקבל כברירת מחדל את הערך FALSE ונוצרת הרצה חדשה.

בדוגמה הבאה נעשה שימוש בשיטה init מתוך הפונקציות של aiplatform.

מדדי סיכום

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

תרחיש לדוגמה לשימוש בתכונה הזו הוא עצירה מוקדמת, שבה הגדרת סבלנות מאפשרת המשך אימון, אבל המודל המועמד משוחזר משלב מוקדם יותר, והמדדים שמחושבים לגבי המודל בשלב הזה יוצגו כמדד סיכום, כי המדד האחרון של סדרת הזמן לא מייצג את המודל המשוחזר. לשם כך משתמשים ב-API‏ log_metrics למדדי סיכום.

Python

from typing import Dict

from google.cloud import aiplatform


def log_metrics_sample(
    experiment_name: str,
    run_name: str,
    metrics: Dict[str, float],
    project: str,
    location: str,
):
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name)

    aiplatform.log_metrics(metrics)

  • experiment_name: נותנים שם לניסוי. כדי לראות את רשימת הניסויים, בוחרים באפשרות ניסויים בסרגל הניווט של הקטע במסוף Google Cloud .
  • run_name: מציינים שם להרצה (ראו start_run).
  • metric: צמדי מפתח/ערך של מדדים. לדוגמה: {'learning_rate': 0.1}
  • project: . אפשר למצוא אותם בדף welcome במסוף Google Cloud .
  • location: ראו רשימת המיקומים הזמינים

מדדים של פעולות על ציר הזמן

כדי לרשום מדדים של סדרות זמן, צריך להשתמש ב-Vertex AI Experiments בגיבוי של מכונת Vertex AI TensorBoard.

הקצאת משאב גיבוי של Vertex AI TensorBoard לרישום ביומן של מדד סדרת זמנים.

כל המדדים שנרשמים ביומן באמצעות log_time_series_metrics מאוחסנים כמדדים של סדרות זמן. Vertex AI TensorBoard הוא מאגר הנתונים של מדדי סדרות הזמן.

אפשר להגדיר את experiment_tensorboard גם ברמת הניסוי וגם ברמת הפעלת הניסוי. הגדרה של experiment_tensorboard ברמת ההרצה מבטלת את ההגדרה ברמת הניסוי. אחרי שמגדירים את experiment_tensorboard בהרצה, אי אפשר לשנות את experiment_tensorboard של ההרצה.

  • מגדירים את experiment_tensorboard ברמת הניסוי:
      aiplatform.init(experiment='my-experiment',
                   experiment_tensorboard='projects/.../tensorboard/my-tb-resource')
  • הגדרת experiment_tensorboard ברמת הריצה: הערה: ההגדרה הזו מבטלת את ההגדרה ברמת הניסוי.
      aiplatform.start_run(run_name='my-other-run',
                        tensorboard='projects/.../.../other-resource')
    aiplatform.log_time_series_metrics(...)

Python

from typing import Dict, Optional

from google.cloud import aiplatform
from google.protobuf import timestamp_pb2


def log_time_series_metrics_sample(
    experiment_name: str,
    run_name: str,
    metrics: Dict[str, float],
    step: Optional[int],
    wall_time: Optional[timestamp_pb2.Timestamp],
    project: str,
    location: str,
):
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name, resume=True)

    aiplatform.log_time_series_metrics(metrics=metrics, step=step, wall_time=wall_time)

  • experiment_name: מציינים את שם הניסוי. רשימת הניסויים מופיעה במסוף Google Cloud אחרי שבוחרים באפשרות Experiments (ניסויים) בסרגל הניווט.
  • run_name: מציינים שם להרצה (ראו start_run).
  • metrics: מילון שבו המפתחות הם שמות של מדדים והערכים הם ערכים של מדדים.
  • step: אופציונלי. אינדקס השלב של נקודה על הגרף הזו בהרצה.
  • wall_time: אופציונלי. חותמת הזמן של השעון שעל הקיר שבה נקודת הנתונים הזו נוצרת על ידי משתמש הקצה. אם לא מספקים ערך, המערכת יוצרת את הערך wall_time על סמך הערך של time.time()‎
  • project: . אפשר למצוא אותם בדף welcome במסוף Google Cloud .
  • location: ראו רשימת המיקומים הזמינים

שלב וזמן בפועל

ממשק log_time_series_metrics API מקבל באופן אופציונלי את step וגם את walltime.

  • step: אופציונלי. אינדקס השלב של נקודה על הגרף זו בהרצה. אם לא מציינים ערך, המערכת משתמשת בתוספת מעל השלב האחרון מבין כל מדדי סדרות הזמן שכבר נרשמו. אם השלב קיים עבור אחד ממפתחות המדדים שצוינו, הוא יוחלף.
  • wall_time: אופציונלי. מספר השניות שעברו מאז תקופת ה-epoch של המדד שנרשם ביומן. אם לא מציינים ערך, ברירת המחדל היא time.time של Python.

לדוגמה:

aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00})
רישום ביומן של שלב ספציפי
aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00}, step=8)
כלול wall_time
aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00}, step=10)

פרמטרים

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

Python

from typing import Dict, Union

from google.cloud import aiplatform


def log_params_sample(
    experiment_name: str,
    run_name: str,
    params: Dict[str, Union[float, int, str]],
    project: str,
    location: str,
):
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name, resume=True)

    aiplatform.log_params(params)

aiplatform.log_params({"learning_rate": 0.01, "n_estimators": 10})
  • experiment_name: נותנים שם לניסוי. כדי לראות את רשימת הניסויים, בוחרים באפשרות ניסויים בסרגל הניווט של הקטע במסוף Google Cloud .
  • run_name: מציינים שם להרצה (ראו start_run).
  • params: צמדי מפתח/ערך של פרמטרים לדוגמה: {'accuracy': 0.9} (ראו log_params). הדף welcome.
  • location: ראו רשימת המיקומים הזמינים

מדדי סיווג

בנוסף למדדי סיכום ולמדדים של סדרות זמן, משתמשים בדרך כלל במדדי מטריצת בלבול ועקומת ROC. אפשר לרשום אותם ביומן של Vertex AI Experiments באמצעות ה-API‏ log_classification_metrics.

Python

from typing import List, Optional

from google.cloud import aiplatform


def log_classification_metrics_sample(
    experiment_name: str,
    run_name: str,
    project: str,
    location: str,
    labels: Optional[List[str]] = None,
    matrix: Optional[List[List[int]]] = None,
    fpr: Optional[List[float]] = None,
    tpr: Optional[List[float]] = None,
    threshold: Optional[List[float]] = None,
    display_name: Optional[str] = None,
) -> None:
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name, resume=True)

    aiplatform.log_classification_metrics(
        labels=labels,
        matrix=matrix,
        fpr=fpr,
        tpr=tpr,
        threshold=threshold,
        display_name=display_name,
    )

  • experiment_name: נותנים שם לניסוי. כדי לראות את רשימת הניסויים, בוחרים באפשרות ניסויים בסרגל הניווט של הקטע במסוף Google Cloud .
  • run_name: מציינים שם להרצה (ראו start_run).
  • project: . אפשר למצוא אותם בדף welcome במסוף Google Cloud .
  • location: ראו רשימה של מיקומים זמינים.
  • labels: רשימה של שמות התוויות למטריצת השגיאות. חובה להגדיר את הערך הזה אם הערך 'matrix' מוגדר.
  • matrix: ערכים למטריצת השגיאה. חובה להגדיר את הערך הזה אם מגדירים את הערך labels.
  • fpr: רשימה של שיעורי חיוביים כוזבים עבור עקומת ה-ROC. חובה להגדיר את הערך הזה אם מוגדרים הערכים tpr או thresholds.
  • tpr: רשימה של שיעורי חיוביים אמיתיים לשימוש בעקומת ROC. חובה להגדיר את הערך אם מוגדרים הערכים 'fpr' או 'thresholds'.
  • threshold: רשימת ערכי הסף של עקומת ה-ROC. חובה להגדיר את הערך הזה אם מגדירים את הערך fpr או tpr.
  • display_name: השם שהוגדר על ידי המשתמש לארטיפקט של מדד הסיווג.

צפייה ברשימת הפעלות של ניסויים במסוף Google Cloud

  1. נכנסים לדף Experiments במסוף Google Cloud .
    מעבר לדף Experiments
    מוצגת רשימה של ניסויים.
  2. בוחרים את הניסוי שרוצים לבדוק.
    תופיע רשימה של הפעלות.

הדף של רשימת הניסויים ב-Agent Platform
מידע נוסף זמין במאמר השוואה וניתוח של ריצות.

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

מדריך ל-Notebook

פוסט בבלוג