Pour vous assurer que des ressources de VM sont disponibles lorsque vos jobs d'entraînement personnalisés en ont besoin, vous pouvez utiliser des réservations Compute Engine. Les réservations offrent un niveau élevé d'assurance pour l'obtention de la capacité des ressources zonales Compute Engine. Pour en savoir plus, consultez la section Réservations de ressources zonales Compute Engine.
Présentation
Vos jobs d'entraînement et de prédiction personnalisés Vertex AI peuvent utiliser des réservations Compute Engine. Votre réservation doit spécifier un type de machine A2 ou A3. Si les ressources de ces réservations sont éligibles à des remises sur engagement d'utilisation, vous bénéficiez de ces remises lorsque vos VM consomment ces réservations. Consultez la section Remises sur engagement d'utilisation pour vos ressources réservées.
Limites et exigences
Tenez compte des limites et des exigences suivantes lorsque vous utilisez des réservations Compute Engine avec Vertex AI :
-
Vertex AI ne peut utiliser que les réservations avec les séries de machines suivantes :
- A2
- A3
- L'utilisation de réservations Compute Engine avec Vertex AI n'est possible que pour l'entraînement et la prédiction personnalisés.
- Assurez-vous que le quota disponible est suffisant pour vos jobs Vertex AI. Consultez la section Exigences supplémentaires relatives aux quotas pour les réservations partagées.
- Pour permettre la mise à jour régulière de vos déploiements Vertex AI, nous vous recommandons d'augmenter le nombre de VM d'au moins une VM pour chaque déploiement simultané.
- Assurez-vous que les contraintes de vos règles d'administration autorisent les réservations partagées. Consultez la section Autoriser et restreindre la création et la modification de réservations partagées pour des projets.
- Pour utiliser la réservation, les propriétés de l'instance de VM de la réservation doivent correspondre exactement à celles de votre charge de travail Vertex AI. Par exemple, si une charge de travail Vertex AI utilise un type de machine
a2-megagpu-16g
, le type de machine de la réservation doit être identique. Consultez les conditions requises. -
Les services et fonctionnalités suivants ne sont pas compatibles avec l'utilisation de réservations Compute Engine avec l'entraînement Vertex AI :
- Clés de chiffrement gérées par le client (CMEK)
- Programmeur de charge de travail dynamique
- Exécuter des jobs d'entraînement sur une ressource persistante
- Votre job d'entraînement personnalisé doit utiliser un compte de service personnalisé. Consultez la section Utiliser un compte de service personnalisé.
Facturation
Lorsque vous utilisez des réservations Compute Engine, vous êtes facturé pour les éléments suivants :
- Tarifs Compute Engine pour les ressources Compute Engine, y compris les remises sur engagement d'utilisation applicables. Consultez la page Tarifs de Compute Engine.
- Des frais de gestion de l'entraînement personnalisé Vertex AI s'ajoutent à votre utilisation de l'infrastructure. Consultez les tarifs des modèles entraînés personnalisés.
Avant de commencer
- Consultez les exigences et restrictions applicables aux réservations.
- Consultez les exigences relatives aux quotas et les restrictions applicables aux réservations partagées.
Autoriser l'utilisation d'une réservation
Avant de consommer une réservation de VM A2 ou A3, vous devez définir sa règle de partage pour autoriser Vertex AI à consommer la réservation. Pour ce faire, utilisez l'une des méthodes suivantes :
- Autoriser la consommation lors de la création d'une réservation
- Autoriser la consommation dans une réservation existante
Autoriser la consommation lors de la création d'une réservation
Lorsque vous créez une réservation à projet unique ou partagée de VM A2 ou A3, vous pouvez spécifier que Vertex AI peut utiliser la réservation comme suit :
- Si vous utilisez la console Google Cloud, sélectionnez Partager la réservation dans la section Services Google Cloud.
- Si vous utilisez Google Cloud CLI, incluez l'option
--reservation-sharing-policy
définie surALLOW_ALL
. - Si vous utilisez l'API REST, incluez le champ
serviceShareType
défini surALLOW_ALL
.
Autoriser la consommation dans une réservation existante
Pour autoriser Vertex AI à consommer une réservation existante de VM A2 ou A3, consultez la section Modifier la règle de partage d'une réservation.Créer un job d'entraînement personnalisé avec une réservation
Vous pouvez créer un job d'entraînement personnalisé qui utilise une réservation Compute Engine à l'aide de l'API REST.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- LOCATION : région où le conteneur ou le package Python sera exécuté.
- PROJECT_ID : l'ID de votre projet.
-
JOB_NAME : valeur obligatoire. nom à afficher pour
CustomJob
. - Définissez la tâche d'entraînement personnalisée :
- MACHINE_TYPE : type de la machine. Consultez la section Types de machines disponibles pour l'entraînement.
RESERVATION_AFFINITY_TYPE : La valeur doit être
ANY
,SPECIFIC_RESERVATION
ouNONE
.ANY
signifie que les VM de votrecustomJob
peuvent automatiquement utiliser toute réservation avec des propriétés correspondantes.SPECIFIC_RESERVATION
signifie que les VM de votrecustomJob
ne peuvent consommer qu'une réservation que les VM ciblent spécifiquement par son nom.NONE
signifie que les VM de votrecustomJob
ne peuvent utiliser aucune réservation. SpécifierNONE
a le même effet que d'omettre une spécification d'affinité de réservation.
- RESERVATION_NAME : nom de votre réservation.
- DISK_TYPE : facultatif. Type de disque de démarrage à utiliser pour la tâche (
pd-standard
par défaut) oupd-ssd
. En savoir plus sur les types de disques - DISK_SIZE : facultatif. Taille en Go du disque de démarrage à utiliser pour la tâche. La valeur par défaut est 100.
- REPLICA_COUNT : nombre d'instances dupliquées de nœuds de calcul à utiliser. Dans la plupart des cas, définissez cette valeur sur
1
pour votre premier pool de nœuds de calcul. - Si votre application d'entraînement s'exécute dans un conteneur personnalisé, spécifiez les éléments suivants :
- CUSTOM_CONTAINER_IMAGE_URI : URI d'une image de conteneur dans Artifact Registry ou Docker Hub à exécuter sur chaque instance répliquée de nœud de calcul.
- CUSTOM_CONTAINER_COMMAND : facultatif. Commande à appeler au démarrage du conteneur. Cette commande ignore le point d'entrée par défaut du conteneur.
- CUSTOM_CONTAINER_ARGS : facultatif. Arguments à transmettre lors du démarrage du conteneur.
- Si votre application d'entraînement est un package Python qui s'exécute dans un conteneur prédéfini, spécifiez les éléments suivants :
- EXECUTOR_IMAGE_URI : URI de l'image de conteneur qui exécute le code fourni. Pour en savoir plus, consultez la liste des conteneurs prédéfinis disponibles pour l'entraînement.
- PYTHON_PACKAGE_URIS : liste d'URI Cloud Storage séparés par une virgule spécifiant les fichiers de package Python correspondant au programme d'entraînement et ses packages dépendants. Le nombre maximal d'URI de package est de 100.
- PYTHON_MODULE : nom du module Python à exécuter après l'installation des packages.
- PYTHON_PACKAGE_ARGS : facultatif. Arguments de ligne de commande à transmettre au module Python.
- TIMEOUT : facultatif. Durée d'exécution maximale pour la tâche.
- Spécifiez les éléments LABEL_NAME et LABEL_VALUE pour tous les libellés que vous souhaitez appliquer à cette tâche personnalisée.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/customJobs
Corps JSON de la requête :
{ "displayName": "JOB_NAME", "jobSpec": { "workerPoolSpecs": [ { "machineSpec": { "machineType": "MACHINE_TYPE", "reservationAffinity": { "reservationAffinityType": "RESERVATION_AFFINITY_TYPE", "key": "compute.googleapis.com/reservation-name", "values": [ "projects/PROJECT_ID/reservations/RESERVATION_NAME" ] } }, "replicaCount": REPLICA_COUNT, "diskSpec": { "bootDiskType": DISK_TYPE, "bootDiskSizeGb": DISK_SIZE }, // Union field task can be only one of the following: "containerSpec": { "imageUri": CUSTOM_CONTAINER_IMAGE_URI, "command": [ CUSTOM_CONTAINER_COMMAND ], "args": [ CUSTOM_CONTAINER_ARGS ] }, "pythonPackageSpec": { "executorImageUri": EXECUTOR_IMAGE_URI, "packageUris": [ PYTHON_PACKAGE_URIS ], "pythonModule": PYTHON_MODULE, "args": [ PYTHON_PACKAGE_ARGS ] } // End of list of possible types for union field task. } // Specify one workerPoolSpec for single replica training, or multiple workerPoolSpecs // for distributed training. ], "scheduling": { "timeout": TIMEOUT } }, "labels": { LABEL_NAME_1": LABEL_VALUE_1, LABEL_NAME_2": LABEL_VALUE_2 } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/customJobs"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/customJobs" | Select-Object -Expand Content
La réponse contient des informations sur les spécifications, ainsi que sur TRAININGPIPELINE_ID.
Étape suivante
- Découvrir les réservations de ressources zonales Compute Engine.
- Utiliser des réservations avec Vertex AI Prediction.