Menjadwalkan tugas pelatihan berdasarkan ketersediaan resource

Untuk tugas pelatihan kustom yang meminta resource GPU, Dynamic Workload Scheduler memungkinkan Anda menjadwalkan tugas berdasarkan kapan resource GPU yang diminta tersedia. Halaman ini menunjukkan cara menjadwalkan tugas pelatihan kustom menggunakan Dynamic Workload Scheduler, dan cara menyesuaikan perilaku penjadwalan di Vertex AI.

Sebaiknya gunakan Dynamic Workload Scheduler untuk menjadwalkan tugas pelatihan kustom dalam situasi berikut:

  • Tugas pelatihan kustom meminta GPU A100 atau H100 dan Anda ingin menjalankan tugas segera setelah resource yang diminta tersedia. Misalnya, saat Vertex AI mengalokasikan resource GPU di luar jam sibuk.
  • Workload Anda memerlukan beberapa node dan tidak dapat mulai berjalan hingga semua node GPU disediakan dan siap secara bersamaan. Misalnya, Anda membuat tugas pelatihan terdistribusi.

Persyaratan

Untuk menggunakan Dynamic Workload Scheduler, tugas pelatihan kustom Anda harus memenuhi persyaratan berikut:

  • Tugas pelatihan kustom Anda memiliki timeout maksimum 7 hari atau kurang.
  • Tugas pelatihan kustom Anda menggunakan konfigurasi mesin yang sama untuk semua kumpulan pekerja.

Jenis tugas yang didukung

Semua jenis tugas pelatihan kustom didukung, termasuk CustomJob, HyperparameterTuningjob, dan TrainingPipeline.

Mengaktifkan Dynamic Workload Scheduler di tugas pelatihan kustom Anda

Untuk mengaktifkan Dynamic Workload Scheduler dalam tugas pelatihan kustom, tetapkan kolom API scheduling.strategy ke FLEX_START saat Anda membuat tugas.

Untuk mengetahui detail tentang cara membuat tugas pelatihan kustom, lihat link berikut.

Mengonfigurasi durasi untuk menunggu ketersediaan resource

Anda dapat mengonfigurasi berapa lama tugas dapat menunggu resource di kolom scheduling.maxWaitDuration. Nilai 0 berarti tugas menunggu tanpa batas hingga resource yang diminta tersedia. Nilai defaultnya adalah 1 hari.

Contoh

Contoh berikut menunjukkan cara mengaktifkan Dynamic Workload Scheduler untuk customJob. Pilih tab untuk antarmuka yang ingin Anda gunakan.

gcloud

Saat mengirimkan tugas menggunakan Google Cloud CLI, tambahkan kolom scheduling.strategy di file config.yaml.

Contoh file konfigurasi YAML:

workerPoolSpecs:
  machineSpec:
    machineType: n1-highmem-2
  replicaCount: 1
  containerSpec:
    imageUri: gcr.io/ucaip-test/ucaip-training-test
    args:
    - port=8500
    command:
    - start
scheduling:
  strategy: FLEX_START
  maxWaitDuration: 1800s

python

Saat mengirimkan tugas menggunakan Vertex AI SDK untuk Python, tetapkan kolom scheduling_strategy dalam metode pembuatan CustomJob yang relevan.

from google.cloud.aiplatform_v1.types import custom_job as gca_custom_job_compat

def create_custom_job_with_dws_sample(
    project: str,
    location: str,
    staging_bucket: str,
    display_name: str,
    script_path: str,
    container_uri: str,
    service_account: str,
    experiment: str,
    experiment_run: Optional[str] = None,
) -> None:
    aiplatform.init(project=project, location=location, staging_bucket=staging_bucket, experiment=experiment)

    job = aiplatform.CustomJob.from_local_script(
        display_name=display_name,
        script_path=script_path,
        container_uri=container_uri,
        enable_autolog=True,
    )

    job.run(
        service_account=service_account,
        experiment=experiment,
        experiment_run=experiment_run,
        max_wait_duration=1800,
        scheduling_strategy=gca_custom_job_compat.Scheduling.Strategy.FLEX_START
    )

REST

Saat mengirimkan tugas menggunakan Vertex AI REST API, tetapkan kolom scheduling.strategy dan scheduling.maxWaitDuration saat membuat tugas pelatihan kustom.

Contoh isi JSON permintaan:

{
  "displayName": "MyDwsJob",
  "jobSpec": {
    "workerPoolSpecs": [
      {
        "machineSpec": {
          "machineType": "a2-highgpu-1g",
          "acceleratorType": "NVIDIA_TESLA_A100",
          "acceleratorCount": 1
        },
        "replicaCount": 1,
        "diskSpec": {
          "bootDiskType": "pd-ssd",
          "bootDiskSizeGb": 100
        },
        "containerSpec": {
          "imageUri": "python:3.10",
          "command": [
            "sleep"
          ],
          "args": [
            "100"
          ]
        }
      }
    ],
    "scheduling": {
      "maxWaitDuration": "1800s",
      "strategy": "FLEX_START"
    }
  }
}

Kuota

Saat Anda mengirimkan tugas menggunakan Dynamic Workload Scheduler, Vertex AI akan menggunakan kuota preemptible, bukan kuota Vertex AI on-demand. Misalnya, untuk GPU Nvidia H100, bukan menggunakan:

aiplatform.googleapis.com/custom_model_training_nvidia_h100_gpus,

Vertex AI menggunakan:

aiplatform.googleapis.com/custom_model_training_preemptible_nvidia_h100_gpus.

Namun, kuota yang dapat dihentikan hanya digunakan dalam nama. Resource Anda tidak dapat dihentikan dan berperilaku seperti resource standar.

Sebelum mengirimkan tugas menggunakan Dynamic Workload Scheduler, pastikan kuota yang dapat di-preempt telah ditingkatkan ke jumlah yang memadai. Untuk mengetahui detail tentang kuota Vertex AI dan petunjuk untuk membuat permintaan penambahan kuota, lihat Kuota dan batas Vertex AI.

Penagihan

Anda hanya dikenai biaya untuk durasi tugas berjalan, bukan untuk waktu tugas menunggu resource tersedia. Untuk mengetahui detailnya, lihat Harga.

Langkah Berikutnya