Halaman ini menjelaskan cara penampung kustom mendukung struktur pelatihan terdistribusi di AI Platform Training.
Dengan penampung kustom, Anda dapat melakukan pelatihan terdistribusi dengan framework ML apa pun yang mendukung distribusi. Meskipun terminologi yang digunakan di sini didasarkan pada model terdistribusi TensorFlow, Anda dapat menggunakan framework ML lain yang memiliki struktur distribusi serupa. Misalnya, pelatihan terdistribusi di MXNet menggunakan penjadwal, pekerja, dan server. Hal ini sesuai dengan struktur pelatihan terdistribusi dari penampung kustom AI Platform Training, yang menggunakan master, pekerja, dan server parameter.
Struktur cluster pelatihan
Jika menjalankan tugas pelatihan terdistribusi dengan AI Platform Training, Anda akan menentukan beberapa mesin (node) dalam cluster pelatihan. Layanan pelatihan mengalokasikan resource untuk jenis mesin yang Anda tentukan. Tugas Anda yang sedang berjalan pada node tertentu disebut replika. Sesuai dengan model TensorFlow terdistribusi, setiap replika dalam cluster pelatihan diberi satu peran atau tugas dalam pelatihan terdistribusi:
Pekerja master: Hanya satu replika yang ditetapkan sebagai pekerja master (juga dikenal sebagai pekerja utama). Tugas ini mengelola tugas lainnya dan melaporkan status untuk tugas secara keseluruhan.
Pekerja: Satu atau beberapa replika dapat ditetapkan sebagai pekerja. Replika ini melakukan bagian tugasnya seperti yang Anda tetapkan dalam konfigurasi tugas.
Server parameter: Satu atau beberapa replika dapat ditetapkan sebagai server parameter. Replika ini menyimpan parameter model dan mengoordinasikan status model bersama antar-worker.
Evaluator: Satu atau beberapa replika dapat ditetapkan sebagai evaluator. Replika ini dapat digunakan untuk mengevaluasi model Anda. Jika Anda menggunakan TensorFlow, perhatikan bahwa TensorFlow umumnya mengharapkan Anda menggunakan tidak lebih dari satu evaluator.
Pemetaan API
Empat peran berbeda yang dapat Anda tetapkan ke mesin di cluster pelatihan
sesuai dengan empat kolom yang dapat Anda tentukan di TrainingInput
,
yang mewakili parameter input untuk tugas pelatihan:
masterConfig.imageUri
mewakili URI image container yang akan dijalankan di pekerja master.workerConfig.imageUri
,parameterServerConfig.imageUri
, danevaluatorConfig.imageUri
masing-masing mewakili URI image container yang akan dijalankan di pekerja, server parameter, dan evaluator. Jika tidak ada nilai yang ditetapkan untuk kolom ini, Pelatihan AI Platform akan menggunakan nilaimasterConfig.imageUri
.
Anda juga dapat menetapkan nilai untuk setiap kolom ini dengan flag
yang sesuai di gcloud ai-platform jobs submit training
:
- Untuk konfigurasi pekerja utama, gunakan
--master-image-uri
. - Untuk konfigurasi pekerja, gunakan
--worker-image-uri
. - Untuk konfigurasi server parameter, gunakan
--parameter-server-image-uri
. - Saat ini tidak ada flag untuk menentukan URI image container bagi evaluator. Anda dapat menentukan
evaluatorConfig.imageUri
dalam file konfigurasi config.yaml.
Lihat contoh cara mengirimkan tugas pelatihan terdistribusi dengan penampung kustom.
Memahami CLUSTER_SPEC
AI Platform Training mengisi variabel lingkungan, CLUSTER_SPEC
, di
setiap replika untuk mendeskripsikan cara keseluruhan cluster disiapkan. Seperti TF_CONFIG
TensorFlow, CLUSTER_SPEC
menjelaskan setiap replika dalam cluster,
termasuk indeks dan perannya (pekerja master, pekerja, server parameter, atau evaluator).
Saat Anda menjalankan pelatihan terdistribusi dengan TensorFlow, TF_CONFIG
akan diurai menjadi tf.train.ClusterSpec
.
Demikian pula, saat menjalankan pelatihan terdistribusi dengan framework ML lain, Anda harus mengurai CLUSTER_SPEC
untuk mengisi variabel atau setelan lingkungan yang diperlukan oleh framework.
Format CLUSTER_SPEC
Variabel lingkungan CLUSTER_SPEC
adalah string JSON dengan format berikut:
Kunci | Deskripsi | |
---|---|---|
"cluster"
|
Deskripsi cluster untuk container kustom Anda. Seperti halnya `TF_CONFIG`, objek ini diformat sebagai spesifikasi cluster TensorFlow, dan dapat diteruskan ke konstruktor tf.train.ClusterSpec. | |
"task"
|
Menjelaskan tugas node tertentu tempat kode Anda dijalankan. Anda dapat menggunakan informasi ini untuk menulis kode bagi pekerja tertentu dalam tugas yang didistribusikan. Entri ini merupakan kamus dengan kunci berikut: | |
"type"
|
Jenis tugas yang dilakukan oleh node ini. Nilai yang mungkin adalah
master , worker , ps , dan
evaluator .
|
|
"index"
|
Indeks tugas berbasis nol. Sebagian besar tugas pelatihan terdistribusi memiliki satu tugas master, satu atau beberapa server parameter, dan satu atau beberapa pekerja. | |
"trial"
|
ID uji coba penyesuaian hyperparameter yang saat ini berjalan. Saat mengonfigurasi penyesuaian hyperparameter untuk tugas, Anda akan menetapkan jumlah uji coba untuk dilatih. Nilai ini memberi Anda cara untuk membedakan kode antara uji coba yang sedang berjalan. ID adalah nilai string yang berisi nomor uji coba, mulai dari 1. | |
"job"
|
Parameter tugas yang Anda gunakan saat memulai tugas. Pada umumnya, Anda dapat mengabaikan entri ini, karena entri ini mereplikasi data yang diteruskan ke aplikasi Anda melalui argumen command line-nya. |
Perbandingan dengan TF_CONFIG
Perhatikan bahwa AI Platform Training juga menetapkan variabel lingkungan
TF_CONFIG
pada setiap replika semua tugas pelatihan. AI Platform Training hanya menetapkan variabel lingkungan CLUSTER_SPEC
pada replika tugas pelatihan penampung kustom. Kedua variabel lingkungan memiliki beberapa nilai yang sama, tetapi memiliki
format yang berbeda.
Saat Anda melakukan pelatihan dengan penampung kustom, replika master diberi label di variabel lingkungan TF_CONFIG
dengan nama tugas master
secara default. Anda dapat
mengonfigurasinya agar diberi label dengan nama tugas chief
sebagai gantinya dengan
menetapkan
kolom
trainingInput.useChiefInTfConfig
ke true
saat membuat tugas pelatihan, atau dengan menggunakan satu atau beberapa replika evaluator dalam tugas Anda. Hal ini sangat membantu jika penampung kustom Anda menggunakan TensorFlow 2.
Selain opsi konfigurasi ini, pelatihan terdistribusi dengan TensorFlow berfungsi dengan cara yang sama saat Anda menggunakan container kustom seperti saat Anda menggunakan versi runtime Pelatihan AI Platform. Lihat detail dan contoh selengkapnya tentang cara menggunakan TF_CONFIG
untuk
pelatihan terdistribusi di Pelatihan AI Platform.
Langkah selanjutnya
- Pelajari cara menggunakan container kustom untuk tugas pelatihan Anda.
- Latih model PyTorch menggunakan penampung kustom.