Créer une ressource persistante

Lorsque vous créez une ressource persistante, le service d'entraînement recherche d'abord les ressources du pool de ressources Compute Engine en fonction des spécifications que vous avez fournies, puis provisionne un cluster de longue durée. Cette page explique comment créer une ressource persistante pour exécuter vos tâches d'entraînement personnalisé à l'aide de l'API Vertex AI ou de Google Cloud CLI.

Créer une ressource persistante

Sélectionnez l'un des onglets suivants pour obtenir des instructions sur la création d'une ressource persistante.

gcloud

Une ressource persistante peut avoir un ou plusieurs pools de ressources. Pour créer plusieurs pools de ressources dans une ressource persistante, spécifiez plusieurs options --resource-pool-spec.

L'autoscaling peut être activé ou désactivé pour chaque pool de ressources. Pour activer l'autoscaling, spécifiez min_replica_count et max_replica_count.

Vous pouvez spécifier toutes les configurations de pool de ressources dans la ligne de commande ou utiliser l'option --config pour spécifier le chemin d'accès à un fichier YAML contenant les configurations.

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID du projet Google Cloud dans lequel vous souhaitez créer la ressource persistante.
  • LOCATION : région dans laquelle vous souhaitez créer la ressource persistante. Pour obtenir la liste des régions disponibles, consultez la section Disponibilité des fonctionnalités.
  • PERSISTENT_RESOURCE_ID : ID de la ressource persistante.
  • DISPLAY_NAME : (facultatif) nom à afficher de la ressource persistante.
  • MACHINE_TYPE : type de VM à utiliser. Pour obtenir la liste des VM compatibles, consultez la section Types de machines. Ce champ correspond au champ machineSpec.machineType du message de l'API ResourcePool.
  • ACCELERATOR_TYPE : (facultatif) type de GPU à associer à chaque VM du pool de ressources. Pour obtenir la liste des GPU compatibles, consultez la section GPU. Ce champ correspond au champ machineSpec.acceleratorType du message de l'API ResourcePool.
  • ACCELERATOR_COUNT : (facultatif) nombre de GPU à associer à chaque VM du pool de ressources. La valeur par défaut est 1. Ce champ correspond au champ machineSpec.acceleratorCount du message de l'API ResourcePool.
  • REPLICA_COUNT : nombre d'instances répliquées à créer lors de la création de ce pool de ressources. Ce champ correspond au champ replicaCount du message de l'API ResourcePool. Ce champ est obligatoire si vous ne spécifiez pas MIN_REPLICA_COUNT et MAX_REPLICA_COUNT.
  • MIN_REPLICA_COUNT : (facultatif) nombre minimal d'instances répliquées jusqu'auquel l'autoscaling peut descendre pour ce pool de ressources. MIN_REPLICA_COUNT et MAX_REPLICA_COUNT sont tous deux requis pour activer l'autoscaling sur ce pool de ressources.
  • MAX_REPLICA_COUNT : (facultatif) nombre maximal d'instances répliquées jusqu'auquel l'autoscaling peut monter pour ce pool de ressources. MIN_REPLICA_COUNT et MAX_REPLICA_COUNT sont tous deux requis pour activer l'autoscaling sur ce pool de ressources.
  • BOOT_DISK_TYPE : (facultatif) type de disque à utiliser comme disque de démarrage de chaque VM du pool de ressources. Ce champ correspond au champ diskSpec.bootDiskType du message de l'API ResourcePool. Les valeurs acceptées sont les suivantes :
    • pd-standard (par défaut)
    • pd-ssd
  • BOOT_DISK_SIZE_GB : (facultatif) taille du disque en Gio pour le disque de démarrage de chaque VM du pool de ressources. Les valeurs acceptées sont comprises entre 100 (par défaut) et 64000. Ce champ correspond au champ diskSpec.bootDiskSizeGb du message de l'API ResourcePool.
  • CONFIG : chemin d'accès au fichier de configuration YAML de la ressource persistante. Ce fichier doit contenir une liste de ResourcePool. Si une option est spécifiée à la fois dans le fichier de configuration et dans les arguments de ligne de commande, les arguments de ligne de commande prévalent sur le fichier de configuration. Notez que les clés avec des traits de soulignement ne sont pas valides.

    Exemple de fichier de configuration YAML :

    resourcePoolSpecs:
      machineSpec:
        machineType: n1-standard-4
      replicaCount: 1
        

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud beta ai persistent-resources create \
    --persistent-resource-id=PERSISTENT_RESOURCE_ID \
    --display-name=DISPLAY_NAME \
    --project=PROJECT_ID \
    --region=LOCATION \
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

Windows (PowerShell)

