Penggunaan image container kustom memberikan fleksibilitas paling tinggi untuk pelatihan di Vertex AI. Untuk mempelajari perbedaan penggunaan image container kustom dengan penggunaan aplikasi pelatihan Python dengan container bawaan, baca Persyaratan kode pelatihan.
Panduan ini membahas langkah-langkah berikut:
- Membuat container kustom:
- Menulis Dockerfile yang menyiapkan container Anda agar berfungsi dengan Vertex AI dan menyertakan dependensi yang diperlukan untuk aplikasi pelatihan Anda.
- Membangun dan menjalankan container Docker secara lokal.
- Mengirim image container ke Artifact Registry
Sebelum memulai
Untuk mengonfigurasi repositori Artifact Registry API dan menyiapkan Docker di lingkungan pengembangan, ikuti Panduan Memulai Artifact Registry untuk Docker. Secara khusus, pastikan untuk menyelesaikan langkah-langkah di panduan memulai berikut:
- Sebelum memulai
- Memilih shell
- Membuat repositori Docker
- Mengonfigurasi autentikasi
Membuat image container kustom
Kami merekomendasikan dua kemungkinan alur kerja untuk membuat image container kustom:
Tulis kode pelatihan Anda. Kemudian, gunakan perintah
local-run
gcloud CLI untuk membangun dan menguji image container kustom berdasarkan kode pelatihan Anda tanpa perlu menulis Dockerfile sendiri.Alur kerja ini akan lebih mudah dipahami jika Anda tidak terbiasa dengan Docker. Jika mengikuti alur kerja ini, Anda dapat melewati bagian selanjutnya.
Tulis kode pelatihan Anda. Kemudian, tulis Dockerfile dan bangun image container berdasarkan Dockerfile tersebut. Terakhir, uji container secara lokal.
Alur kerja ini menawarkan lebih banyak fleksibilitas, karena Anda bebas menyesuaikan image container Anda.
Bagian selanjutnya akan membahas contoh alur kerja kedua.
Kode pelatihan
Anda dapat menulis kode pelatihan menggunakan dependensi apa pun dalam bahasa pemrograman apa pun. Pastikan kode Anda memenuhi persyaratan kode pelatihan. Jika Anda berencana menggunakan penyesuaian hyperparameter, GPU, atau pelatihan terdistribusi, pastikan Anda membaca bagian yang sesuai dari dokumen tersebut; bagian ini menjelaskan pertimbangan khusus untuk menggunakan fitur dengan container kustom.
Membuat Dockerfile
Buat Dockerfile guna menentukan semua petunjuk yang diperlukan untuk membangun image container Anda.
Bagian ini membahas cara membuat contoh umum Dockerfile yang akan digunakan dalam pelatihan kustom. Untuk mempelajari lebih lanjut cara membuat image container, baca panduan memulai dokumentasi Docker.
Agar berfungsi dengan Vertex AI, Dockerfile Anda harus menyertakan perintah yang mencakup tugas-tugas berikut:
- Memilih image dasar
- Menginstal dependensi tambahan
- Menyalin kode pelatihan ke image
- Mengonfigurasi titik entri untuk Vertex AI guna memanggil kode pelatihan
Dockerfile Anda dapat menyertakan logika tambahan, bergantung pada kebutuhan Anda. Untuk mengetahui informasi selengkapnya tentang setiap petunjuk tertentu, lihat referensi Dockerfile.
Perintah Dockerfile | Deskripsi | Contoh |
---|---|---|
FROM image:tag |
Menentukan image dasar beserta tag-nya. | Contoh image dasar dengan tag:
|
WORKDIR /path/to/directory |
Menentukan direktori pada image tempat petunjuk berikutnya dijalankan. | /root |
|
Menginstal paket tambahan menggunakan pip .Catatan: jika image dasar tidak memiliki |
Contoh paket:
|
COPY src/training-app.py dest/training-app.py |
Menyalin kode untuk aplikasi pelatihan Anda ke dalam image. Bergantung pada struktur aplikasi pelatihan Anda, ini kemungkinan akan mencakup beberapa file. | Contoh nama file dalam aplikasi pelatihan Anda:
|
|
Menyiapkan titik entri untuk memanggil kode pelatihan Anda agar dapat dijalankan. Saat
memulai pelatihan kustom, Anda dapat mengganti titik entri ini dengan
menentukan kolom command di ContainerSpec Anda. Anda juga dapat menentukan
kolom args di ContainerSpec untuk memberikan
argumen tambahan ke titik entri (dan mengganti petunjuk
CMD image container jika ada). |
["python", "task.py"] |
Logika di Dockerfile Anda dapat bervariasi sesuai dengan kebutuhan Anda, tetapi secara umum akan terlihat seperti ini:
# Specifies base image and tag FROM image:tag WORKDIR /root # Installs additional packages RUN pip install pkg1 pkg2 pkg3 # Downloads training data RUN curl https://example-url/path-to-data/data-filename --output /root/data-filename # Copies the trainer code to the docker image. COPY your-path-to/model.py /root/model.py COPY your-path-to/task.py /root/task.py # Sets up the entry point to invoke the trainer. ENTRYPOINT ["python", "task.py"]
(Opsional) Menyesuaikan Dockerfile untuk VM TPU
Jika ingin berlatih di Vertex AI menggunakan VM TPU, Anda harus
menyesuaikan Dockerfile untuk menginstal versi library tensorflow
dan libtpu
yang dibuat khusus. Pelajari lebih lanjut cara menyesuaikan container yang akan digunakan dengan
VM TPU.
Membangun image container
Buat URI image yang benar menggunakan variabel lingkungan, lalu bangun image Docker:
export PROJECT_ID=$(gcloud config list project --format "value(core.project)")
export REPO_NAME=REPOSITORY_NAME
export IMAGE_NAME=IMAGE_NAME
export IMAGE_TAG=IMAGE_TAG
export IMAGE_URI=us-central1-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/${IMAGE_NAME}:${IMAGE_TAG}
docker build -f Dockerfile -t ${IMAGE_URI} ./
Dalam perintah ini, ganti hal berikut:
- REPOSITORY_NAME: nama repositori Artifact Registry yang Anda buat di bagian Sebelum memulai.
- IMAGE_NAME: nama pilihan Anda untuk image container.
- IMAGE_TAG: tag pilihan Anda untuk versi image container ini.
Pelajari lebih lanjut persyaratan Artifact Registry untuk memberi nama image container.
Menjalankan container secara lokal (opsional)
Verifikasi image container dengan menjalankannya sebagai container secara lokal. Anda mungkin ingin
menjalankan kode pelatihan pada set data yang lebih kecil atau untuk jumlah iterasi
yang lebih singkat dari yang rencananya akan Anda jalankan di Vertex AI. Misalnya, jika
skrip titik entri di image container menerima flag --epochs
untuk mengontrol
jumlah epoch
yang dijalankan, Anda dapat menjalankan perintah berikut:
docker run ${IMAGE_URI} --epochs 1
Mengirim container ke Artifact Registry
Jika proses lokal berfungsi, Anda dapat mengirim container ke Artifact Registry.
Pertama, jalankan
gcloud auth configure-docker us-central1-docker.pkg.dev
jika
Anda belum melakukannya di lingkungan pengembangan Anda. Lalu,
jalankan perintah berikut:
docker push ${IMAGE_URI}
Izin Artifact Registry
Jika menggunakan image Artifact Registry dari project Google Cloud yang sama dengan tempat Anda menggunakan Vertex AI, Anda tidak perlu mengonfigurasi izin lagi. Anda dapat langsung membuat tugas pelatihan kustom yang menggunakan image container.
Namun, jika Anda telah mengirim image container ke Artifact Registry di project Google Cloud yang berbeda dengan project tempat Anda berencana menggunakan Vertex AI, Anda harus memberikan izin Vertex AI Service Agent untuk project Vertex AI Anda guna mengambil image dari project lain. Pelajari lebih lanjut Vertex AI Service Agent dan cara memberinya izin..
Artifact Registry
Untuk mempelajari cara memberi Vertex AI Service agent akses ke repositori Artifact Registry, baca dokumentasi Artifact Registry tentang memberikan izin khusus repositori.
Langkah selanjutnya
- Mempelajari lebih lanjut konsep yang terlibat dalam penggunaan container.
- Mempelajari persyaratan kode pelatihan tambahan untuk pelatihan kustom.
- Mempelajari cara membuat tugas pelatihan kustom atau pipeline pelatihan yang menggunakan container kustom Anda.