Gestionar clúster

Si te interesan los clústeres de entrenamiento de Vertex AI, ponte en contacto con tu representante de ventas para obtener acceso.

Una vez que se ha desplegado un clúster, puedes gestionar todo su ciclo de vida con los siguientes endpoints de la API REST.

  • List: muestra todos los clústeres activos de tu proyecto.
  • Get: obtiene información detallada sobre un clúster específico.
  • Update: modifica una configuración de clúster.
  • Delete: elimina permanentemente un clúster y sus recursos.

Autenticación

alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'

Mostrar clústeres:

    gcurl -X GET https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters
    

El método list admite los siguientes parámetros de consulta opcionales para controlar la paginación.

  • pageSize (entero, opcional): número máximo de clústeres que se devolverán en la respuesta. El servicio puede devolver menos elementos que este valor, aunque haya más. Si no se especifica, se usará un tamaño de página predeterminado.
  • pageToken (string, optional): token recibido de una llamada de lista anterior. Proporciona este token para obtener la siguiente página de resultados.
En el siguiente ejemplo se solicita la primera página de resultados con un máximo de 5 clústeres por página.

    gcurl "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters?pageSize=5"
    

Una respuesta correcta contiene una matriz de clústeres con un máximo de cinco recursos de clúster y también puede incluir una cadena nextPageToken.

Obtener un clúster:

    gcurl -X GET https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
    

Actualizar un clúster:

UPDATE_PAYLOAD especifica la ruta local a un archivo JSON que define la versión completa ModelDevelopmentCluster a la que quieres actualizar.

Por ejemplo, para actualizar el número de nodos de un grupo de un clúster solo de CPU, usa la siguiente carga útil JSON:

{
  "display_name": "DISPLAY_NAME",
  "network": {
    "network": "projects/PROJECT_ID/global/networks/NETWORK",
    "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
  },
  "node_pools": [
    {
      "id": "cpu",
      "machine_spec": {
        "machine_type": "n2-standard-8"
      },
      "scaling_spec": {
        "min_node_count": UPDATED_MIN_NODE_COUNT,
        "max_node_count": UPDATED_MAX_NODE_COUNT
      },
      "zone": "ZONE",
      "enable_public_ips": true,
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 120
      }
    },
    {
      "id": "login",
      "machine_spec": {
        "machine_type": "n2-standard-8",
      },
      "scaling_spec": {
        "min_node_count": 1,
        "max_node_count": 1
      },
         "zone": "ZONE",
         "enable_public_ips": true,
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 120
      }
    },
  ],
  "orchestrator_spec": {
      "slurm_spec": {
      "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE",
      "partitions": [
         {
          "id": "cpu",
          "node_pool_ids": [
            "cpu"
          ]
        }
      ],
      "login_node_pool_id": "login"
    }
  }
}

gcurl -X PATCH -d @UPDATE_PAYLOAD https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
Parámetros de consulta
  • updateMask (cadena, opcional): una FieldMask que especifica qué campos del recurso de clúster de desarrollo de modelos se van a actualizar. Solo se modifican los campos que se indican en updateMask.

    Los siguientes campos del recurso ModelDevelopmentCluster se pueden especificar en updateMask:

    • node_pools
    • orchestrator_spec.slurm_spec.partitions
    • orchestrator_spec.slurm_spec.login_node_pool_id
    • orchestrator_spec.slurm_spec.prolog_bash_scripts
    • orchestrator_spec.slurm_spec.epilog_bash_scripts

El comando de abajo actualiza tanto la configuración del grupo de nodos como las particiones de Slurm.

gcurl -X PATCH -d @update-payload.json
'https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID?updateMask=orchestrator_spec.slurm_spec.partitions,node_pools'
Nota importante sobre los campos repetidos

En el caso de los campos repetidos, como node_pools, prolog_bash_scripts y epilog_bash_scripts, la API solo admite una operación de sustitución completa. El usuario debe proporcionar la lista completa de elementos esperada en la carga útil de la solicitud para sustituir la lista actual por completo.

Comportamiento posterior a la actualización y estado del clúster

Una solicitud correcta devuelve una operación de larga duración (LRO). A continuación, puedes monitorizar el estado de esta operación con el siguiente comando:

gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Una vez que la operación de actualización se haya completado correctamente, la mayoría de las modificaciones se aplicarán inmediatamente (o en un plazo de 15 segundos, que es el tiempo de sincronización de Slurm) y no será necesario hacer nada más. Solo se deben volver a crear los recursos si se modifican los elementos subyacentes de la infraestructura de computación del clúster, como las fuentes de almacenamiento y los scripts de inicio.

Eliminar un clúster:

  gcurl -X DELETE https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
  

Si se ejecuta correctamente, este comando devuelve una operación de larga duración que puedes monitorizar con el comando operations describe.

gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID

Siguientes pasos

Gestionar tu clúster de entrenamiento de Vertex AI te permite optimizar su uso, integrarlo en flujos de trabajo automatizados y preparar tus modelos entrenados para el despliegue.

  • Orquesta tu entrenamiento con Vertex AI Pipelines: automatiza todo el ciclo de vida de tus trabajos de entrenamiento, desde la preparación de los datos hasta el registro del modelo, mediante las canalizaciones que se dirigen a tu clúster gestionado.
  • Monitoriza y depura tus tareas de entrenamiento: haz un seguimiento del progreso y del uso de recursos, e identifica problemas en las tareas de entrenamiento distribuido que se ejecutan en el clúster.
  • Despliega tu modelo para la inferencia: una vez que tus modelos se hayan entrenado y registrado, despliégalos en un endpoint de Vertex AI para atender solicitudes de inferencia online a gran escala.
  • Optimizar los costes: revisa periódicamente la utilización de tu clúster y elimínalo cuando no lo estés usando para minimizar la facturación del hardware reservado.