gcloud beta ai persistent-resources create `
    --persistent-resource-id=PERSISTENT_RESOURCE_ID `
    --display-name=DISPLAY_NAME `
    --project=PROJECT_ID `
    --region=LOCATION `
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

Windows (cmd.exe)

gcloud beta ai persistent-resources create ^
    --persistent-resource-id=PERSISTENT_RESOURCE_ID ^
    --display-name=DISPLAY_NAME ^
    --project=PROJECT_ID ^
    --region=LOCATION ^
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

Vous devriez obtenir un résultat semblable à celui-ci :

Using endpoint [http://us-central1-aiplatform.googleapis.com/]
Operation to create PersistentResource [projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789] is submitted successfully.

You may view the status of your PersistentResource create operation with the command

  $ gcloud beta ai operations describe projects/sample-project/locations/us-central1/operations/1234567890123456789

Exemple de commande gcloud :

gcloud beta ai persistent-resources create \
    --persistent-resource-id=my-persistent-resource \
    --region=us-central1 \
    --resource-pool-spec="min-replica-count=4,max-replica-count=12,machine-type=n1-highmem-2,accelerator-type=NVIDIA_TESLA_K80,accelerator-count=1,disk-type=pd-standard,disk-size=200" \
    --resource-pool-spec="replica-count=4,machine-type=n1-standard-4"

Configurations gcloud avancées

Si vous souhaitez spécifier des options de configuration qui ne sont pas disponibles dans les exemples précédents, vous pouvez utiliser l'indicateur --config pour spécifier le chemin d'accès à un fichier config.yaml de votre environnement local contenant les champs persistentResources. Exemple :

gcloud beta ai persistent-resources create \
    --persistent-resource-id=PERSISTENT_RESOURCE_ID \
    --project=PROJECT_ID \
    --region=LOCATION \
    --config=CONFIG

REST

Une ressource persistante peut avoir un ou plusieurs pools de ressources (machine_spec), et l'autoscaling peut être activé ou désactivé pour chaque pool de ressources.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID du projet Google Cloud dans lequel vous souhaitez créer la ressource persistante.
  • LOCATION : région dans laquelle vous souhaitez créer la ressource persistante. Pour obtenir la liste des régions disponibles, consultez la section Disponibilité des fonctionnalités.
  • PERSISTENT_RESOURCE_ID : ID de la ressource persistante.
  • DISPLAY_NAME : (facultatif) nom à afficher de la ressource persistante.
  • MACHINE_TYPE : type de VM à utiliser. Pour obtenir la liste des VM compatibles, consultez la section Types de machines. Ce champ correspond au champ machineSpec.machineType du message de l'API ResourcePool.
  • ACCELERATOR_TYPE : (facultatif) type de GPU à associer à chaque VM du pool de ressources. Pour obtenir la liste des GPU compatibles, consultez la section GPU. Ce champ correspond au champ machineSpec.acceleratorType du message de l'API ResourcePool.
  • ACCELERATOR_COUNT : (facultatif) nombre de GPU à associer à chaque VM du pool de ressources. La valeur par défaut est 1. Ce champ correspond au champ machineSpec.acceleratorCount du message de l'API ResourcePool.
  • REPLICA_COUNT : nombre d'instances répliquées à créer lors de la création de ce pool de ressources. Ce champ correspond au champ replicaCount du message de l'API ResourcePool. Ce champ est obligatoire si vous ne spécifiez pas MIN_REPLICA_COUNT et MAX_REPLICA_COUNT.
  • MIN_REPLICA_COUNT : (facultatif) nombre minimal d'instances répliquées jusqu'auquel l'autoscaling peut descendre pour ce pool de ressources. MIN_REPLICA_COUNT et MAX_REPLICA_COUNT sont tous deux requis pour activer l'autoscaling sur ce pool de ressources.
  • MAX_REPLICA_COUNT : (facultatif) nombre maximal d'instances répliquées jusqu'auquel l'autoscaling peut monter pour ce pool de ressources. MIN_REPLICA_COUNT et MAX_REPLICA_COUNT sont tous deux requis pour activer l'autoscaling sur ce pool de ressources.
  • BOOT_DISK_TYPE : (facultatif) type de disque à utiliser comme disque de démarrage de chaque VM du pool de ressources. Ce champ correspond au champ diskSpec.bootDiskType du message de l'API ResourcePool. Les valeurs acceptées sont les suivantes :
    • pd-standard (par défaut)
    • pd-ssd
  • BOOT_DISK_SIZE_GB : (facultatif) taille du disque en Gio pour le disque de démarrage de chaque VM du pool de ressources. Les valeurs acceptées sont comprises entre 100 (par défaut) et 64000. Ce champ correspond au champ diskSpec.bootDiskSizeGb du message de l'API ResourcePool.

Méthode HTTP et URL :

POST http://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/persistentResources?persistent_resource_id=PERSISTENT_RESOURCE_ID

Corps JSON de la requête :

{
  "display_name": "DISPLAY_NAME",
  "resource_pools": [
    {
      "machine_spec": {
        "machine_type": "MACHINE_TYPE",
        "accelerator_type": "ACCELERATOR_TYPE",
        "accelerator_count": ACCELERATOR_COUNT
      },
      "replica_count": REPLICA_COUNT,
      "autoscaling_spec": {
        "min_replica_count": MIN_REPLICA_COUNT,
        "max_replica_count": MAX_REPLICA_COUNT
      },
      "disk_spec": {
        "boot_disk_type": "BOOT_DISK_TYPE",
        "boot_disk_size_gb": BOOT_