Saat menjalankan tugas pelatihan di AI Platform Training, Anda harus menentukan jumlah dan jenis mesin yang Anda butuhkan. Untuk mempermudah prosesnya, Anda dapat memilih dari serangkaian spesifikasi cluster bawaan yang disebut tingkat skala. Atau, Anda dapat memilih tingkat kustom dan menentukan jenis mesin sendiri.
Menentukan konfigurasi
Cara Anda menentukan konfigurasi cluster bergantung pada cara Anda berencana menjalankan tugas pelatihan:
gcloud
Buat file konfigurasi YAML yang mewakili objek TrainingInput
, dan tentukan ID tingkat skala dan jenis mesin dalam file konfigurasi. Anda dapat memberi nama file ini sesuai keinginan. Berdasarkan konvensi, namanya adalah config.yaml
.
Contoh berikut menunjukkan konten file konfigurasi, config.yaml
, untuk tugas dengan cluster pemrosesan kustom.
trainingInput: scaleTier: CUSTOM masterType: n1-highcpu-16 workerType: n1-highcpu-16 parameterServerType: n1-highmem-8 evaluatorType: n1-highcpu-16 workerCount: 9 parameterServerCount: 3 evaluatorCount: 1
Berikan jalur ke file YAML dalam flag --config
saat menjalankan perintah
gcloud ai-platform jobs submit training
:
gcloud ai-platform jobs submit training $JOB_NAME \ --package-path $TRAINER_PACKAGE_PATH \ --module-name $MAIN_TRAINER_MODULE \ --job-dir $JOB_DIR \ --region $REGION \ --config config.yaml \ -- \ --user_first_arg=first_arg_value \ --user_second_arg=second_arg_value
Atau, Anda dapat menentukan detail konfigurasi cluster dengan flag command line, bukan dalam file konfigurasi. Pelajari lebih lanjut cara menggunakan flag ini.
Contoh berikut menunjukkan cara mengirimkan tugas pelatihan dengan konfigurasi yang mirip dengan contoh sebelumnya, tetapi tanpa menggunakan file konfigurasi:
gcloud ai-platform jobs submit training $JOB_NAME \
--package-path $TRAINER_PACKAGE_PATH \
--module-name $MAIN_TRAINER_MODULE \
--job-dir $JOB_DIR \
--region $REGION \
--scale-tier custom \
--master-machine-type n1-highcpu-16 \
--worker-machine-type n1-highcpu-16 \
--parameter-server-machine-type n1-highmem-8 \
--worker-count 9 \
--parameter-server-count 3 \
-- \
--user_first_arg=first_arg_value \
--user_second_arg=second_arg_value
Lihat detail selengkapnya tentang cara menjalankan tugas pelatihan.
Python
Tentukan ID tingkat skala dan jenis mesin di objek TrainingInput
dalam konfigurasi tugas Anda.
Contoh berikut menunjukkan cara membuat representasi Tugas untuk tugas dengan cluster pemrosesan kustom.
training_inputs = {'scaleTier': 'CUSTOM', 'masterType': 'n1-highcpu-16', 'workerType': 'n1-highcpu-16', 'parameterServerType': 'n1-highmem-8', 'evaluatorType': 'n1-highcpu-16', 'workerCount': 9, 'parameterServerCount': 3, 'evaluatorCount': 1, 'packageUris': ['gs://my/trainer/path/package-0.0.0.tar.gz'], 'pythonModule': 'trainer.task' 'args': ['--arg1', 'value1', '--arg2', 'value2'], 'region': 'us-central1', 'jobDir': 'gs://my/training/job/directory', 'runtimeVersion': '2.11', 'pythonVersion': '3.7'} job_spec = {'jobId': my_job_name, 'trainingInput': training_inputs}
Perhatikan bahwa training_inputs
dan job_spec
adalah ID arbitrer: Anda
dapat memberi nama kamus ini sesuai keinginan. Namun, kunci kamus
harus diberi nama persis seperti yang ditunjukkan, agar cocok dengan nama dalam resource Job
dan TrainingInput
.
Tingkat skala
Google dapat mengoptimalkan konfigurasi tingkat skala untuk berbagai tugas dari waktu ke waktu, berdasarkan masukan pelanggan dan ketersediaan resource cloud. Setiap tingkat skala ditentukan berdasarkan kesesuaiannya untuk jenis pekerjaan tertentu. Secara umum, semakin canggih tingkatnya, semakin banyak mesin yang dialokasikan ke cluster, dan semakin canggih spesifikasi setiap virtual machine. Saat Anda meningkatkan kompleksitas tingkat skala, biaya per jam tugas pelatihan, yang diukur dalam unit pelatihan, juga akan meningkat. Lihat halaman harga untuk menghitung biaya tugas Anda.
AI Platform Training tidak mendukung pelatihan terdistribusi atau pelatihan dengan akselerator
untuk kode scikit-learn atau XGBoost. Jika tugas pelatihan Anda menjalankan kode scikit-learn atau
XGBoost, Anda harus menetapkan tingkat skala ke BASIC
atau CUSTOM
.
Berikut adalah ID tingkat skala:
Tingkat skala AI Platform Training | |
---|---|
BASIC
|
Satu instance pekerja. Tingkat ini cocok untuk mempelajari cara menggunakan AI Platform Training dan bereksperimen dengan model baru menggunakan set data kecil. Nama mesin Compute Engine: n1-standard-4 |
STANDARD_1
|
Satu instance master, ditambah empat pekerja, dan tiga server parameter. Hanya gunakan tingkat skala ini jika Anda berlatih dengan TensorFlow atau menggunakan penampung kustom. Nama mesin Compute Engine, master: n1-highcpu-8, pekerja: n1-highcpu-8, server parameter: n1-standard-4 |
PREMIUM_1
|
Satu instance master, ditambah 19 pekerja, dan 11 server parameter. Hanya gunakan tingkat skala ini jika Anda berlatih dengan TensorFlow atau menggunakan penampung kustom. Nama mesin Compute Engine, master: n1-highcpu-16, pekerja: n1-highcpu-16, server parameter: n1-highmem-8 |
BASIC_GPU
|
Satu instance pekerja dengan satu GPU. Untuk mempelajari unit pemrosesan grafis (GPU) lebih lanjut, lihat bagian tentang pelatihan dengan GPU. Hanya gunakan tingkat skala ini jika Anda melakukan pelatihan dengan TensorFlow atau menggunakan penampung kustom. Nama mesin Compute Engine: n1-standard-8 dengan satu GPU |
BASIC_TPU
|
VM master dan Cloud TPU dengan delapan core TPU v2. Lihat cara menggunakan TPU untuk tugas pelatihan Anda. Hanya gunakan tingkat skala ini jika Anda berlatih dengan TensorFlow atau menggunakan penampung kustom. Nama mesin Compute Engine, master: n1-standard-4, pekerja: Cloud TPU (8 core TPU v2) |
CUSTOM
|
Tingkat CUSTOM bukan tingkat yang ditetapkan, tetapi memungkinkan Anda menggunakan spesifikasi cluster Anda sendiri. Saat menggunakan tingkat ini, tetapkan nilai untuk mengonfigurasi cluster pemrosesan sesuai dengan panduan berikut:
|
Jenis mesin untuk tingkat skala kustom
Gunakan tingkat skala kustom untuk kontrol yang lebih baik atas cluster pemrosesan yang Anda
gunakan untuk melatih model. Tentukan konfigurasi dalam objek TrainingInput
dalam konfigurasi tugas Anda. Jika Anda
menggunakan perintah gcloud ai-platform jobs submit training
untuk mengirimkan tugas pelatihan, Anda dapat menggunakan ID yang sama:
Tetapkan tingkat skala (
scaleTier
) keCUSTOM
.Tetapkan nilai untuk jumlah pekerja (
workerCount
), server parameter (parameterServerCount
), dan evaluator (evaluatorCount
) yang Anda perlukan.AI Platform Training hanya mendukung pelatihan terdistribusi saat Anda berlatih dengan TensorFlow atau menggunakan container kustom. Jika tugas pelatihan Anda menjalankan kode scikit-learn atau XGBoost, jangan tentukan pekerja, server parameter, atau evaluator.
Tetapkan jenis mesin untuk pekerja master (
masterType
). Jika Anda telah memilih untuk menggunakan pekerja, server parameter, atau evaluator, tetapkan jenis mesin untuknya di kolomworkerType
,parameterServerType
, danevaluatorType
.Anda dapat menentukan jenis mesin yang berbeda untuk
masterType
,workerType
,parameterServerType
, danevaluatorType
, tetapi Anda tidak dapat menggunakan jenis mesin yang berbeda untuk setiap instance. Misalnya, Anda dapat menggunakan jenis mesinn1-highmem-8
untuk server parameter, tetapi Anda tidak dapat menetapkan beberapa server parameter untuk menggunakann1-highmem-8
dan beberapa server parameter untuk menggunakann1-highcpu-16
.Jika hanya memerlukan satu pekerja dengan konfigurasi kustom (bukan cluster lengkap), Anda harus menentukan tingkat skala kustom dengan jenis mesin hanya untuk master. Tindakan ini hanya akan memberi Anda satu pekerja. Berikut adalah contoh file
config.yaml
:trainingInput: scaleTier: CUSTOM masterType: n1-highcpu-16
Jenis mesin Compute Engine
Anda dapat menggunakan nama jenis mesin standar Compute Engine tertentu untuk
masterType
, workerType
, parameterServerType
, dan
evaluatorType
tugas Anda. Jika melakukan pelatihan dengan TensorFlow atau menggunakan penampung kustom,
Anda dapat menggunakan berbagai jenis GPU dengan
jenis mesin ini secara opsional.
Daftar berikut berisi ID jenis mesin Compute Engine yang dapat Anda gunakan untuk tugas pelatihan:
e2-standard-4
e2-standard-8
e2-standard-16
e2-standard-32
e2-highmem-2
e2-highmem-4
e2-highmem-8
e2-highmem-16
e2-highcpu-16
e2-highcpu-32
n2-standard-4
n2-standard-8
n2-standard-16
n2-standard-32
n2-standard-48
n2-standard-64
n2-standard-80
n2-highmem-2
n2-highmem-4
n2-highmem-8
n2-highmem-16
n2-highmem-32
n2-highmem-48
n2-highmem-64
n2-highmem-80
n2-highcpu-16
n2-highcpu-32
n2-highcpu-48
n2-highcpu-64
n2-highcpu-80
n1-standard-4
n1-standard-8
n1-standard-16
n1-standard-32
n1-standard-64
n1-standard-96
n1-highmem-2
n1-highmem-4
n1-highmem-8
n1-highmem-16
n1-highmem-32
n1-highmem-64
n1-highmem-96
n1-highcpu-16
n1-highcpu-32
n1-highcpu-64
n1-highcpu-96
c2-standard-4
c2-standard-8
c2-standard-16
c2-standard-30
c2-standard-60
m1-ultramem-40
m1-ultramem-80
m1-ultramem-160
m1-megamem-96
a2-highgpu-1g
* (pratinjau)a2-highgpu-2g
* (pratinjau)a2-highgpu-4g
* (pratinjau)a2-highgpu-8g
* (pratinjau)a2-megagpu-16g
* (pratinjau)
Untuk mempelajari spesifikasi teknis setiap jenis mesin, baca Dokumentasi Compute Engine tentang jenis mesin.
Jenis mesin lama
Daripada menggunakan jenis mesin Compute Engine untuk tugas, Anda dapat menentukan nama jenis mesin lama. Jenis mesin ini menyediakan resource memori dan vCPU yang sama dengan jenis mesin Compute Engine yang setara, tetapi memiliki batasan konfigurasi tambahan:
Anda tidak dapat menyesuaikan penggunaan GPU menggunakan
acceleratorConfig
. Namun, beberapa jenis mesin lama menyertakan GPU. Lihat tabel berikut.Jika konfigurasi tugas pelatihan menggunakan beberapa mesin, Anda tidak dapat mencampurkan jenis mesin Compute Engine dengan jenis mesin lama. Pekerja master, pekerja, server parameter, dan evaluator Anda harus menggunakan jenis mesin dari satu grup atau grup lainnya.
Misalnya, jika Anda mengonfigurasi
masterType
menjadin1-highcpu-32
(jenis mesin Compute Engine), Anda tidak dapat menetapkanworkerType
kecomplex_model_m
(jenis mesin lama), tetapi Anda dapat menetapkannya ken1-highcpu-16
(jenis mesin Compute Engine lainnya).
Tabel berikut menjelaskan jenis mesin lama:
Jenis mesin lama | |
---|---|
standard
|
Konfigurasi mesin dasar yang cocok untuk melatih model sederhana dengan set data kecil hingga sedang. Nama mesin Compute Engine: n1-standard-4 |
large_model
|
Komputer dengan banyak memori, yang sangat cocok untuk server parameter jika model Anda besar (memiliki banyak lapisan tersembunyi atau lapisan dengan jumlah node yang sangat besar). Nama mesin Compute Engine: n1-highmem-8 |
complex_model_s
|
Mesin yang cocok untuk master dan pekerja cluster saat model Anda memerlukan lebih banyak komputasi daripada yang dapat ditangani oleh mesin standar dengan memuaskan. Nama mesin Compute Engine: n1-highcpu-8 |
complex_model_m
|
Mesin dengan jumlah core kira-kira dua kali lipat dan memori complex_model_s kira-kira dua kali lipat. Nama mesin Compute Engine: n1-highcpu-16 |
complex_model_l
|
Mesin dengan jumlah core kira-kira dua kali lipat dan memori complex_model_m kira-kira dua kali lipat. Nama mesin Compute Engine: n1-highcpu-32 |
standard_gpu
|
Mesin yang setara dengan standar yang juga menyertakan satu GPU. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan penampung kustom. Nama mesin Compute Engine: n1-standard-8 dengan satu GPU |
complex_model_m_gpu
|
Mesin yang setara dengan complex_model_m yang juga menyertakan empat GPU. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan penampung kustom. Nama mesin Compute Engine: n1-standard-16 dengan 4 GPU |
complex_model_l_gpu
|
Mesin yang setara dengan complex_model_l yang juga menyertakan delapan GPU. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan penampung kustom. Nama mesin Compute Engine: n1-standard-32 dengan 8 GPU |
standard_p100
|
Mesin yang setara dengan standar yang juga menyertakan satu GPU NVIDIA Tesla P100. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan penampung kustom. Nama mesin Compute Engine: n1-standard-8-p100x1 |
complex_model_m_p100
|
Mesin yang setara dengan complex_model_m yang juga menyertakan empat GPU NVIDIA Tesla P100. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan penampung kustom. Nama mesin Compute Engine: n1-standard-16-p100x4 |
standard_v100
|
Mesin yang setara dengan standar yang juga menyertakan satu GPU NVIDIA Tesla V100. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan penampung kustom. Nama mesin Compute Engine: n1-standard-8-v100x1 |
large_model_v100
|
Mesin yang setara dengan large_model yang juga menyertakan satu GPU NVIDIA Tesla V100. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan penampung kustom. Nama mesin Compute Engine: n1-highmem-8-v100x1 |
complex_model_m_v100
|
Mesin yang setara dengan complex_model_m yang juga menyertakan empat GPU NVIDIA Tesla V100. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan penampung kustom. Nama mesin Compute Engine: n1-standard-16-v100x4 |
complex_model_l_v100
|
Mesin yang setara dengan complex_model_l yang juga menyertakan delapan GPU NVIDIA Tesla V100. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan penampung kustom. Nama mesin Compute Engine: n1-standard-32-v100x8 |
Pelatihan dengan GPU dan TPU
Beberapa tingkat skala dan jenis mesin lama menyertakan unit pemrosesan grafis (GPU). Anda juga dapat memasang beberapa GPU pilihan Anda sendiri jika menggunakan jenis mesin Compute Engine. Untuk mempelajari lebih lanjut, baca artikel tentang pelatihan dengan GPU.
Untuk melakukan pelatihan dengan Tensor Processing Unit (TPU), Anda harus menggunakan
tingkat skala BASIC_TPU
atau jenis mesin cloud_tpu
. Jenis mesin cloud_tpu
memiliki opsi konfigurasi khusus: Anda dapat menggunakannya bersama dengan jenis mesin Compute Engine atau dengan jenis mesin lama, dan Anda dapat mengonfigurasinya untuk menggunakan 8 core TPU v2 atau 8 core TPU v3. Baca cara menggunakan
TPU untuk tugas
pelatihan Anda.