Vertex AI Pipelines te permite automatizar, monitorizar y controlar tus sistemas de aprendizaje automático (ML) sin servidor mediante el uso de flujos de procesamiento de aprendizaje automático para orquestar tus flujos de trabajo de aprendizaje automático. Puedes ejecutar por lotes flujos de procesamiento de aprendizaje automático definidos mediante el framework Kubeflow Pipelines o TensorFlow Extended (TFX). Para saber cómo elegir un framework para definir tu canalización de aprendizaje automático, consulta Interfaces para definir una canalización.
En esta página se ofrece un resumen de lo siguiente:
¿Qué es un flujo de procesamiento de aprendizaje automático?
Estructura de un flujo de procesamiento de aprendizaje automático
Ciclo de vida de un flujo de procesamiento de aprendizaje automático
Usar metadatos de Vertex ML para monitorizar el linaje de los artefactos de aprendizaje automático
¿Qué es un flujo de procesamiento de aprendizaje automático?
Un flujo de procesamiento de aprendizaje automático es una descripción portátil y extensible de un flujo de trabajo de MLOps como una serie de pasos denominados tareas de flujo de procesamiento. Cada tarea realiza un paso específico del flujo de trabajo para entrenar y desplegar un modelo de aprendizaje automático.
Con las canalizaciones de aprendizaje automático, puedes aplicar estrategias de MLOps para automatizar y monitorizar procesos repetibles en tu práctica de aprendizaje automático. Por ejemplo, puedes reutilizar una definición de una canalización para volver a entrenar continuamente un modelo con los datos de producción más recientes. Para obtener más información sobre MLOps en Vertex AI, consulta MLOps en Vertex AI.
Estructura de un flujo de procesamiento de aprendizaje automático
Un flujo de procesamiento de aprendizaje automático es un grafo acíclico dirigido (DAG) de tareas de flujo de procesamiento en contenedores que están interconectadas mediante dependencias de entrada y salida. Puedes crear cada tarea en Python o como imágenes de contenedor prediseñadas.
Puedes definir la canalización como un DAG mediante el SDK de Kubeflow Pipelines o el SDK de TFX, compilarlo en su YAML para la representación intermedia y, a continuación, ejecutar la canalización. De forma predeterminada, las tareas de la canalización se ejecutan en paralelo. Puedes vincular las tareas para ejecutarlas en serie. Para obtener más información sobre las tareas de flujo de trabajo, consulta Tarea de flujo de trabajo. Para obtener más información sobre el flujo de trabajo para definir, compilar y ejecutar la canalización, consulta Ciclo de vida de una canalización de aprendizaje automático.
Tareas y componentes de flujos de procesamiento
Una tarea de flujo de procesamiento es una instanciación de un componente de flujo de procesamiento con entradas específicas. Al definir tu flujo de procesamiento de aprendizaje automático, puedes interconectar varias tareas para formar un DAG. Para ello, debes dirigir las salidas de una tarea del flujo a las entradas de la siguiente tarea del flujo de trabajo de aprendizaje automático. También puedes usar las entradas de la canalización de aprendizaje automático como entradas de una tarea de canalización.
Componente de flujo de procesamiento
Un componente de una canalización es un conjunto de código independiente que realiza un paso específico de un flujo de trabajo de aprendizaje automático, como el preprocesamiento de datos, el entrenamiento de modelos o la implementación de modelos. Un componente suele constar de lo siguiente:
Entradas: un componente puede tener uno o varios parámetros de entrada y artefactos.
Salidas: cada componente tiene uno o varios parámetros de salida o artefactos.
Lógica: es el código ejecutable del componente. En el caso de los componentes en contenedores, la lógica también contiene la definición del entorno o la imagen del contenedor en el que se ejecuta el componente.
Los componentes son la base para definir tareas en un flujo de procesamiento de aprendizaje automático. Para definir tareas de flujo de procesamiento, puedes usar Google Cloud componentes de flujo de procesamiento predefinidos o crear tus propios componentes personalizados.
Componentes predefinidos
Usa Google Cloud componentes de flujo de procesamiento predefinidos si quieres usar funciones de Vertex AI, como AutoML, en tu flujo de procesamiento. Para saber cómo usar Google Cloud componentes de flujo de procesamiento para definir un flujo de procesamiento, consulta Crear un flujo de procesamiento.
Componentes personalizados
Puedes crear tus propios componentes personalizados para usarlos en tu canalización de aprendizaje automático. Para obtener más información sobre cómo crear componentes personalizados, consulta Crear tus propios componentes de la canalización.
Para saber cómo crear componentes personalizados de Kubeflow Pipelines, consulta el cuaderno del tutorial Pipelines with lightweight components based on Python functions (Pipelines con componentes ligeros basados en funciones de Python) en GitHub. Para saber cómo crear componentes de TFX personalizados, consulta el tutorial sobre componentes de función de Python de TFX en los tutoriales de TensorFlow Extended en producción.
Tarea de flujo de procesamiento
Una tarea de flujo de procesamiento es la instanciación de un componente de flujo de procesamiento y realiza un paso específico en tu flujo de trabajo de aprendizaje automático. Puedes crear tareas de la canalización de aprendizaje automático con Python o como imágenes de contenedor precompiladas.
En una tarea, puedes aprovechar las funciones de computación bajo demanda de Vertex AI con Kubernetes para ejecutar tu código de forma escalable o delegar tu carga de trabajo en otro motor de ejecución, como BigQuery, Dataflow o Dataproc sin servidor.
Ciclo de vida de un flujo de procesamiento de aprendizaje automático
Desde la definición hasta la ejecución y la monitorización, el ciclo de vida de un flujo de procesamiento de aprendizaje automático consta de las siguientes fases generales:
Definir: el proceso de definir un flujo de procesamiento de aprendizaje automático y sus tareas también se denomina "crear un flujo de procesamiento". En esta fase, debes seguir estos pasos:
Elige un framework de aprendizaje automático: Vertex AI Pipelines admite flujos de procesamiento de aprendizaje automático definidos con el framework de TFX o de Kubeflow Pipelines. Para saber cómo elegir un framework para crear tu canalización, consulta Interfaces para definir una canalización.
Define las tareas de la canalización y configúrala: para obtener más información, consulta Crear una canalización.
Compilar: en esta fase, debes seguir estos pasos:
Genera la definición de tu flujo de procesamiento de aprendizaje automático en un archivo YAML compilado para la representación intermedia, que puedes usar para ejecutar tu flujo de procesamiento de aprendizaje automático.
Opcional: Puedes subir el archivo YAML compilado como una plantilla de canalización a un repositorio y reutilizarlo para crear ejecuciones de canalizaciones de aprendizaje automático.
Ejecutar: crea una instancia de ejecución de tu flujo de procesamiento de aprendizaje automático con el archivo YAML compilado o una plantilla de flujo de procesamiento. La instancia de ejecución de una definición de flujo de procesamiento se denomina ejecución de flujo de procesamiento.
Puedes crear una ejecución de flujo de trabajo única o usar la API del programador para crear ejecuciones de flujo de trabajo periódicas a partir de la misma definición de flujo de trabajo de aprendizaje automático. También puedes clonar una ejecución de flujo de trabajo. Para saber cómo elegir una interfaz para ejecutar una canalización de aprendizaje automático, consulta Interfaces para ejecutar una canalización. Para obtener más información sobre cómo crear una ejecución de un flujo de trabajo, consulta Ejecutar un flujo de trabajo.
Monitorizar, visualizar y analizar ejecuciones: después de crear una ejecución de flujo de procesamiento, puedes hacer lo siguiente para monitorizar el rendimiento, el estado y los costes de las ejecuciones de flujos de procesamiento:
Configura notificaciones por correo electrónico para los errores de las canalizaciones. Para obtener más información, consulta Configurar notificaciones por correo electrónico.
Usa Cloud Logging para crear entradas de registro de eventos de monitorización. Para obtener más información, consulta Ver los registros de trabajos de la canalización.
Visualiza, analiza y compara ejecuciones de flujos de procesamiento. Para obtener más información, consulta Visualizar y analizar resultados de flujos de procesamiento.
Usa la exportación de Facturación de Cloud a BigQuery para analizar los costes de las ejecuciones de la canalización. Para obtener más información, consulta Información sobre los costes de las ejecuciones de flujos de trabajo.
Opcional: detener o eliminar ejecuciones de flujo de trabajo: no hay ninguna restricción en cuanto al tiempo que puedes mantener activa una ejecución de flujo de trabajo. También puedes hacer lo siguiente:
Detener una ejecución de un flujo de procesamiento.
Pausar o reanudar una programación de ejecución de una canalización.
Eliminar una plantilla de flujo de procesamiento, una ejecución de flujo de procesamiento o una programación de ejecución de flujo de procesamiento.
¿Qué es una ejecución de un flujo de procesamiento?
Una ejecución de flujo de procesamiento es una instancia de ejecución de la definición de tu flujo de procesamiento de aprendizaje automático. Cada ejecución de una canalización se identifica con un nombre único. Con Vertex AI Pipelines, puedes crear una ejecución de un flujo de procesamiento de aprendizaje automático de las siguientes formas:
Usar la definición YAML compilada de una canalización
Usar una plantilla de flujo de procesamiento de la galería de plantillas
Para obtener más información sobre cómo crear una ejecución de un flujo de trabajo, consulta Ejecutar un flujo de trabajo. Para obtener más información sobre cómo crear una ejecución de flujo de procesamiento a partir de una plantilla de flujo de procesamiento, consulta Crear, subir y usar una plantilla de flujo de procesamiento.
Para obtener información sobre cómo capturar y almacenar metadatos de ejecuciones de canalizaciones con Vertex ML Metadata, consulta Usar Vertex ML Metadata para hacer un seguimiento del linaje de los artefactos de aprendizaje automático.
Para obtener información sobre cómo usar las ejecuciones de canalizaciones para experimentar con tu flujo de trabajo de aprendizaje automático mediante Vertex AI Experiments, consulta Añadir ejecuciones de canalizaciones a experimentos.
Monitorizar el linaje de los artefactos de aprendizaje automático
Una ejecución de un flujo de trabajo contiene varios artefactos y parámetros, incluidos los metadatos del flujo de trabajo. Para comprender los cambios en el rendimiento o la precisión de tu sistema de aprendizaje automático, debes analizar los metadatos y el linaje de los artefactos de aprendizaje automático de las ejecuciones de tu canalización de aprendizaje automático. El linaje de un artefacto de AA incluye todos los factores que han contribuido a su creación, junto con metadatos y referencias a artefactos derivados de él.
Los gráficos de linaje te ayudan a analizar la causa raíz de los problemas y el impacto que tienen en los elementos posteriores. Cada ejecución de una canalización genera un gráfico de linaje de los parámetros y artefactos que se introducen en la ejecución, se materializan en ella y se generan a partir de ella. Los metadatos que componen este gráfico de linaje se almacenan en Vertex ML Metadata. Estos metadatos también se pueden sincronizar con Dataplex Universal Catalog.
Usar metadatos de Vertex ML para monitorizar el linaje de los artefactos de la canalización
Cuando ejecutas una canalización con Vertex AI Pipelines, todos los parámetros y los metadatos de artefactos que consume y genera la canalización se almacenan en Vertex ML Metadata. Vertex ML Metadata es una implementación gestionada de la biblioteca ML Metadata de TensorFlow y admite el registro y la escritura de esquemas de metadatos personalizados. Cuando creas una ejecución de un flujo de trabajo en Vertex AI Pipelines, los metadatos de la ejecución se almacenan en el almacén de metadatos predeterminado del proyecto y la región en los que ejecutas el flujo de trabajo.
Usar Dataplex Universal Catalog para monitorizar el linaje de los artefactos de la canalización
Catálogo universal de Dataplex es un tejido de datos global y entre proyectos integrado con varios sistemas de Google Cloud, como Vertex AI, BigQuery y Cloud Composer. En Dataplex Universal Catalog, puedes buscar un artefacto de una canalización y ver su gráfico de linaje. Ten en cuenta que, para evitar conflictos entre artefactos, todos los recursos catalogados en Dataplex Universal Catalog se identifican con un nombre completo (FQN).
Para obtener más información sobre cómo monitorizar el linaje de los artefactos de aprendizaje automático con Vertex ML Metadata y Dataplex Universal Catalog, consulta Monitorizar el linaje de los artefactos de la canalización.
Para obtener más información sobre cómo visualizar, analizar y comparar ejecuciones de flujos de procesamiento, consulta el artículo Visualizar y analizar resultados de flujos de procesamiento. Para ver una lista de los tipos de artefactos propios definidos en Google Cloud Componentes de canalización, consulta Tipos de artefactos de metadatos de aprendizaje automático.
Añadir ejecuciones de la canalización a los experimentos
Vertex AI Experiments te permite monitorizar y analizar varias arquitecturas de modelos, hiperparámetros y entornos de entrenamiento para encontrar el mejor modelo para tu caso práctico de aprendizaje automático. Después de crear una ejecución de flujo de procesamiento de AA, puede asociarla a un experimento o a una ejecución de experimento. De esta forma, puedes experimentar con diferentes conjuntos de variables, como hiperparámetros, número de pasos de entrenamiento o iteraciones.
Para obtener más información sobre cómo experimentar con flujos de trabajo de aprendizaje automático mediante Vertex AI Experiments, consulta la introducción a Vertex AI Experiments.
Siguientes pasos
Consulta las interfaces que puedes usar para definir y ejecutar flujos de procesamiento con Vertex AI Pipelines.
Para empezar, consulta cómo definir una canalización con el SDK de Kubeflow Pipelines.
Consulta las prácticas recomendadas para implementar modelos de aprendizaje automático con entrenamiento personalizado en Vertex AI.