Menjadwalkan tugas pelatihan berdasarkan ketersediaan resource

Untuk tugas pelatihan serverless 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 serverless menggunakan Dynamic Workload Scheduler, dan cara menyesuaikan perilaku penjadwalan di Gemini Enterprise Agent Platform.

Kasus penggunaan yang direkomendasikan

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

  • Tugas pelatihan serverless meminta GPU L4, A100, H100, H200, atau B200 dan Anda ingin menjalankan tugas segera setelah resource yang diminta tersedia. Misalnya, saat Gemini Enterprise Agent Platform mengalokasikan resource GPU di luar jam puncak.
  • Workload Anda memerlukan beberapa node dan tidak dapat mulai berjalan hingga semua node GPU disediakan dan siap pada saat yang sama. Misalnya, Anda membuat tugas pelatihan terdistribusi.

Persyaratan

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

  • Tugas pelatihan serverless Anda meminta GPU L4, A100, H100, H200, atau B200.
  • Tugas pelatihan serverless Anda memiliki timeout maksimum 7 hari atau kurang.
  • Tugas pelatihan serverless Anda menggunakan konfigurasi mesin yang sama untuk semua kumpulan pekerja.

Jenis tugas yang didukung

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

Mengaktifkan Dynamic Workload Scheduler di tugas pelatihan serverless

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

Untuk mengetahui detail cara membuat tugas pelatihan serverless, 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 scheduling.strategy kolom di config.yaml file.

Contoh file konfigurasi YAML:

workerPoolSpecs:
  machineSpec:
    machineType: a2-highgpu-1g
    acceleratorType: NVIDIA_TESLA_A100
    acceleratorCount: 1
  replicaCount: 1
  containerSpec:
    imageUri: gcr.io/ucaip-test/ucaip-training-test
    args:
    - port=8500
    command:
    - start
scheduling:
  strategy: FLEX_START
  maxWaitDuration: 7200s

Python

Saat mengirimkan tugas menggunakan Agent Platform 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,
        machine_type="a2-highgpu-1g",
        accelerator_type="NVIDIA_TESLA_A100",
        accelerator_count=1,
    )

    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 Gemini Enterprise Agent Platform REST API, tetapkan kolom scheduling.strategy dan scheduling.maxWaitDuration saat membuat tugas pelatihan serverless.

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"
    }
  }
}

Quota

Saat Anda mengirimkan tugas menggunakan Dynamic Workload Scheduler, Gemini Enterprise Agent Platform akan menggunakan kuota preemptible, bukan menggunakan kuota Gemini Enterprise Agent Platform sesuai permintaan. Misalnya, untuk GPU Nvidia H100, Gemini Enterprise Agent Platform akan menggunakan:

aiplatform.googleapis.com/custom_model_training_nvidia_h100_gpus,

Gemini Enterprise Agent Platform akan menggunakan:

aiplatform.googleapis.com/custom_model_training_preemptible_nvidia_h100_gpus.

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

Sebelum mengirimkan tugas menggunakan Dynamic Workload Scheduler, pastikan kuota preemptible Anda telah ditingkatkan ke jumlah yang memadai. Untuk mengetahui detail kuota Gemini Enterprise Agent Platform dan petunjuk untuk membuat permintaan peningkatan kuota, lihat Kuota dan batas Gemini Enterprise Agent Platform.

Penagihan

Saat menggunakan DWS flex start, Anda akan ditagih sesuai dengan harga Dynamic Workload Scheduler. Ada biaya pengelolaan pelatihan serverless selain penggunaan infrastruktur Anda.

Langkah Berikutnya