Menjalankan tugas pelatihan dengan pelacakan eksperimen

Vertex AI menyediakan layanan pelatihan terkelola yang memungkinkan Anda mengoperasikan pelatihan model skala besar. Anda dapat mengaktifkan pelacakan eksperimen menggunakan Vertex AI SDK untuk Python guna mengambil parameter dan metrik performa saat mengirim tugas pelatihan kustom.

Fitur ini tidak tersedia saat Anda:

  • mengirim tugas pelatihan melalui Konsol Google Cloud atau Google Cloud CLI,
  • menggunakan TPU dalam tugas pelatihan,
  • menggunakan pelatihan terdistribusi dalam tugas pelatihan.

Baik container pelatihan bawaan maupun container kustom didukung. Wajib: Versi Vertex AI SDK untuk Python yang lebih tinggi dari 1.24.1 untuk google-cloud-aiplatform telah diinstal. Jika Anda melakukan pelatihan dengan Tensorflow, pastikan versi protobuf kurang dari 4.0 diinstal untuk menghindari konflik.

Ada dua opsi untuk mencatat data ke dalam Vertex AI Experiments, yaitu logging otomatis dan logging manual.

Autologging direkomendasikan jika Anda menggunakan salah satu framework yang didukung berikut: Fastai, Gluon, Keras, LightGBM, Pytorch Lightning, Scikit-learn, Spark, Statsmodels, XGBoost. Jika framework tidak didukung, atau ada metrik kustom yang ingin Anda catat ke dalam eksperimen yang dijalankan, Anda dapat menyesuaikan skrip pelatihan secara manual untuk mencatat parameter, metrik, dan artefak.

Data AutoLog

Untuk mengaktifkan logging otomatis, cukup setel enable_autolog=True, lihat from_local_script. Anda memiliki opsi untuk membuat eksperimen berjalan, atau tidak. Jika tidak ditentukan, nama eksperimen akan dibuat untuk Anda.

Vertex AI SDK untuk Python menangani pembuatan resource ExperimentRun untuk Anda.

Python

def create_custom_job_with_experiment_autologging_sample(
    project: str,
    location: str,
    staging_bucket: str,
    display_name: str,
    script_path: str,
    container_uri: str,
    service_account: str,
    experiment: str,
    experiment_run: Optional[str] = None,
) -> None:
    aiplatform.init(project=project, location=location, staging_bucket=staging_bucket, experiment=experiment)

    job = aiplatform.CustomJob.from_local_script(
        display_name=display_name,
        script_path=script_path,
        container_uri=container_uri,
        enable_autolog=True,
    )

    job.run(
        service_account=service_account,
        experiment=experiment,
        experiment_run=experiment_run,
    )

  • project: Project ID Anda. Anda dapat menemukan Project ID ini di halaman sambutan Konsol Google Cloud.
  • location: Lihat Daftar lokasi yang tersedia.
  • staging_bucket: Nama yang Anda berikan untuk bucket, misalnya, my_bucket.
  • display_name: Nama CustomJob yang ditentukan pengguna.
  • script_path: Jalur, relatif terhadap direktori kerja di sistem file lokal, ke skrip yang merupakan titik entri untuk kode pelatihan Anda.
  • container_uri: URI image container pelatihan dapat berupa container pelatihan bawaan Vertex AI atau container kustom
  • service_account: Lihat Membuat akun layanan dengan izin yang diperlukan.
  • experiment: Berikan nama untuk eksperimen Anda. Eksperimen harus memiliki instance TensorBoard. Anda dapat menemukan daftar eksperimen di Google Cloud Console dengan memilih Eksperimen di navigasi bagian.
  • experiment_run: (Opsional) Menentukan nama operasi. Jika tidak ditentukan, operasi akan dibuat secara otomatis.

Mencatat data secara manual

Gunakan opsi data log secara manual untuk memasukkan skrip pelatihan Anda.

Berikut cara mengubah skrip pelatihan:

import os
import pickle
import pandas as pd
from sklearn.linear_model import LinearRegression
# To use manual logging APIs, import aiplatform
from google.cloud import aiplatform

# Create Dataset
data = {'A': [1.1,2.2,4.1,5.2],
        'B': [200, 212.12, 22, 123],
        'Y': [1,0,1,0]}
df = pd.DataFrame(data)
X = df[['A', 'B']]
Y = df['Y']

# Train model
model = LinearRegression().fit(X, Y)

# Save the model to gcs
model_dir = os.getenv('AIP_MODEL_DIR')
model_gcs = model_dir.replace('gs://', '/gcs/')
model_name = 'model.pkl'
os.mkdir(model_gcs)
f = open(os.path.join(model_gcs, model_name), 'wb')
pickle.dump(model, f)

f = open(os.path.join(model_gcs, model_name), 'wb')
    pickle.dump(model, f)

# Call aiplatform's logging APIs to save data to Vertex AI Experiments.
params = model.get_params()
aiplatform.log_params(params)
metrics = {"training_accuracy": model.score(X,Y)}
aiplatform.log_metrics(metrics)

Anda memiliki opsi untuk membuat eksperimen berjalan, atau tidak. Jika tidak ditentukan, nama eksperimen akan dibuat untuk Anda.

Pelajari lebih lanjut, baca bagian Mencatat data secara manual ke eksperimen yang berjalan.

Python

def create_custom_job_with_experiment_sample(
    project: str,
    location: str,
    staging_bucket: str,
    display_name: str,
    script_path: str,
    container_uri: str,
    service_account: str,
    experiment: str,
    experiment_run: Optional[str] = None,
) -> None:
    aiplatform.init(
        project=project,
        location=location,
        staging_bucket=staging_bucket,
        experiment=experiment
    )

    job = aiplatform.CustomJob.from_local_script(
        display_name=display_name,
        script_path=script_path,
        container_uri=container_uri,
    )

    job.run(
        service_account=service_account,
        experiment=experiment,
        experiment_run=experiment_run,
    )

  • project: Project ID Anda. Anda dapat menemukan Project ID ini di halaman sambutan Konsol Google Cloud.
  • location: Lihat Daftar lokasi yang tersedia
  • staging_bucket: Nama yang Anda berikan untuk bucket, misalnya, my_bucket.
  • display_name: Nama CustomJob yang ditentukan pengguna.
  • script_path: Jalur, relatif terhadap direktori kerja di sistem file lokal, ke skrip yang merupakan titik entri untuk kode pelatihan Anda.
  • container_uri: URI image container pelatihan dapat berupa container pelatihan bawaan Vertex AI, atau container kustom. Jika Anda menggunakan container kustom, pastikan google-cloud-aiplatform>=1.24.0 sudah diinstal.
  • service_account: Lihat Membuat akun layanan dengan izin yang diperlukan.
  • experiment: Berikan nama untuk eksperimen Anda. Anda dapat menemukan daftar eksperimen di Konsol Google Cloud dengan memilih Eksperimen di navigasi bagian.
  • experiment_run: Tentukan nama operasi. Jika tidak ditentukan, operasi akan dibuat secara otomatis.

Melihat parameter dan metrik yang dicatat otomatis

Gunakan Vertex AI SDK untuk Python guna membandingkan operasi dan mendapatkan data operasi. Konsol Google Cloud menyediakan cara mudah untuk membandingkan operasi ini.

Langkah berikutnya

Contoh notebook yang relevan