רישום מודלים בהרצת ניסוי

כדי לעקוב אחרי מודל, לשתף אותו ולנתח אותו, Vertex AI SDK ל-Python מספק API שמבצע סריאליזציה של מודל למידת מכונה למחלקה ExperimentModel ומתעד את המודל ב-Vertex AI Experiments.

אחרי שבוחרים את המודל הכי טוב לשימוש, אפשר לרשום אותו מ-Vertex AI Experiments אל מרשם המודלים של Vertex AI.

ה-frameworks הנתמכים הם scikit-learn,‏ XGBoost ו-TensorFlow.

שמירה של מודל למידת מכונה ורישום שלו ביומן

שמירת מודלים

‫Vertex AI SDK מספק את השיטה save_model לסריאליזציה של מודל ML, להעלאת המודל ל-Cloud Storage ולייצוג המודל כארטיפקט של Vertex ML Metadata.

Python

from typing import Optional, Union

from google.cloud import aiplatform


def save_model_sample(
    project: str,
    location: str,
    model: Union[
        "sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"  # noqa: F821
    ],
    artifact_id: Optional[str] = None,
    uri: Optional[str] = None,
    input_example: Optional[
        Union[list, dict, "pd.DataFrame", "np.ndarray"]  # noqa: F821
    ] = None,
    display_name: Optional[str] = None,
    staging_bucket: Optional[str] = None,
) -> None:
    aiplatform.init(project=project, location=location)

    aiplatform.save_model(
        model=model,
        artifact_id=artifact_id,
        uri=uri,
        input_example=input_example,
        display_name=display_name,
        staging_bucket=staging_bucket,
    )

  • project: . אפשר למצוא את המזהים האלה בדף welcome במסוף Google Cloud .
  • location: ראו רשימת המיקומים הזמינים
  • model: (חובה). מודל למידת מכונה. (Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"])
  • artifact_id: אופציונלי. מזהה המשאב של הארטיפקט. המזהה הזה צריך להיות ייחודי באופן גלובלי ב-metadataStore. הוא יכול לכלול עד 63 תווים, והתווים התקפים הם [a-z0-9_-]. התו הראשון לא יכול להיות מספר או מקף.
  • uri: אופציונלי. ספריית gcs שבה יישמר קובץ המודל. אם לא מציינים URI, המערכת משתמשת בערך gs://default-bucket/timestamp-uuid-frameworkName-model. אם לא מוגדרת קטגוריית אחסון זמני כברירת מחדל, צריך להעביר אותה בפרמטר staging_bucket.
  • input_example: אופציונלי. כל מודל מקבל נתוני קלט ואז מפיק חיזוי. כל מודל מקבל קלט בפורמט מסוים (לדוגמה, מספר, מחרוזת, מערך דו-ממדי) ומאוחסן כקובץ YAML ב-URI של GCS. הפרמטר מקבל רשימה, מילון, pd.DataFrame ו-np.ndarray. הערך בתוך רשימה חייב להיות סקלר או רשימה. הערך בתוך מילון חייב להיות סקלר, רשימה או np.ndarray. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: השם המוצג של הארטיפקט.
  • staging_bucket: אופציונלי. באקט הביניים שמשמש לשמירת המודל. אם לא מציינים דלי, המערכת משתמשת בדלי של סביבת הבדיקה שהוגדר ב-aiplatform.init. כדי לשמור מודל, צריך להשתמש בדלי או ב-URI של staging.

מודלים של יומנים

ה-SDK של Vertex AI מספק שיטה log_model, שמארגנת את save_model ושלב נוסף לרישום של ארטיפקט של מטא-נתונים של Vertex ML בהרצת הניסוי הנוכחית. השיטה log_model לניהול ולניתוח של כמה מודלים של למידת מכונה ב-Vertex AI Experiments.

Python

from typing import Optional, Union

from google.cloud import aiplatform


def log_model_sample(
    experiment_name: str,
    run_name: str,
    project: str,
    location: str,
    model: Union[
        "sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"  # noqa: F821
    ],
    artifact_id: Optional[str] = None,
    uri: Optional[str] = None,
    input_example: Optional[
        Union[list, dict, "pd.DataFrame", "np.ndarray"]  # noqa: F821
    ] = None,  # noqa: F821
    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_model(
        model=model,
        artifact_id=artifact_id,
        uri=uri,
        input_example=input_example,
        display_name=display_name,
    )

  • experiment_name: מציינים את שם הניסוי. כדי לראות את רשימת הניסויים, בוחרים באפשרות 'ניסויים' בסרגל הניווט של מסוף Google Cloud .
  • run_name: מציינים שם להרצה.
  • project: . אפשר למצוא את המזהים האלה בדף welcome במסוף Google Cloud .
  • location: ראו רשימה של מיקומים זמינים.
  • model: חובה. מודל למידת מכונה. (Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"])
  • uri: אופציונלי. ספריית gcs שבה יישמר קובץ המודל. אם לא מציינים uri,המערכת משתמשת ב-gs://default-bucket/timestamp-uuid-frameworkName-model. אם לא מוגדרת קטגוריית אחסון זמנית כברירת מחדל, נוצרת קטגוריה חדשה.
  • input_example: אופציונלי. כל מודל מקבל נתוני קלט ואז מפיק חיזוי. כל מודל מקבל פורמט קלט מסוים (לדוגמה, מספר, מחרוזת, מערך דו-ממדי) ומאוחסן כקובץ YAML ב-URI של GCS. הפונקציה מקבלת רשימה, מילון, pd.DataFrame ו-np.ndarray. הערך בתוך רשימה חייב להיות סקלר או רשימה. הערך בתוך מילון חייב להיות סקלר, רשימה או np.ndarray. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: אופציונלי. השם המוצג של הארטיפקט.

טראק ExperimentModel

קבלת מודל ניסיוני

כדי להשתמש ב-get_experiment_model כדי להחזיר מודל שמור, מעבירים לו את מזהה הארטיפקט של המודל השמור.

Python

from google.cloud import aiplatform


def get_experiment_model_sample(
    project: str,
    location: str,
    artifact_id: str,
) -> "ExperimentModel":  # noqa: F821
    aiplatform.init(project=project, location=location)
    experiment_model = aiplatform.get_experiment_model(artifact_id=artifact_id)

    return experiment_model

קבלת מודלים של ניסויים

ה-method‏ get_experiment_models מחזירה רשימה של כל ה-ExperimentModel שנרשמו בהרצת ניסוי מסוימת.

Python

from typing import List, Union

from google.cloud import aiplatform


def get_experiment_run_models_sample(
    run_name: str,
    experiment: Union[str, aiplatform.Experiment],
    project: str,
    location: str,
) -> List["ExperimentModel"]:  # noqa: F821
    experiment_run = aiplatform.ExperimentRun(
        run_name=run_name, experiment=experiment, project=project, location=location
    )

    return experiment_run.get_experiment_models()

  • run_name: מציינים שם להרצה.
  • experiment: מציינים את שם הניסוי. כדי לראות את רשימת הניסויים במסוף Google Cloud, בוחרים באפשרות Experiments (ניסויים) בסרגל הניווט של הקטע.
  • project: . אפשר למצוא את המזהים האלה בדף welcome במסוף Google Cloud .
  • location: ראו רשימה של מיקומים זמינים.

קבלת מידע על מודל

השיטה get_model_info מחזירה את המטא-נתונים של המודל של מופע ExperimentModel נתון, למשל, סיווג המודל, סוג המסגרת.

Python

from typing import Any, Dict

from google.cloud import aiplatform


def get_model_info_sample(
    artifact_id: str,
    project: str,
    location: str,
) -> Dict[str, Any]:
    experiment_model = aiplatform.get_experiment_model(
        artifact_id=artifact_id, project=project, location=location
    )

    return experiment_model.get_model_info()

טעינה ExperimentModel

טעינת מודל

השיטה load_experiment_model עוזרת לכם לבצע דה-סריאליזציה של מופע ExperimentModel בחזרה למודל המקורי של למידת המכונה.

Python

from typing import Union

from google.cloud import aiplatform


def load_experiment_model_sample(
    artifact_id: str,
    project: str,
    location: str,
) -> Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"]:  # noqa: F821:
    experiment_model = aiplatform.get_experiment_model(
        artifact_id=artifact_id, project=project, location=location
    )

    return experiment_model.load_model()

  • artifact_id: (חובה). מזהה המשאב של ExperimentModel הקיים. דוגמה: artifact_id="my-sklearn-model"
  • project: . אפשר למצוא את המזהים האלה בדף welcome במסוף Google Cloud .
  • location: ראו רשימה של מיקומים זמינים.

רישום של ExperimentModel

רישום של מודל שנשמר

register_experiment_model API מאפשר לרשום את המודל שנחשב לטוב ביותר ב-Vertex AI Model Registry עם כמות מינימלית של הגדרות. ה-API בוחר באופן אוטומטי מאגר תחזיות מוכן מראש על סמך המסגרת והגרסה של המודל.

Python

from google.cloud import aiplatform


def register_experiment_model_sample(
    artifact_id: str,
    project: str,
    location: str,
    display_name: str,
) -> aiplatform.models.Model:
    experiment_model = aiplatform.get_experiment_model(
        artifact_id=artifact_id, project=project, location=location
    )

    return experiment_model.register_model(display_name=display_name)

  • artifact_id: (חובה). מזהה המשאב של ExperimentModel הקיים.
  • project: . אפשר למצוא את המזהים האלה בדף welcome במסוף Google Cloud .
  • location: ראו רשימה של מיקומים זמינים.
  • display_name: אופציונלי. השם שהמשתמש נתן לדגם הרשום.

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

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

דף רשימת הניסויים ב-Vertex AI

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

דוגמה רלוונטית ל-notebook

פוסט בבלוג