Cuando creas un recurso persistente, el servicio de entrenamiento primero busca recursos en el grupo de recursos de Compute Engine en función de las especificaciones que hayas proporcionado y, a continuación, aprovisiona un clúster de larga duración. En esta página se explica cómo crear un recurso persistente para ejecutar tus trabajos de entrenamiento personalizados mediante la consola de Google Cloud , la CLI de Google Cloud y la API REST.
Roles obligatorios
Para obtener el permiso que necesitas para crear un recurso persistente,
pide a tu administrador que te conceda el
rol de gestión de identidades y accesos Administrador de Vertex AI (roles/aiplatform.admin
)
en tu proyecto.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene el permiso aiplatform.persistentResources.create
, que es necesario para crear un recurso persistente.
También puedes obtener este permiso con roles personalizados u otros roles predefinidos.
Crear un recurso persistente
Selecciona una de las siguientes pestañas para ver instrucciones sobre cómo crear un recurso persistente.
Consola
Para crear un recurso persistente con la consola Google Cloud , sigue estos pasos:
En la Google Cloud consola, ve a la página Recursos persistentes.
Haz clic en Crear clúster.
Configure el clúster de la siguiente manera:
- Nombre: introduce un nombre para el clúster.
- Descripción: (opcional) introduce una descripción del clúster.
- Región: selecciona la región en la que quieras crear el clúster.
Haz clic en Continuar.
Configure los recursos de computación del clúster de la siguiente manera:
- Haz clic en Grupo de trabajadores 1.
Selecciona la pestaña de la familia de máquinas que quieras usar y configura el grupo de trabajadores de la siguiente manera:
Uso general
Las VMs de uso general ofrecen la mejor relación precio-rendimiento para diversas cargas de trabajo.
- Serie: selecciona una serie de máquinas.
- Tipo de máquina: selecciona un tipo de máquina.
- Tipo de disco: selecciona Disco estándar o Disco SSD.
- Tamaño del disco: introduce el tamaño del disco que quieras.
- Número mínimo de réplicas: introduce el número mínimo de réplicas que quieres que haya en el grupo de trabajadores.
- Número máximo de réplicas: (opcional) introduce el número máximo de réplicas permitidas en el grupo de trabajadores. Si se especifica, el grupo de trabajadores escala automáticamente el número de réplicas hasta el número máximo de réplicas configurado según sea necesario.
Optimizada para la computación
Las VMs optimizadas para la computación ofrecen el mayor rendimiento por núcleo y están optimizadas para cargas de trabajo que requieren una gran cantidad de recursos de computación.
- Serie: selecciona una serie de máquinas.
- Tipo de máquina: selecciona un tipo de máquina.
- Tipo de disco: selecciona Disco estándar o Disco SSD.
- Tamaño del disco: introduce el tamaño del disco que quieras.
- Número mínimo de réplicas: introduce el número mínimo de réplicas que quieres que haya en el grupo de trabajadores.
- Número máximo de réplicas: (opcional) introduce el número máximo de réplicas permitidas en el grupo de trabajadores. Si se especifica, el grupo de trabajadores escala automáticamente el número de réplicas hasta el número máximo de réplicas configurado según sea necesario.
Memoria optimizada
Las VMs con memoria optimizada son ideales para cargas de trabajo que requieren un uso intensivo de la memoria, ya que ofrecen más memoria por núcleo que otras familias de máquinas, con hasta 12 TB de memoria.
- Serie: selecciona una serie de máquinas.
- Tipo de máquina: selecciona un tipo de máquina.
- Tipo de disco: selecciona Disco estándar o Disco SSD.
- Tamaño del disco: introduce el tamaño del disco que quieras.
- Número mínimo de réplicas: introduce el número mínimo de réplicas que quieres que haya en el grupo de trabajadores.
- Número máximo de réplicas: (opcional) introduce el número máximo de réplicas permitidas en el grupo de trabajadores. Si se especifica, el grupo de trabajadores escala automáticamente el número de réplicas hasta el número máximo de réplicas configurado según sea necesario.
GPUs
Estas máquinas virtuales optimizadas para aceleradores son ideales para cargas de trabajo de computación de la arquitectura de dispositivos unificada de computación (CUDA) masivamente paralelas, como el aprendizaje automático y la computación de alto rendimiento. Esta familia es la mejor opción para las cargas de trabajo que requieren GPUs.
- Tipo de GPU: selecciona el tipo de GPU que quieras usar.
- Número de GPUs: introduce el número de GPUs que quieras usar.
- Serie: selecciona una serie de máquinas.
- Tipo de máquina: selecciona un tipo de máquina.
- Tipo de disco: selecciona Disco estándar o Disco SSD.
- Tamaño del disco: introduce el tamaño del disco que quieras.
- Número mínimo de réplicas: introduce el número mínimo de réplicas que quieres que haya en el grupo de trabajadores.
- Número máximo de réplicas: (opcional) introduce el número máximo de réplicas permitidas en el grupo de trabajadores. Si se especifica, el grupo de trabajadores escala automáticamente el número de réplicas hasta el número máximo de réplicas configurado según sea necesario.
Haz clic en Listo.
(Opcional) Para añadir más grupos de trabajadores, haz clic en Añadir grupo de trabajadores.
Haz clic en Crear.
gcloud
Un recurso persistente puede tener uno o varios grupos de recursos. Para crear varios grupos de recursos en un recurso persistente, especifica varias marcas --resource-pool-spec
.
Cada grupo de recursos puede tener el autoescalado habilitado o inhabilitado. Para habilitar el ajuste automático de escala, especifica min_replica_count
y max_replica_count
.
Puedes especificar todas las configuraciones del grupo de recursos como parte de la línea de comandos o usar la marca --config
para especificar la ruta a un archivo YAML que contenga las configuraciones.
Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:
- PROJECT_ID: el ID del proyecto en el que quieres crear el recurso persistente. Google Cloud
- LOCATION: la región en la que quieras crear el recurso persistente. Para ver una lista de las regiones admitidas, consulta Disponibilidad de las funciones.
- PERSISTENT_RESOURCE_ID: ID del recurso persistente.
- DISPLAY_NAME: (Opcional) Nombre visible del recurso persistente.
- MACHINE_TYPE: el tipo de VM que se va a usar. Para consultar una lista de las VMs compatibles, consulta Tipos de máquinas.
Este campo se corresponde con el campo
machineSpec.machineType
del mensaje de la APIResourcePool
. - ACCELERATOR_TYPE: (Opcional) Tipo de GPU que se va a asociar a cada VM del pool de recursos. Para ver una lista de las GPUs compatibles, consulta GPUs. Este campo se corresponde con el campo
machineSpec.acceleratorType
del mensaje de la APIResourcePool
. - ACCELERATOR_COUNT: (Opcional) Número de GPUs que se van a asociar a cada VM del grupo de recursos. El valor predeterminado es
1
. Este campo se corresponde con el campomachineSpec.acceleratorCount
del mensaje de la APIResourcePool
. - REPLICA_COUNT: número de réplicas que se crearán al crear este grupo de recursos. Este campo se corresponde con el campo
replicaCount
del mensaje de la APIResourcePool
. Este campo es obligatorio si no especificas MIN_REPLICA_COUNT y MAX_REPLICA_COUNT. - MIN_REPLICA_COUNT: (Opcional) Número mínimo de réplicas al que se puede reducir el escalado automático de este grupo de recursos. Se necesitan MIN_REPLICA_COUNT y MAX_REPLICA_COUNT para habilitar el autoescalado en este grupo de recursos.
- MAX_REPLICA_COUNT: (Opcional) Número máximo de réplicas al que puede aumentar el autoescalado de este grupo de recursos. Se necesitan MIN_REPLICA_COUNT y MAX_REPLICA_COUNT para habilitar el autoescalado en este grupo de recursos.
- BOOT_DISK_TYPE: (Opcional) Tipo de disco que se va a usar como disco de arranque de cada VM del pool de recursos. Este campo se corresponde con el campo
diskSpec.bootDiskType
del mensaje de la APIResourcePool
. Entre los valores aceptados se incluyen los siguientes:pd-standard
(predeterminado)pd-ssd
- BOOT_DISK_SIZE_GB: (Opcional) Tamaño del disco de arranque de cada VM del grupo de recursos en GiB. Los valores aceptables van de
100
(valor predeterminado) a64000
. Este campo se corresponde con el campodiskSpec.bootDiskSizeGb
del mensaje de la APIResourcePool
. - CONFIG: ruta al archivo de configuración YAML del recurso persistente. Este archivo debe contener una lista de ResourcePool. Si se especifica una opción tanto en el archivo de configuración como en los argumentos de la línea de comandos, los argumentos de la línea de comandos anularán el archivo de configuración. Tenga en cuenta que las claves con guiones bajos no son válidas.
Ejemplo de archivo de configuración YAML:
resourcePoolSpecs: machineSpec: machineType: n1-standard-4 replicaCount: 1
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud 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 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 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"
Deberías recibir una respuesta similar a la siguiente:
Using endpoint [https://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 ai operations describe projects/sample-project/locations/us-central1/operations/1234567890123456789
Ejemplo de comando gcloud
:
gcloud 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_T4,accelerator-count=1,disk-type=pd-standard,disk-size=200" \ --resource-pool-spec="replica-count=4,machine-type=n1-standard-4"
Configuraciones gcloud
avanzadas
Si quieres especificar opciones de configuración que no estén disponibles en los ejemplos anteriores, puedes usar la marca --config
para especificar la ruta a un archivo config.yaml
en tu entorno local que contenga los campos de persistentResources
. Por ejemplo:
gcloud ai persistent-resources create \ --persistent-resource-id=PERSISTENT_RESOURCE_ID \ --project=PROJECT_ID \ --region=LOCATION \ --config=CONFIG
Python
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de Vertex AI.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Para crear un recurso persistente que puedas usar con una ejecución de una canalización, asigna el valorTrue
al parámetro enable_custom_service_account
en el objeto ResourceRuntimeSpec
al crear el recurso persistente.
from google.cloud.aiplatform.preview import persistent_resource from google.cloud.aiplatform_v1beta1.types.persistent_resource import ResourcePool from google.cloud.aiplatform_v1beta1.types.machine_resources import MachineSpec # Create the persistent resource. This method returns the created resource. my_example_resource = persistent_resource.PersistentResource.create( persistent_resource_id='PERSISTENT_RESOURCE_ID', display_name='DISPLAY_NAME', resource_pools=[ ResourcePool( machine_spec=MachineSpec( machine_type='MACHINE_TYPE' ), replica_count=REPLICA_COUNT ) ], enable_custom_service_account=True, ) # Setting `sync` to `False` makes the method is non-blocking and the resource # object returned syncs when the method completes. SYNC=False if not SYNC: my_example_resource.wait()
Haz los cambios siguientes:
- PERSISTENT_RESOURCE_ID: ID único definido por el usuario del recurso persistente. Debe empezar por una letra, terminar con una letra o un número, y solo puede contener letras en minúscula, números y guiones (-).
- DISPLAY_NAME: opcional. Nombre visible del recurso persistente.
- MACHINE_TYPE: El tipo de máquina virtual (VM) que se va a usar. Para consultar una lista de las máquinas virtuales compatibles, consulta Tipos de máquinas.
Este campo se corresponde con el campo
machineSpec.machineType
del - REPLICA_COUNT: número de réplicas que se crearán al crear este grupo de recursos.
REST
Un recurso persistente puede tener uno o varios grupos de recursos
(machine_spec
), y cada grupo de recursos puede tener el autoescalado habilitado o inhabilitado.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto en el que quieres crear el recurso persistente. Google Cloud
- LOCATION: la región en la que quieras crear el recurso persistente. Para ver una lista de las regiones admitidas, consulta Disponibilidad de las funciones.
- PERSISTENT_RESOURCE_ID: ID del recurso persistente.
- DISPLAY_NAME: (Opcional) Nombre visible del recurso persistente.
- MACHINE_TYPE: el tipo de VM que se va a usar. Para consultar una lista de las VMs compatibles, consulta Tipos de máquinas.
Este campo se corresponde con el campo
machineSpec.machineType
del mensaje de la APIResourcePool
. - ACCELERATOR_TYPE: (Opcional) Tipo de GPU que se va a asociar a cada VM del pool de recursos. Para ver una lista de las GPUs compatibles, consulta GPUs. Este campo se corresponde con el campo
machineSpec.acceleratorType
del mensaje de la APIResourcePool
. - ACCELERATOR_COUNT: (Opcional) Número de GPUs que se van a asociar a cada VM del grupo de recursos. El valor predeterminado es
1
. Este campo se corresponde con el campomachineSpec.acceleratorCount
del mensaje de la APIResourcePool
. - REPLICA_COUNT: número de réplicas que se crearán al crear este grupo de recursos. Este campo se corresponde con el campo
replicaCount
del mensaje de la APIResourcePool
. Este campo es obligatorio si no especificas MIN_REPLICA_COUNT y MAX_REPLICA_COUNT. - MIN_REPLICA_COUNT: (Opcional) Número mínimo de réplicas al que se puede reducir el escalado automático de este grupo de recursos. Se necesitan MIN_REPLICA_COUNT y MAX_REPLICA_COUNT para habilitar el autoescalado en este grupo de recursos.
- MAX_REPLICA_COUNT: (Opcional) Número máximo de réplicas al que puede aumentar el autoescalado de este grupo de recursos. Se necesitan MIN_REPLICA_COUNT y MAX_REPLICA_COUNT para habilitar el autoescalado en este grupo de recursos.
- BOOT_DISK_TYPE: (Opcional) Tipo de disco que se va a usar como disco de arranque de cada VM del pool de recursos. Este campo se corresponde con el campo
diskSpec.bootDiskType
del mensaje de la APIResourcePool
. Entre los valores aceptados se incluyen los siguientes:pd-standard
(predeterminado)pd-ssd
- BOOT_DISK_SIZE_GB: (Opcional) Tamaño del disco de arranque de cada VM del grupo de recursos en GiB. Los valores aceptables van de
100
(valor predeterminado) a64000
. Este campo se corresponde con el campodiskSpec.bootDiskSizeGb
del mensaje de la APIResourcePool
.
Método HTTP y URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/persistentResources?persistent_resource_id=PERSISTENT_RESOURCE_ID
Cuerpo JSON de la solicitud:
{ "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_DISK_SIZE_GB } } ] }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreatePersistentResourceOperationMetadata", "genericMetadata": { "createTime": "2023-02-08T21:17:15.009668Z", "updateTime": "2023-02-08T21:17:15.009668Z" } } }
Agotamiento de recursos
Puede que no haya stock de recursos escasos, como las GPUs A100, lo que puede provocar un error persistente en la creación de recursos cuando no haya ninguno disponible en la región que hayas especificado. En este caso, puedes intentar reducir el número de réplicas, cambiar a otro tipo de acelerador, volver a intentarlo en horas de menor demanda o probar con otra región.
Siguientes pasos
- Ejecutar tareas de entrenamiento en un recurso persistente.
- Consulta información sobre los recursos persistentes.
- Obtener información sobre un recurso persistente.
- Reiniciar un recurso persistente.
- Eliminar un recurso persistente.