Panduan pemula ini adalah pengantar pelatihan kustom tentang Vertex AI. Pelatihan kustom mengacu pada pelatihan model menggunakan framework ML seperti TensorFlow, PyTorch, atau XGBoost.
Tujuan Pembelajaran
Tingkat pengalaman Vertex AI: Pemula
Perkiraan waktu baca: 15 menit
Apa yang akan Anda pelajari:
- Manfaat menggunakan layanan terkelola untuk pelatihan kustom.
- Praktik terbaik untuk mengemas kode pelatihan.
- Cara mengirim dan memantau tugas pelatihan.
Mengapa menggunakan layanan pelatihan terkelola?
Bayangkan Anda sedang menangani masalah ML baru. Anda membuka notebook, mengimpor data, lalu menjalankan eksperimen. Dalam skenario ini, Anda membuat model dengan framework ML pilihan Anda, dan mengeksekusi sel notebook untuk menjalankan loop pelatihan. Setelah pelatihan selesai, Anda mengevaluasi hasil model, membuat perubahan, lalu menjalankan kembali pelatihan. Alur kerja ini berguna untuk eksperimen, tetapi saat Anda mulai berpikir untuk membangun aplikasi produksi dengan ML, Anda mungkin menyadari bahwa mengeksekusi sel notebook secara manual tidak begitu praktis.
Misalnya, jika set data dan model Anda berukuran besar, ada baiknya menggunakan pelatihan terdistribusi. Selain itu, dalam setelan produksi, Anda tidak mungkin hanya perlu melatih model satu kali. Seiring waktu, Anda akan melatih kembali model untuk memastikan bahwa model tersebut tetap baru dan terus memberikan hasil yang berharga. Saat Anda ingin mengotomatiskan eksperimen dalam skala besar, atau melatih kembali model untuk aplikasi produksi, layanan pelatihan terkelola untuk ML dapat menyederhanakan alur kerja Anda.
Panduan ini menyediakan pengantar pelatihan model kustom di Vertex AI. Karena layanan pelatihan terkelola sepenuhnya, Vertex AI akan otomatis menyediakan resource komputasi, melakukan tugas pelatihan, dan memastikan resource komputasi dihapus setelah tugas pelatihan selesai. Perlu diperhatikan bahwa terdapat penyesuaian, fitur, dan cara tambahan untuk berinteraksi dengan layanan yang tidak dibahas di sini. Panduan ini dimaksudkan untuk memberikan ringkasan. Untuk mengetahui detail selengkapnya, lihat dokumentasi Vertex AI Training.
Ringkasan pelatihan kustom
Saat melatih model kustom di Vertex AI, ikuti alur kerja standar berikut:
Mengemas kode aplikasi pelatihan.
Mengonfigurasi dan mengirim tugas pelatihan kustom.
Memantau tugas pelatihan kustom.
Mengemas kode aplikasi pelatihan
Tugas pelatihan kustom pada Vertex AI dijalankan menggunakan container. Container merupakan paket kode aplikasi Anda, dalam hal ini kode pelatihan Anda, bersama dengan dependensi seperti versi library tertentu yang diperlukan untuk menjalankan kode Anda. Selain membantu pengelolaan dependensi, container dapat berjalan hampir di mana saja, sehingga meningkatkan portabilitas. Salah satu langkah penting dalam memindahkan aplikasi ML Anda dari prototype ke produksi adalah mengemas kode pelatihan Anda beserta parameter dan dependensinya ke dalam container agar menjadi komponen yang portabel.
Sebelum dapat meluncurkan tugas pelatihan kustom, Anda harus mengemas aplikasi pelatihan Anda. Aplikasi pelatihan dalam hal ini mengacu pada satu atau beberapa file yang menjalankan tugas seperti memuat data, melakukan prapemrosesan data, menentukan model, dan mengeksekusi loop pelatihan. Layanan pelatihan Vertex AI akan menjalankan kode apa pun yang Anda berikan, sehingga Anda bebas menentukan langkah apa yang akan disertakan dalam aplikasi pelatihan Anda.
Vertex AI menyediakan container bawaan untuk TensorFlow, PyTorch, XGBoost, dan Scikit-learn. Container ini diupdate secara berkala dan menyertakan library umum yang mungkin Anda perlukan dalam kode pelatihan Anda. Anda dapat memilih untuk menjalankan kode pelatihan menggunakan salah satu container ini, atau membuat container kustom yang berisi kode pelatihan Anda beserta dependensinya yang sudah diinstal sebelumnya.
Terdapat tiga opsi untuk mengemas kode Anda di Vertex AI:
- Mengirim satu file Python.
- Membuat distribusi sumber Python.
- Menggunakan container kustom.
File python
Opsi ini cocok untuk eksperimen singkat. Anda dapat menggunakan opsi ini jika semua kode yang diperlukan untuk mengeksekusi aplikasi pelatihan ada dalam satu file Python dan salah satu container bawaan pelatihan Vertex AI memiliki semua library yang diperlukan untuk menjalankan aplikasi Anda. Untuk contoh mengemas aplikasi pelatihan sebagai satu file Python, lihat tutorial notebook Pelatihan kustom dan prediksi batch.
Distribusi Sumber Python
Anda dapat membuat Distribusi Sumber Python yang berisi aplikasi pelatihan Anda. Anda akan menyimpan distribusi sumber dengan kode pelatihan dan dependensi di bucket Cloud Storage. Untuk contoh pengemasan aplikasi pelatihan sebagai Distribusi Sumber Python, lihat tutorial notebook Melatih, menyesuaikan, dan men-deploy model klasifikasi PyTorch.
Container Kustom
Opsi ini berguna jika Anda menginginkan lebih banyak kontrol atas aplikasi Anda, atau mungkin ingin menjalankan kode yang tidak ditulis dalam Python. Dalam hal ini, Anda harus menulis Dockerfile, membangun image kustom, dan mengirimnya ke Artifact Registry. Untuk contoh menyimpan aplikasi pelatihan dalam container, lihat tutorial notebook Membuat profil performa pelatihan model menggunakan Profiler.
Rekomendasi struktur aplikasi pelatihan
Jika Anda memilih untuk mengemas kode sebagai distribusi sumber Python atau sebagai container kustom, sebaiknya susun aplikasi Anda seperti berikut:
training-application-dir/
....setup.py
....Dockerfile
trainer/
....task.py
....model.py
....utils.py
Buat direktori untuk menyimpan semua kode aplikasi pelatihan, dalam hal
ini, training-application-dir
. Direktori ini akan berisi file setup.py
jika Anda menggunakan Distribusi Sumber Python, atau Dockerfile
jika Anda menggunakan
container kustom.
Dalam kedua skenario tersebut, direktori tingkat tinggi ini juga akan berisi subdirektori
trainer
, yang berisi semua kode untuk mengeksekusi pelatihan. Dalam trainer
,
task.py
adalah titik entri utama ke aplikasi Anda. File ini mengeksekusi pelatihan
model. Anda dapat memilih untuk menempatkan semua kode dalam file ini, tetapi untuk
aplikasi produksi, Anda kemungkinan memiliki file tambahan, misalnya
model.py
, data.py
, utils.py
.
Menjalankan pelatihan kustom
Tugas pelatihan di Vertex AI akan otomatis menyediakan resource komputasi, mengeksekusi kode aplikasi pelatihan, dan memastikan resource komputasi dihapus setelah tugas pelatihan selesai.
Saat membuat alur kerja yang lebih rumit, Anda kemungkinan akan menggunakan Vertex AI SDK untuk Python guna mengonfigurasi, mengirim, dan memantau tugas pelatihan Anda. Namun, saat Anda pertama kali menjalankan tugas pelatihan kustom, Anda dapat menggunakan konsol Google Cloud agar lebih mudah.
- Buka Pelatihan di bagian Vertex AI pada konsol Cloud. Anda dapat membuat tugas pelatihan baru dengan mengklik tombol BUAT.
- Di bagian Metode pelatihan model, pilih Pelatihan kustom (lanjutan).
- Di bagian Container Pelatihan, pilih container kustom atau container bawaan, bergantung pada cara Anda mengemas aplikasi.
- Di bagian Komputasi dan harga, tentukan hardware untuk tugas pelatihan. Untuk pelatihan node tunggal, Anda hanya perlu mengonfigurasi Kumpulan Worker 0. Jika Anda ingin menjalankan pelatihan terdistribusi, Anda harus memahami kumpulan worker lainnya, dan mempelajari Pelatihan terdistribusi lebih lanjut.
Mengonfigurasi container prediksi bersifat opsional. Jika Anda hanya ingin melatih model pada Vertex AI dan mengakses artefak model tersimpan yang dihasilkan, Anda dapat melewati langkah ini. Jika Anda ingin menghosting dan men-deploy model yang dihasilkan di layanan prediksi terkelola Vertex AI, Anda harus mengonfigurasi container prediksi. Pelajari lebih lanjut container prediksi di sini.
Memantau Tugas pelatihan
Anda dapat memantau tugas pelatihan di konsol Google Cloud. Anda akan melihat daftar semua tugas yang telah berjalan. Anda dapat mengklik tugas tertentu dan memeriksa log jika terjadi kesalahan.