Vertex AI Pipelines te permite ejecutar flujos de procesamiento de aprendizaje automático (AA) que se han creado con el SDK de Kubeflow Pipelines o TensorFlow Extended sin servidor. En este documento se describe cómo ejecutar un flujo de procesamiento de aprendizaje automático.
También puedes crear ejecuciones de la canalización con plantillas prediseñadas en la galería de plantillas. Para obtener más información sobre la galería de plantillas, consulta el artículo sobre cómo usar una plantilla prediseñada de la galería de plantillas](/vertex-ai/docs/pipelines/use-template-gallery).
Puedes usar Vertex AI Experiments para monitorizar, analizar y comparar las ejecuciones de tus flujos de trabajo asociándolas a un experimento o a una ejecución de experimento. Si comparas los parámetros, las salidas y las métricas de rendimiento de las ejecuciones de la canalización, puedes identificar la configuración que mejor se adapte a tu caso práctico. Para obtener más información, consulta Introducción a los experimentos de Vertex AI.
Antes de empezar
Antes de ejecutar un flujo de trabajo con Vertex AI Pipelines, sigue estas instrucciones para configurar tuGoogle Cloud proyecto y tu entorno de desarrollo:
Para ejecutar una canalización con el SDK de Vertex AI para Python, instala el SDK de Vertex.
- Instala el SDK de Vertex AI.
Crear una ejecución de un flujo de procesamiento
Sigue estas instrucciones para ejecutar una canalización de aprendizaje automático mediante la consola Google Cloud o Python.
Consola
Sigue estas instrucciones para ejecutar un flujo de procesamiento de aprendizaje automático mediante la consola Google Cloud .
En la Google Cloud consola, en la sección Vertex AI, ve a la página Pipelines.
En la lista desplegable Región, selecciona la región en la que quieres crear la ejecución de la canalización.
Haz clic en
Crear ejecución para abrir el panel Crear ejecución de la canalización.En la sección Detalles de la ejecución, haz lo siguiente:
Haga clic en Ejecutar fuente. Se encuentran disponibles las siguientes opciones:
Seleccionar entre los flujos de procesamiento de datos existentes: para crear una ejecución de un flujo de procesamiento de datos a partir de una plantilla, haga clic en Seleccionar entre los flujos de procesamiento de datos existentes e introduzca los siguientes detalles:
Seleccione el repositorio que contenga el archivo de definición de la canalización o del componente.
Seleccione la pipeline o el componente y la versión.
Especifica un nombre de ejecución para identificar de forma única la ejecución de la canalización.
Seleccionar una canalización de la galería de plantillas: para crear una ejecución de canalización basada en una plantilla de canalización creada por Google en la galería de plantillas, haga clic en Seleccionar una canalización de la galería de plantillas e introduzca los siguientes detalles:
En la lista Pipeline de la galería de plantillas, seleccione la plantilla de pipeline.
Opcional: Modifica el Nombre de ejecución predeterminado que identifica de forma única la ejecución de la canalización.
Subir archivo: para subir una definición de canalización compilada, haz clic en Subir archivo e introduce los siguientes detalles:
Haz clic en Buscar para abrir el selector de archivos. Ve al archivo YAML de la canalización compilada que quieras ejecutar, selecciona la canalización y haz clic en Abrir.
En Nombre del flujo de procesamiento o del componente se muestra el nombre especificado en la definición del flujo de procesamiento de forma predeterminada. También puedes especificar otro nombre de flujo de procesamiento.
Especifica un nombre de ejecución para identificar de forma única la ejecución de la canalización.
Importar desde Cloud Storage: para importar un archivo de definición de una canalización desde Cloud Storage, haga clic en Importar desde Cloud Storage e introduzca los siguientes detalles:
Haz clic en Buscar para ir al segmento de Cloud Storage que contiene el objeto de definición de la canalización, selecciona el archivo y, a continuación, haz clic en Seleccionar.
También puedes introducir el URI de Cloud Storage o la URL HTTP/HTTPS del archivo de definición de la canalización.
Especifica el nombre del componente o del flujo de procesamiento.
Especifica un nombre de ejecución para identificar de forma única la ejecución de la canalización.
Opcional: Para programar ejecuciones periódicas de la canalización, especifica la Programación de ejecución de la siguiente manera:
Selecciona Recurrente.
En Hora de inicio, especifica cuándo se activará la programación.
Para programar la primera ejecución inmediatamente después de crear la programación, selecciona Inmediatamente.
Para programar la primera ejecución para que se produzca a una hora y una fecha específicas, selecciona Activado.
En el campo Frecuencia, especifica la frecuencia con la que se programarán y ejecutarán las ejecuciones de la canalización. Para ello, usa una expresión de programación cron basada en cron de Unix.
En Finaliza, especifica cuándo termina la programación.
Para indicar que la programación crea ejecuciones de la canalización indefinidamente, selecciona Nunca.
Para indicar que la programación finaliza en una fecha y hora concretas, selecciona Activado y especifica la fecha y la hora de finalización de la programación.
Opcional: Para especificar que la ejecución de la canalización use una cuenta de servicio personalizada, una clave de cifrado gestionada por el cliente (CMEK) o una red de VPC emparejada, haz clic en Opciones avanzadas y sigue estas instrucciones:
Para especificar una cuenta de servicio, selecciona una en la lista desplegable Cuenta de servicio.
Si no especificas ninguna cuenta de servicio, Vertex AI Pipelines ejecutará tu flujo de procesamiento con la cuenta de servicio predeterminada de Compute Engine.
Más información sobre cómo configurar una cuenta de servicio para usarla con Vertex AI Pipelines
Para usar una CMEK, selecciona Usar una clave de cifrado gestionada por el cliente. Aparecerá la lista desplegable Seleccionar una clave gestionada por el cliente. En la lista desplegable Seleccionar una clave gestionada por el cliente, elija la clave que quiera usar.
Para usar una red de VPC emparejada en esta ejecución de la canalización, introduce el nombre de la red de VPC en el cuadro Red de VPC emparejada.
Haz clic en Continuar.
En la sección Configuración del tiempo de ejecución, configura la ejecución de la canalización de la siguiente manera:
En Ubicación de Cloud Storage, haz clic en Examinar para seleccionar el segmento de Cloud Storage en el que se almacenarán los artefactos de salida de la canalización y, a continuación, haz clic en Seleccionar.
Opcional: Para configurar la política de errores y la caché de la ejecución de la canalización, haz clic en Opciones avanzadas y sigue estas instrucciones:
En Política de errores, especifica la política de errores de toda la canalización. Más información sobre las políticas de errores en la canalización
Para configurar la canalización de forma que siga programando tareas después de que falle una, selecciona Ejecutar todos los pasos hasta completarlos. Esta opción está seleccionada de forma predeterminada.
Para configurar el flujo de procesamiento de forma que falle cuando falle una tarea, selecciona Falla esta ejecución en cuanto falle un paso.
En Configuración de la caché, especifique la configuración de la caché de toda la canalización.
Para usar la configuración de la caché a nivel de tarea en la tarea de la canalización, selecciona No anular la configuración de la caché a nivel de tarea.
Para activar el almacenamiento en caché de todas las tareas de la canalización y anular cualquier configuración de caché a nivel de tarea, selecciona Habilitar la lectura de la caché en todos los pasos (más rápido).
Para desactivar el almacenamiento en caché de todas las tareas de la canalización y anular cualquier configuración de caché a nivel de tarea, selecciona Inhabilitar la lectura de la caché en todos los pasos (más rápido).
Opcional: Si tu flujo de trabajo tiene parámetros, en Parámetros de flujo de trabajo, especifica los parámetros de ejecución del flujo de trabajo.
Para crear la ejecución de la canalización, haz clic en Enviar.
SDK de Vertex AI para Python
Sigue estas instrucciones para ejecutar una canalización de aprendizaje automático con el SDK de Vertex AI para Python. Antes de ejecutar el siguiente código de ejemplo, debes configurar la autenticación.
Configurar la autenticación
Para configurar la autenticación, debes crear una clave de cuenta de servicio y definir una variable de entorno para la ruta a la clave de cuenta de servicio.
-
Crea una cuenta de servicio:
-
En la Google Cloud consola, ve a la página Crear cuenta de servicio.
- En el campo Nombre de cuenta de servicio, escribe un nombre.
- Opcional: En el campo Descripción de la cuenta de servicio, escribe una descripción.
- Haz clic en Crear.
- Haz clic en el campo Selecciona un rol. En Todos los roles, selecciona Vertex AI > Usuario de Vertex AI.
-
Haz clic en Hecho para crear la cuenta de servicio.
No cierres la ventana del navegador. Lo usarás en el siguiente paso.
-
-
Crea una clave de cuenta de servicio para la autenticación:
- En la Google Cloud consola, haz clic en la dirección de correo de la cuenta de servicio que has creado.
- Haz clic en Teclas.
- Haz clic en Añadir clave y, a continuación, en Crear clave.
- Haz clic en Crear. Se descargará un archivo de clave JSON en tu ordenador.
- Haz clic en Cerrar.
- Concede a tu nueva cuenta de servicio acceso a la cuenta de servicio que usas para ejecutar las canalizaciones.
- Haz clic en para volver a la lista de cuentas de servicio.
Haz clic en el nombre de la cuenta de servicio que usas para ejecutar las canalizaciones. Se abrirá la página Detalles de la cuenta de servicio.
Si has seguido las instrucciones de la guía para configurar tu proyecto para Vertex AI Pipelines, esta es la misma cuenta de servicio que creaste en la sección Configurar una cuenta de servicio con permisos granulares. De lo contrario, Vertex AI usará la cuenta de servicio predeterminada de Compute Engine para ejecutar los flujos de trabajo. La cuenta de servicio predeterminada de Compute Engine tiene un nombre como el siguiente:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
- Haz clic en la pestaña Permisos.
- Haz clic en Conceder acceso. Aparecerá el panel Añadir principales.
- En el cuadro Nuevos principales, introduce la dirección de correo de la cuenta de servicio que has creado en un paso anterior.
- En la lista desplegable Rol, selecciona Cuentas de servicio > Usuario de cuenta de servicio.
- Haz clic en Guardar.
-
Define la variable de entorno GOOGLE_APPLICATION_CREDENTIALS en la ruta del archivo JSON que contiene la clave de tu cuenta de servicio. Esta variable solo se aplica a la sesión de shell actual, por lo que, si abres una nueva sesión, tendrás que volver a definirla.
Ejemplo: Linux o macOS
Sustituye [PATH] por la ruta del archivo JSON que contiene la clave de tu cuenta de servicio.
export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
Por ejemplo:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
Ejemplo: Windows
Sustituye [PATH] por la ruta del archivo JSON que contiene la clave de tu cuenta de servicio y [FILE_NAME] por el nombre del archivo.
Con PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
Por ejemplo:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\[FILE_NAME].json"
Con el símbolo del sistema:
set GOOGLE_APPLICATION_CREDENTIALS=[PATH]
Ejecutar un flujo de procesamiento
Para ejecutar un PipelineJob
de Vertex AI, debes crear un objeto PipelineJob
y, a continuación, invocar el método submit
.
Tipos de entrada especiales admitidos por KFP
Al crear una ejecución de una canalización, también puedes transferir los siguientes marcadores de posición admitidos por el SDK de KFP como entradas:
{{$.pipeline_job_name_placeholder}}
{{$.pipeline_job_resource_name_placeholder}}
{{$.pipeline_job_id_placeholder}}
{{$.pipeline_task_name_placeholder}}
{{$.pipeline_task_id_placeholder}}
{{$.pipeline_job_create_time_utc_placeholder}}
{{$.pipeline_root_placeholder}}
Para obtener más información, consulta Tipos de entrada especiales en la documentación de Kubeflow Pipelines v2.
from google.cloud import aiplatform
job = aiplatform.PipelineJob(display_name = DISPLAY_NAME,
template_path = COMPILED_PIPELINE_PATH,
job_id = JOB_ID,
pipeline_root = PIPELINE_ROOT_PATH,
parameter_values = PIPELINE_PARAMETERS,
enable_caching = ENABLE_CACHING,
encryption_spec_key_name = CMEK,
labels = LABELS,
credentials = CREDENTIALS,
project = PROJECT_ID,
location = LOCATION,
failure_policy = FAILURE_POLICY)
job.submit(service_account=SERVICE_ACCOUNT,
network=NETWORK)
Haz los cambios siguientes:
- DISPLAY_NAME: el nombre del flujo de procesamiento, que se mostrará en la consola Google Cloud .
COMPILED_PIPELINE_PATH: la ruta al archivo YAML de la canalización compilada. Puede ser un URI de Cloud Storage, una URL HTTP o HTTPS, o una ruta local.
Opcional: Para especificar una versión concreta de una canalización compilada, incluya la etiqueta de versión en uno de los siguientes formatos:
COMPILED_PIPELINE_PATH:TAG
, donde TAG es la etiqueta de versión.COMPILED_PIPELINE_PATH@SHA256_TAG
, donde SHA256_TAG es el valor hashsha256
de la versión de la canalización.
JOB_ID: (opcional) identificador único de esta ejecución de la canalización. Si no se especifica el ID de trabajo, Vertex AI Pipelines creará uno con el nombre del flujo de procesamiento y la marca de tiempo de cuando se inició la ejecución del flujo.
PIPELINE_ROOT_PATH: (opcional) Para anular la ruta raíz de la canalización especificada en la definición de la canalización, indique una ruta a la que pueda acceder el trabajo de la canalización, como un URI de un segmento de Cloud Storage.
PIPELINE_PARAMETERS: (opcional) Los parámetros de la canalización que se van a transferir a esta ejecución. Por ejemplo, crea un
dict()
con los nombres de los parámetros como claves del diccionario y los valores de los parámetros como valores del diccionario.ENABLE_CACHING: (opcional) Especifica si esta ejecución de flujo de procesamiento usa el almacenamiento en caché de la ejecución. El almacenamiento en caché de la ejecución reduce los costes al omitir las tareas de la canalización en las que se conoce la salida del conjunto de entradas actual. Si no se especifica el argumento enable_caching, se usará el almacenamiento en caché de la ejecución en esta ejecución de la canalización. Más información sobre el almacenamiento en caché de ejecuciones
CMEK: (opcional) El nombre de la clave de cifrado gestionada por el cliente que quieras usar en esta ejecución de la canalización.
LABELS: (opcional) Etiquetas definidas por el usuario para organizar este
PipelineJob
. Para obtener más información sobre las etiquetas de recursos, consulta el artículo Crear y gestionar etiquetas de la documentación de Resource Manager.Vertex AI Pipelines añade automáticamente la siguiente etiqueta a la ejecución del flujo de procesamiento:
vertex-ai-pipelines-run-billing-id: pipeline_run_id
donde
pipeline_run_id
es el ID único de la ejecución de la canalización.Esta etiqueta conecta el uso de los recursos generados por la ejecución de la canalización en los informes de facturación. Google Cloud
CREDENTIALS: (opcional) Credenciales personalizadas que se usarán para crear este
PipelineJob
. Anula las credenciales definidas enaiplatform.init
.PROJECT_ID: (opcional) el proyecto de Google Cloud en el que quieres ejecutar la canalización. Si no define este parámetro, se usará el proyecto definido en
aiplatform.init
.LOCATION: (opcional) La región en la que quieres ejecutar la canalización. Para obtener más información sobre las regiones en las que está disponible Vertex AI Pipelines, consulta la guía de ubicaciones de Vertex AI. Si no lo define, se usará la ubicación predeterminada establecida en
aiplatform.init
.FAILURE_POLICY: (opcional) Especifica la política de errores de toda la canalización. Están disponibles las siguientes configuraciones:
Para configurar la canalización de forma que falle después de que falle una tarea, introduce
fast
.Para configurar la canalización de forma que siga programando tareas aunque una de ellas falle, introduce
slow
.
Si no defines este parámetro, la configuración de la política de errores se establece en
slow
de forma predeterminada. Más información sobre las políticas de errores en la canalizaciónSERVICE_ACCOUNT: (opcional) Nombre de la cuenta de servicio que se va a usar en esta ejecución de la canalización. Si no especificas una cuenta de servicio, Vertex AI Pipelines ejecutará tu flujo de procesamiento con la cuenta de servicio predeterminada de Compute Engine.
NETWORK: (opcional) :nombre de la red de VPC emparejada que se va a usar en esta ejecución de la canalización.
Siguientes pasos
- Consulta cómo crear y ejecutar una canalización, y añadirla a un experimento o a una ejecución de experimento.