Untuk tugas pelatihan kustom yang meminta resource GPU, Dynamic Workload Scheduler memungkinkan Anda menjadwalkan tugas berdasarkan waktu ketersediaan resource GPU yang diminta. Halaman ini menunjukkan cara menjadwalkan tugas pelatihan kustom menggunakan Dynamic Workload Scheduler, dan cara menyesuaikan perilaku penjadwalan di Vertex AI.
Kasus penggunaan yang direkomendasikan
Sebaiknya gunakan Dynamic Workload Scheduler untuk menjadwalkan tugas pelatihan kustom dalam situasi berikut:
- Tugas pelatihan kustom meminta GPU L4, A100, H100, H200, atau B200 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 meminta GPU L4, A100, H100, H200, atau B200.
- Tugas pelatihan kustom Anda memiliki maksimum
timeout
7 hari atau kurang. - Tugas pelatihan kustom Anda menggunakan konfigurasi mesin yang sama untuk semua kumpulan worker.
Jenis pekerjaan 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 di tugas pelatihan kustom, tetapkan
kolom API scheduling.strategy
ke FLEX_START
saat Anda membuat tugas.
Untuk mengetahui detail tentang cara membuat tugas pelatihan khusus, 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 waktu 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: 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 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,
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 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, alih-alih menggunakan kuota Vertex AI sesuai permintaan, Vertex AI akan menggunakan kuota dapat di-preempt. Misalnya, untuk GPU Nvidia H100, bukan mengonsumsi:
aiplatform.googleapis.com/custom_model_training_nvidia_h100_gpus
,
Vertex AI menggunakan:
aiplatform.googleapis.com/custom_model_training_preemptible_nvidia_h100_gpus
.
Namun, kuota dapat di-preempt 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 cukup. Untuk mengetahui detail kuota Vertex AI dan petunjuk untuk membuat permintaan penambahan kuota, lihat Kuota dan batas Vertex AI.
Penagihan
Saat menggunakan mulai fleksibel DWS, Anda akan ditagih sesuai dengan harga Dynamic Workload Scheduler. Ada biaya pengelolaan pelatihan kustom Vertex AI selain penggunaan infrastruktur Anda.
Langkah Berikutnya
- Pelajari lebih lanjut cara mengonfigurasi resource komputasi untuk tugas pelatihan kustom.
- Pelajari lebih lanjut cara menggunakan pelatihan terdistribusi untuk tugas pelatihan kustom.
- Pelajari lebih lanjut opsi penjadwalan lainnya.