Melatih dan men-deploy model Anda

Pada langkah sebelumnya dalam tutorial ini, Anda telah menyiapkan data untuk pelatihan dan membuat skrip yang digunakan Vertex AI untuk melatih model. Anda kini siap menggunakan Vertex AI SDK untuk Python untuk membuat CustomTrainingJob.

Saat membuat CustomTrainingJob, Anda menentukan pipeline pelatihan di latar belakang. Vertex AI menggunakan pipeline pelatihan ini dan kode dalam skrip pelatihan Python Anda untuk melatih dan membuat model. Untuk mengetahui informasi selengkapnya, lihat Membuat pipeline pelatihan.

Menentukan pipeline pelatihan Anda

Untuk membuat pipeline pelatihan, buat objek CustomTrainingJob. Pada langkah berikutnya, Anda menggunakan perintah run dari CustomTrainingJob untuk membuat dan melatih model. Untuk membuat CustomTrainingJob, teruskan parameter berikut ke konstruktornya:

  • display_name - Variabel JOB_NAME yang Anda buat saat menentukan argumen perintah untuk skrip pelatihan Python.

  • script_path - Jalur ke skrip pelatihan Python yang Anda buat sebelumnya dalam tutorial ini.

  • container_url - URI image container Docker yang digunakan untuk melatih model Anda.

  • requirements - Daftar dependensi paket Python skrip.

  • model_serving_container_image_uri - URI image container Docker yang menyalurkan prediksi untuk model Anda. Anda dapat menggunakan container bawaan atau image kustom Anda sendiri. Tutorial ini menggunakan container bawaan.

Jalankan kode berikut untuk membuat pipeline pelatihan. Metode CustomTrainingJob menggunakan skrip pelatihan Python di file task.py untuk membuat CustomTrainingJob.

job = aiplatform.CustomTrainingJob(
    display_name=JOB_NAME,
    script_path="task.py",
    container_uri="us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-8:latest",
    requirements=["google-cloud-bigquery>=2.20.0", "db-dtypes", "protobuf<3.20.0"],
    model_serving_container_image_uri="us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-8:latest",
)

Membuat dan melatih model

Pada langkah sebelumnya, Anda telah membuat CustomTrainingJob bernama job. Untuk membuat dan melatih model Anda, panggil metode run pada objek CustomTrainingJob dan teruskan parameter berikut:

  • dataset - Set data tabular yang Anda buat sebelumnya dalam tutorial ini. Parameter ini dapat berupa set data tabular, gambar, video, atau teks.

  • model_display_name - Nama model Anda.

  • bigquery_destination - String yang menentukan lokasi set data BigQuery Anda.

  • args - Argumen command line yang diteruskan ke skrip pelatihan Python.

Untuk mulai melatih data dan membuat model, jalankan kode berikut di notebook Anda:

MODEL_DISPLAY_NAME = "penguins_model_unique"

# Start the training and create your model
model = job.run(
    dataset=dataset,
    model_display_name=MODEL_DISPLAY_NAME,
    bigquery_destination=f"bq://{project_id}",
    args=CMDARGS,
)

Sebelum melanjutkan ke langkah berikutnya, pastikan hal berikut muncul dalam output perintah job.run untuk memverifikasi bahwa proses tersebut telah selesai:

CustomTrainingJob run completed.

Setelah tugas pelatihan selesai, Anda dapat men-deploy model Anda.

Men-deploy model Anda

Saat men-deploy model, Anda juga membuat resource Endpoint yang digunakan untuk membuat prediksi. Untuk men-deploy model dan membuat endpoint, jalankan kode berikut di notebook Anda:

DEPLOYED_NAME = "penguins_deployed_unique"

endpoint = model.deploy(deployed_model_display_name=DEPLOYED_NAME)

Tunggu hingga model di-deploy sebelum Anda melanjutkan ke langkah berikutnya. Setelah model Anda di-deploy, output-nya akan mencakup teks, Endpoint model deployed. Anda juga dapat mengklik Endpoints di panel navigasi kiri konsol Vertex AI dan memantau nilainya di bagian Models. Nilainya adalah 0 setelah endpoint dibuat dan sebelum model di-deploy. Setelah model di-deploy, nilai ini akan diperbarui menjadi 1.

Gambar berikut menunjukkan endpoint setelah dibuat dan sebelum model di-deploy ke sana.

Endpoint tanpa model yang di-deploy ke endpoint tersebut.

Gambar berikut menunjukkan endpoint setelah dibuat dan setelah model di-deploy ke sana.

Endpoint tanpa model yang di-deploy ke endpoint tersebut.