Bei serverlosen Trainingsjobs, für die GPU-Ressourcen angefordert werden, können Sie mit Dynamic Workload Scheduler die Jobs basierend darauf planen, wann die angeforderten GPU-Ressourcen verfügbar werden. Auf dieser Seite erfahren Sie, wie Sie serverlose Trainingsjobs mit dem Dynamic Workload Scheduler planen und das Planungsverhalten auf der Gemini Enterprise Agent Platform anpassen.
Empfohlene Anwendungsfälle
Wir empfehlen, in den folgenden Fällen serverlose Trainingsjobs mit dem Dynamic Workload Scheduler zu planen:
- Für den serverlosen Trainingsjob werden L4-, A100-, H100-, H200- oder B200-GPUs angefordert und Sie möchten den Job ausführen, sobald die angeforderten Ressourcen verfügbar sind. Beispielsweise, wenn die Gemini Enterprise Agent Platform die GPU-Ressourcen außerhalb der Zeiten hoher Nachfrage zuweist.
- Ihre Arbeitslast erfordert mehrere Knoten und kann erst ausgeführt werden, wenn alle GPU-Knoten bereitgestellt und bereit sind. Angenommen, Sie erstellen einen verteilten Trainingsjob.
Voraussetzungen
Damit Sie den Dynamic Workload Scheduler verwenden können, muss Ihr serverloser Trainingsjob die folgenden Anforderungen erfüllen:
- Für Ihren serverlosen Trainingsjob werden L4-, A100-, H100-, H200- oder B200-GPUs angefordert.
- Ihr serverloser Trainingsjob hat ein maximales
timeoutvon 7 Tagen oder weniger. - Für Ihren serverlosen Trainingsjob wird dieselbe Maschinenkonfiguration für alle Workerpools verwendet.
Unterstützte Jobtypen
Alle serverlosen Trainingsjobtypen werden unterstützt, einschließlich CustomJob, HyperparameterTuningjob und TrainingPipeline.
Dynamic Workload Scheduler in Ihrem serverlosen Trainingsjob aktivieren
Wenn Sie den Dynamic Workload Scheduler in Ihrem serverlosen Trainingsjob aktivieren möchten, legen Sie beim Erstellen des Jobs das API-Feld scheduling.strategy auf FLEX_START fest.
Weitere Informationen zum Erstellen eines serverlosen Trainingsjobs finden Sie unter den folgenden Links.
Dauer für die Wartezeit auf die Ressourcenverfügbarkeit konfigurieren
Im Feld scheduling.maxWaitDuration können Sie konfigurieren, wie lange der Job auf Ressourcen warten kann. Ein Wert von 0 bedeutet, dass der Job unbegrenzt wartet, bis die angeforderten Ressourcen verfügbar sind. Der Standardwert ist 1 Tag.
Beispiele
In den folgenden Beispielen wird gezeigt, wie Sie den Dynamic Workload Scheduler für einen customJob aktivieren.
Wählen Sie den Tab für die Oberfläche aus, die Sie verwenden möchten.
gcloud
Wenn Sie einen Job über die Google Cloud CLI einreichen, fügen Sie das Feld scheduling.strategy in die Datei config.yaml ein.
Beispiel für eine YAML-Konfigurationsdatei:
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
Wenn Sie einen Job mit dem Agent Platform SDK für Python einreichen, legen Sie das Feld scheduling_strategy in der entsprechenden CustomJob-Erstellungsmethode fest.
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
Wenn Sie einen Job mit der Gemini Enterprise Agent Platform REST API einreichen, legen Sie beim Erstellen des serverlosen Trainingsjobs die Felder scheduling.strategy und scheduling.maxWaitDuration fest.
Beispiel für einen JSON-Anfragetext:
{
"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
Wenn Sie einen Job mit dem Dynamic Workload Scheduler einreichen, wird nicht das On-Demand-Kontingent der Gemini Enterprise Agent Platform, sondern das Kontingent für unterbrechbare Jobs der Gemini Enterprise Agent Platform verbraucht. Beispiel: NVIDIA H100-GPUs:
aiplatform.googleapis.com/custom_model_training_nvidia_h100_gpus
Die Gemini Enterprise Agent Platform verbraucht:
aiplatform.googleapis.com/custom_model_training_preemptible_nvidia_h100_gpus.
Das Kontingent auf Abruf wird jedoch nur dem Namen nach verwendet. Ihre Ressourcen können nicht vorzeitig beendet werden und verhalten sich wie Standardressourcen.
Bevor Sie einen Job mit Dynamic Workload Scheduler einreichen, müssen Sie Ihre Kontingente auf Abruf auf eine ausreichende Menge erhöhen. Weitere Informationen zu Kontingenten der Gemini Enterprise Agent Platform und eine Anleitung zum Anfordern einer Kontingenterhöhung finden Sie unter Kontingente und Limits der Gemini Enterprise Agent Platform.
Abrechnung
Bei Verwendung von DWS Flex Start werden Ihnen die Preise für Dynamic Workload Scheduler in Rechnung gestellt. Zusätzlich zur Nutzung der Infrastruktur fallen Gebühren für die Verwaltung serverloser Trainings an.
Weitere Informationen
- Weitere Informationen zum Konfigurieren von Rechenressourcen für serverlose Trainingsjobs
- Weitere Informationen zum Verwenden des verteilten Trainings für serverlose Trainingsjobs
- Weitere Informationen zu Planungsoptionen.