Aprende a solicitar recursos de máquinas de Google Cloud en Vertex AI Pipelines

Puedes ejecutar tu componente de Python en Vertex AI Pipelines usando recursos de máquina específicos de Google Cloudque ofrece el entrenamiento personalizado de Vertex AI.

Puedes usar el método create_custom_training_job_from_component de los componentes de flujo de procesamiento de Google Cloud para transformar un componente de Python en una tarea de entrenamiento personalizada de Vertex AI. Consulta cómo crear un trabajo personalizado.

Crear una tarea de entrenamiento personalizada a partir de un componente con Vertex AI Pipelines

En el siguiente ejemplo se muestra cómo usar el método create_custom_training_job_from_component para transformar un componente de Python en una tarea de entrenamiento personalizada con recursos de máquina definidos por el usuario Google Cloud y, a continuación, ejecutar el flujo de trabajo compilado en Vertex AI Pipelines:


import kfp
from kfp import dsl
from google_cloud_pipeline_components.v1.custom_job import create_custom_training_job_from_component

# Create a Python component
@dsl.component
def my_python_component():
  import time
  time.sleep(1)

# Convert the above component into a custom training job
custom_training_job = create_custom_training_job_from_component(
    my_python_component,
    display_name = 'DISPLAY_NAME',
    machine_type = 'MACHINE_TYPE',
    accelerator_type='ACCELERATOR_TYPE',
    accelerator_count='ACCELERATOR_COUNT',
    boot_disk_type: 'BOOT_DISK_TYPE',
    boot_disk_size_gb: 'BOOT_DISK_SIZE',
    network: 'NETWORK',
    reserved_ip_ranges: 'RESERVED_IP_RANGES',
    nfs_mounts: 'NFS_MOUNTS'
    persistent_resource_id: 'PERSISTENT_RESOURCE_ID'
)

# Define a pipeline that runs the custom training job
@dsl.pipeline(
  name="resource-spec-request",
  description="A simple pipeline that requests a Google Cloud machine resource",
  pipeline_root='PIPELINE_ROOT',
)
def pipeline():
  training_job_task = custom_training_job(
      project='PROJECT_ID',
      location='LOCATION',
  ).set_display_name('training-job-task')

Haz los cambios siguientes:

  • DISPLAY_NAME: el nombre del trabajo personalizado. Si no especifica el nombre, se usará el nombre del componente de forma predeterminada.

  • MACHINE_TYPE: el tipo de máquina para ejecutar el trabajo personalizado. Por ejemplo, e2-standard-4. Para obtener más información sobre los tipos de máquinas, consulta Tipos de máquinas. Si has especificado una TPU como accelerator_type, define este campo como cloud-tpu. Para obtener más información, consulta la referencia del parámetro machine_type.

  • ACCELERATOR_TYPE: el tipo de acelerador conectado a la máquina. Para obtener más información sobre las GPUs disponibles y cómo configurarlas, consulta el artículo sobre GPUs. Para obtener más información sobre los tipos de TPU disponibles y cómo configurarlos, consulta TPUs. Para obtener más información, consulta la referencia del parámetro accelerator_type.

  • ACCELERATOR_COUNT: Número de aceleradores conectados a la máquina que ejecuta el trabajo personalizado. Si especificas el tipo de acelerador, el número de aceleradores se define como 1 de forma predeterminada.

  • BOOT_DISK_TYPE: el tipo de disco de arranque. Para obtener más información, consulta la referencia del parámetro boot_disk_type.

  • BOOT_DISK_SIZE: tamaño del disco de arranque en GB. Para obtener más información, consulta la referencia del parámetro boot_disk_size_gb.

  • NETWORK: Si el trabajo personalizado está emparejado con una red de Compute Engine que tiene configurado el acceso privado a servicios, especifica el nombre completo de la red. Para obtener más información, consulta la referencia del parámetro network.

  • RESERVED_IP_RANGES: lista de nombres de los intervalos de IP reservados de la red de VPC que se usa para implementar el trabajo personalizado. Para obtener más información, consulta la referencia del parámetro reserved_ip_ranges.

  • NFS_MOUNTS: lista de recursos de montaje de NFS en formato de diccionario JSON. Para obtener más información, consulta la referencia del parámetro nfs_mounts.

  • PERSISTENT_RESOURCE_ID (vista previa): ID del recurso persistente para ejecutar la canalización. Si especificas un recurso persistente, la canalización se ejecuta en las máquinas asociadas al recurso persistente, en lugar de en recursos de máquina efímeros y bajo demanda. Ten en cuenta que la configuración de red y de CMEK de la canalización debe coincidir con la configuración especificada para el recurso persistente. Para obtener más información sobre los recursos persistentes y cómo crearlos, consulta el artículo Crear un recurso persistente.

  • PIPELINE_ROOT: especifica un URI de Cloud Storage al que pueda acceder la cuenta de servicio de tus canalizaciones. Los artefactos de las ejecuciones de tu canalización se almacenan en la raíz de la canalización.

  • PROJECT_ID: el Google Cloud proyecto en el que se ejecuta esta canalización.

  • LOCATION: la ubicación o la región en la que se ejecuta esta canalización.

Referencia de la API

Para ver una lista completa de los argumentos admitidos por el método create_custom_training_job_from_component, consulta la referencia del SDK de componentes de flujos de procesamiento de Google Cloud.