Dataflow ML en flujos de trabajo de aprendizaje automático

Para orquestar flujos de trabajo complejos de aprendizaje automático, puedes crear frameworks que incluyan pasos de preprocesamiento y posprocesamiento de datos. Es posible que tengas que preprocesar los datos antes de usarlos para entrenar tu modelo o postprocesarlos para transformar la salida del modelo.

Los flujos de trabajo de aprendizaje automático suelen contener muchos pasos que, en conjunto, forman una canalización. Para crear tu canalización de aprendizaje automático, puedes usar uno de los siguientes métodos.

  • Usa un framework de orquestación que tenga una integración con Apache Beam y el runner de Dataflow, como TensorFlow Extended (TFX) o Kubeflow Pipelines (KFP). Esta opción es la menos compleja.
  • Crea un componente personalizado en una plantilla de Dataflow y, a continuación, llama a la plantilla desde tu pipeline de aprendizaje automático. La llamada contiene tu código de Apache Beam.
  • Crea un componente personalizado para usarlo en tu canalización de aprendizaje automático y coloca el código de Python directamente en el componente. Define una canalización de Apache Beam personalizada y usa el ejecutor de Dataflow en el componente personalizado. Esta opción es la más compleja y requiere que gestiones las dependencias de la canalización.

Una vez que hayas creado tu canalización de aprendizaje automático, puedes usar un orquestador para encadenar los componentes y crear un flujo de trabajo de aprendizaje automático completo. Para orquestar los componentes, puedes usar un servicio gestionado, como Vertex AI Pipelines.

Usar aceleradores de aprendizaje automático

En los flujos de trabajo de aprendizaje automático que implican un procesamiento de datos que requiere muchos recursos computacionales, como la inferencia con modelos grandes, puedes usar aceleradores con trabajadores de Dataflow. Dataflow admite el uso de GPUs y TPUs.

GPUs

Puedes usar GPUs de NVIDIA con tareas de Dataflow para acelerar el procesamiento. Dataflow admite varios tipos de GPU de NVIDIA, como T4, L4, A100, H100 y V100. Para usar GPUs, debes configurar tu canalización con una imagen de contenedor personalizada que tenga instalados los controladores y las bibliotecas de GPU necesarios.

Para obtener información detallada sobre cómo usar GPUs con Dataflow, consulta el artículo sobre la compatibilidad de Dataflow con GPUs.

TPUs

Dataflow también admite las TPUs de Cloud, que son aceleradores de IA diseñados a medida por Google y optimizados para modelos de IA grandes. Las TPUs pueden ser una buena opción para acelerar las cargas de trabajo de inferencia en frameworks como PyTorch, JAX y TensorFlow. Dataflow admite configuraciones de TPU de un solo host, en las que cada trabajador gestiona uno o varios dispositivos de TPU.

Para obtener más información, consulta el artículo sobre la compatibilidad de Dataflow con las TPUs.

Orquestación de flujos de trabajo

Los casos prácticos de la orquestación de flujos de trabajo se describen en las siguientes secciones.

Tanto TFX como Kubeflow Pipelines (KFP) usan componentes de Apache Beam.

Quiero usar Dataflow con Vertex AI Pipelines

Vertex AI Pipelines te ayuda a automatizar, monitorizar y gobernar tus sistemas de aprendizaje automático orquestando tus flujos de trabajo de aprendizaje automático sin servidor. Puedes usar Vertex AI Pipelines para orquestar gráficos acíclicos dirigidos (DAGs) de flujos de trabajo definidos por TFX o KFP, así como para monitorizar automáticamente tus artefactos de aprendizaje automático con Vertex ML Metadata. Para saber cómo incorporar Dataflow con TFX y KFP, consulta la información de las siguientes secciones.

Quiero usar Dataflow con Kubeflow Pipelines

Kubeflow es un kit de herramientas de aprendizaje automático diseñado para facilitar el uso, la portabilidad y la escalabilidad de los despliegues de flujos de trabajo de aprendizaje automático en Kubernetes. Los flujos de procesamiento de Kubeflow son flujos de trabajo de aprendizaje automático integrales y reutilizables que se crean con el SDK de Kubeflow Pipelines.

El servicio Kubeflow Pipelines tiene como objetivo proporcionar una orquestación integral y facilitar la experimentación y la reutilización. Con KFP, puedes experimentar con técnicas de orquestación y gestionar tus pruebas, así como reutilizar componentes y pipelines para crear varias soluciones integrales sin tener que empezar de cero cada vez.

Cuando usas Dataflow con KFP, puedes usar el operador DataflowPythonJobOP o el operador DataflowFlexTemplateJobOp. También puedes crear un componente totalmente personalizado. Te recomendamos que uses el operador DataflowPythonJobOP.

Si quieres crear un componente totalmente personalizado, consulta la página Componentes de Dataflow en la documentación de Vertex AI.

Quiero usar Dataflow con TFX

Los componentes de la canalización de TFX se basan en bibliotecas de TFX, y las bibliotecas de procesamiento de datos usan Apache Beam directamente. Por ejemplo, TensorFlow Transform traduce las llamadas del usuario a Apache Beam. Por lo tanto, puedes usar Apache Beam y Dataflow con las canalizaciones de TFX sin tener que hacer ningún trabajo de configuración adicional. Para usar TFX con Dataflow, cuando crees tu flujo de procesamiento de TFX, usa el ejecutor de Dataflow. Para obtener más información, consulta los siguientes recursos: