Mencatat model ke operasi eksperimen

Agar model mudah dilacak, dibagikan, dan dianalisis, Vertex AI SDK untuk Python menyediakan API yang menserialisasi model machine learning ke dalam class ExperimentModel dan mencatat model ke Vertex AI Experiment.

Setelah memilih model terbaik untuk digunakan, Anda dapat mendaftarkan model tersebut dari Vertex AI Experiment ke Vertex AI Model Registry.

Framework yang didukung adalah scikit-learn, XGBoost, dan Tensorflow.

Menyimpan dan mencatat model ML ke dalam log

Menyimpan model

Vertex AI SDK menyediakan metode save_model untuk menserialisasi model ML, mengupload model tersebut ke Cloud Storage, dan merepresentasikannya sebagai artefak 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,
) -> 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,
    )

  • project: Project ID Anda. Anda dapat menemukan ID ini di halaman sambutan Konsol Google Cloud.
  • location: Lihat Daftar lokasi yang tersedia
  • model: (Harus ada). Model machine learning. (Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"])
  • artifact_id: Opsional. ID resource artefak. ID ini harus unik secara global di metadataStore. ID dapat terdiri atas maksimal 63 karakter, dan karakter yang valid adalah [a-z0-9_-]. Karakter pertama tidak boleh berupa angka atau tanda hubung.
  • uri: Opsional. Direktori gcs tempat menyimpan file model. Jika URI tidak disediakan, gs://default-bucket/timestamp-uuid-frameworkName-model akan digunakan. Jika bucket staging default tidak ditetapkan, bucket baru akan dibuat.
  • input_example: Opsional. Setiap model mengambil data input, lalu menghasilkan prediksi. Setiap model menerima satu format input tertentu (misalnya angka, string, array 2d) dan disimpan sebagai file yaml di uri gcs. Menerima list, dict, pd.DataFrame, dan np.ndarray. Nilai di dalam list harus berupa skalar atau daftar. Nilai di dalam dict harus berupa skalar, daftar, atau np.ndarray. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: Nama tampilan artefak.

Mencatat model ke dalam log

Vertex AI SDK menyediakan metode log_model, yang mengorkestrasi save_model, dan langkah tambahan untuk mencatat artefak Vertex ML Metadata ke operasi eksperimen saat ini. Metode log_model mengelola dan menganalisis berbagai model ML di Vertex AI Experiment.

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: Masukkan nama eksperimen Anda. Anda dapat menemukan daftar eksperimen di Konsol Google Cloud dengan memilih "Eksperimen" di navigasi bagian.
  • run_name: Tentukan nama operasi.
  • project: Project ID Anda. Anda dapat menemukan ID ini di halaman sambutan Konsol Google Cloud.
  • location: Lihat Daftar lokasi yang tersedia.
  • model: Wajib diisi. Model machine learning. (Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"])
  • uri: Opsional. Direktori gcs tempat menyimpan file model. Jika URI tidak disediakan, gs://default-bucket/timestamp-uuid-frameworkName-model akan digunakan. Jika bucket staging default tidak ditetapkan, bucket baru akan dibuat.
  • input_example: Opsional. Setiap model mengambil data input, lalu menghasilkan prediksi. Setiap model menerima satu format input tertentu (misalnya angka, string, array 2d) dan disimpan sebagai file yaml di uri gcs. Menerima list, dict, pd.DataFrame, dan np.ndarray. Nilai di dalam list harus berupa skalar atau daftar. Nilai di dalam dict harus berupa skalar, daftar, atau np.ndarray. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: Opsional. Nama tampilan artefak.

Melacak ExperimentModel

Mendapatkan model eksperimen

Untuk menggunakan get_experiment_model agar dapat menampilkan model tersimpan, teruskan ID artefak model tersimpan ke sana.

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

Mendapatkan model eksperimen

Metode get_experiment_models mendapatkan daftar semua ExperimentModel yang dicatat ke operasi eksperimen tertentu.

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: Tentukan nama operasi.
  • experiment: Masukkan nama eksperimen Anda. Anda dapat menemukan daftar eksperimen di Konsol Google Cloud dengan memilih "Experiments" di navigasi bagian.
  • project: Project ID Anda. Anda dapat menemukan ID ini di halaman sambutan Konsol Google Cloud.
  • location: Lihat Daftar lokasi yang tersedia.

Mendapatkan informasi model

Metode get_model_info menampilkan metadata model dari instance ExperimentModel tertentu, misalnya kelas, framework, dan jenis model.

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()

Memuat ExperimentModel

Memuat model

Metode load_experiment_model membantu Anda men-deserialisasi instance ExperimentModel kembali ke model ML asalnya.

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: (Harus ada). ID resource dari ExperimentModel yang sudah ada. Contoh: artifact_id="my-sklearn-model"
  • project: Project ID Anda. Anda dapat menemukan ID ini di halaman sambutan Konsol Google Cloud.
  • location: Lihat Daftar lokasi yang tersedia.

Mendaftarkan ExperimentModel

Mendaftarkan model tersimpan

register_experiment_model API memungkinkan Anda mendaftarkan model yang dianggap terbaik ke Vertex AI Model Registry dengan konfigurasi yang minimum. API ini otomatis memilih container prediksi bawaan berdasarkan framework dan versi model.

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: (Harus ada). ID resource dari ExperimentModel yang sudah ada.
  • project: Project ID Anda. Anda dapat menemukan ID ini di halaman sambutan Konsol Google Cloud.
  • location: Lihat Daftar lokasi yang tersedia.
  • display_name: Opsional. Nama yang ditentukan pengguna untuk model terdaftar.

Melihat daftar eksperimen di Konsol Google Cloud

  1. Di Konsol Google Cloud, buka halaman Experiments.
    Buka Eksperimen
    Daftar eksperimen akan muncul.
  2. Pilih eksperimen yang ingin diperiksa.
    Daftar operasi akan ditampilkan.

Halaman daftar eksperimen Vertex AI

Langkah berikutnya

Contoh notebook yang relevan

Postingan blog