Menentukan jenis mesin atau tingkat skala

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:

  • Anda harus menetapkan TrainingInput.masterType untuk menentukan jenis mesin yang akan digunakan untuk node master. Ini adalah satu-satunya setelan yang diperlukan. Lihat jenis mesin yang dijelaskan di bawah.
  • Anda dapat menetapkan TrainingInput.workerCount untuk menentukan jumlah pekerja yang akan digunakan. Jika menentukan satu atau beberapa pekerja, Anda juga harus menetapkan TrainingInput.workerType untuk menentukan jenis mesin yang akan digunakan bagi node pekerja. Hanya tentukan worker jika Anda melakukan pelatihan dengan TensorFlow atau menggunakan container kustom.
  • Anda dapat menetapkan TrainingInput.parameterServerCount untuk menentukan jumlah server parameter yang akan digunakan. Jika menentukan satu atau beberapa server parameter, Anda juga harus menetapkan TrainingInput.parameterServerType untuk menentukan jenis mesin yang akan digunakan untuk server parameter. Hanya tentukan server parameter jika Anda melakukan pelatihan dengan TensorFlow atau menggunakan container kustom.
  • Anda dapat menetapkan TrainingInput.evaluatorCount untuk menentukan jumlah evaluator yang akan digunakan. Jika menentukan satu atau beberapa evaluator, Anda juga harus menetapkan TrainingInput.evaluatorType untuk menentukan jenis mesin yang akan digunakan bagi evaluator. Hanya tentukan evaluator jika Anda berlatih dengan TensorFlow atau menggunakan container kustom.

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) ke CUSTOM.

  • 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 kolom workerType, parameterServerType, dan evaluatorType.

    Anda dapat menentukan jenis mesin yang berbeda untuk masterType, workerType, parameterServerType, dan evaluatorType, tetapi Anda tidak dapat menggunakan jenis mesin yang berbeda untuk setiap instance. Misalnya, Anda dapat menggunakan jenis mesin n1-highmem-8 untuk server parameter, tetapi Anda tidak dapat menetapkan beberapa server parameter agar menggunakan n1-highmem-8 dan sebagian lainnya menggunakan n1-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 menjadi n1-highcpu-32 (jenis mesin Compute Engine), Anda tidak dapat menetapkan workerType ke complex_model_m (jenis mesin lama), tetapi Anda dapat menetapkannya ke n1-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.

Langkah selanjutnya