Saat menjalankan tugas pelatihan di Pelatihan AI Platform, Anda harus menentukan jumlah dan jenis mesin yang dibutuhkan. Untuk mempermudah prosesnya, Anda dapat memilih dari serangkaian spesifikasi cluster yang telah ditentukan sebelumnya yang disebut tingkat skala. Atau, Anda dapat memilih tingkat kustom dan menentukan jenis mesin sendiri.
Menentukan konfigurasi Anda
Cara menentukan konfigurasi cluster bergantung pada rencana Anda untuk menjalankan tugas pelatihan:
gcloud
Buat file konfigurasi YAML yang merepresentasikan objek TrainingInput
, dan tentukan ID tingkat skala dan jenis mesin di file konfigurasi. Anda dapat memberi nama
file ini sesuai keinginan Anda. Berdasarkan konvensi, namanya adalah config.yaml
.
Contoh berikut menunjukkan isi 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 di 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
Selain itu, Anda dapat menentukan detail konfigurasi cluster dengan tanda command line, bukan dalam file konfigurasi. Pelajari cara menggunakan flag ini lebih lanjut.
Contoh berikut menunjukkan cara mengirimkan tugas pelatihan dengan konfigurasi yang mirip seperti 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
dinamai 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 dalam hal kesesuaiannya untuk jenis pekerjaan tertentu. Umumnya, semakin canggih tingkatnya, semakin banyak mesin yang dialokasikan ke cluster, dan semakin andal spesifikasi setiap mesin virtual. Saat Anda meningkatkan kompleksitas tingkat skala, biaya per jam untuk 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 Pelatihan AI Platform | |
---|---|
BASIC
|
Satu instance pekerja. Tingkat ini cocok untuk mempelajari cara menggunakan AI Platform Training dan untuk 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 container kustom. Nama mesin Compute Engine, master: n1-highcpu-8, worker: 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 container kustom. Nama mesin Compute Engine, master: n1-highcpu-16, worker: n1-highcpu-16, server parameter: n1-highmem-8 |
BASIC_GPU
|
Satu instance pekerja dengan satu GPU NVIDIA Tesla K80. Untuk mempelajari unit pemrosesan grafis (GPU) lebih lanjut, lihat bagian pelatihan dengan GPU. Hanya gunakan tingkat skala ini jika Anda berlatih dengan TensorFlow atau menggunakan container kustom. Nama mesin Compute Engine: n1-standard-8 dengan satu GPU k80 |
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 container kustom. Nama mesin Compute Engine, master: n1-standard-4, pekerja: Cloud TPU (8 TPU v2 core) |
CUSTOM
|
Tingkat KUSTOM bukan tingkat yang ditetapkan, melainkan memungkinkan Anda menggunakan spesifikasi cluster Anda sendiri. Saat Anda menggunakan tingkat ini, tetapkan nilai untuk mengonfigurasi cluster pemrosesan sesuai dengan panduan ini:
|
Jenis mesin untuk tingkat skala kustom
Gunakan tingkat skala kustom untuk kontrol yang lebih baik atas cluster pemrosesan yang Anda gunakan untuk melatih model Anda. Tentukan konfigurasi di
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 melakukan pelatihan dengan TensorFlow atau menggunakan container kustom. Jika tugas pelatihan Anda menjalankan kode scikit-learn atau XGBoost, jangan menentukan 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 untuk masing-masing 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 agar menggunakann1-highmem-8
dan sebagian lainnya menggunakann1-highcpu-16
.Jika hanya memerlukan satu pekerja dengan konfigurasi kustom (bukan cluster penuh), Anda harus menentukan tingkat skala kustom dengan jenis mesin hanya untuk master. Dengan demikian, Anda hanya perlu 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 Compute Engine tertentu yang telah ditetapkan untuk masterType
, workerType
, parameterServerType
, dan evaluatorType
tugas Anda. Jika Anda melakukan pelatihan dengan TensorFlow atau menggunakan container kustom, Anda dapat secara opsional menggunakan berbagai jenis GPU dengan jenis mesin ini.
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, Anda dapat menentukan nama jenis mesin lama. Jenis mesin ini menyediakan vCPU dan resource memori 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 Anda menggunakan beberapa mesin, Anda tidak dapat menggabungkan jenis mesin Compute Engine dengan jenis mesin lama. Pekerja master, pekerja, server parameter, dan evaluator harus menggunakan jenis mesin dari satu grup atau grup lainnya.
Misalnya, jika 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
|
Mesin dengan banyak memori, khususnya cocok untuk server parameter jika model Anda besar (memiliki banyak lapisan atau lapisan tersembunyi dengan jumlah node yang sangat besar). Nama mesin Compute Engine: n1-highmem-8 |
complex_model_s
|
Mesin yang cocok untuk master dan pekerja cluster jika model Anda memerlukan lebih banyak komputasi daripada yang dapat ditangani mesin standar dengan memuaskan. Nama mesin Compute Engine: n1-highcpu-8 |
complex_model_m
|
Sebuah mesin dengan jumlah core sekitar dua kali lipat dan kurang lebih dua kali lipat memori kompleks_model_s. Nama mesin Compute Engine: n1-highcpu-16 |
complex_model_l
|
Sebuah mesin dengan jumlah core sekitar dua kali lipat dan kurang lebih dua kali lipat memori untuk unique_model_m. Nama mesin Compute Engine: n1-highcpu-32 |
standard_gpu
|
Mesin yang setara dengan standar yang juga menyertakan satu GPU NVIDIA Tesla K80. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan container kustom. Nama mesin Compute Engine: n1-standard-8 dengan satu GPU k80 |
complex_model_m_gpu
|
Mesin yang setara dengan kompleks_model_m yang juga menyertakan empat GPU NVIDIA Tesla K80. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan container kustom. Nama mesin Compute Engine: n1-standard-16-k80x4 |
complex_model_l_gpu
|
Mesin yang setara dengan kompleks_model_l yang juga mencakup delapan GPU NVIDIA Tesla K80. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan container kustom. Nama mesin Compute Engine: n1-standard-32-k80x8 |
standard_p100
|
Mesin yang setara dengan standar yang juga menyertakan GPU NVIDIA Tesla P100 tunggal. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan container kustom. Nama mesin Compute Engine: n1-standard-8-p100x1 |
complex_model_m_p100
|
Mesin yang setara denganComple_model_m yang juga menyertakan empat GPU NVIDIA Tesla P100. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan container kustom. Nama mesin Compute Engine: n1-standard-16-p100x4 |
standard_v100
|
Mesin yang setara dengan standar yang juga mencakup satu GPU NVIDIA Tesla V100. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan container 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 container kustom. Nama mesin Compute Engine: n1-highmem-8-v100x1 |
complex_model_m_v100
|
Mesin yang setara dengan kompleks_model_m yang juga menyertakan empat GPU NVIDIA Tesla V100. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan container kustom. Nama mesin Compute Engine: n1-standard-16-v100x4 |
complex_model_l_v100
|
Mesin yang setara dengan kompleks_model_l yang juga mencakup delapan GPU NVIDIA Tesla V100. Hanya gunakan jenis mesin ini jika Anda berlatih dengan TensorFlow atau menggunakan container 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 menambahkan beberapa GPU pilihan Anda sendiri jika menggunakan jenis mesin Compute Engine. Untuk mempelajari lebih lanjut, baca 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.