Dataflow ML

Dataflow ML le permite usar Dataflow para implementar y administrar canalizaciones de aprendizaje automático (AA) completas. Usa modelos de AA para realizar inferencias locales y remotas con canalizaciones por lotes y de transmisión. Usa herramientas de procesamiento de datos a fin de preparar tus datos para el entrenamiento de modelos y para procesar los resultados de los modelos.
Ya sea que quieras clasificar imágenes en tiempo real, ejecutar llamadas de inferencia remota o compilar un controlador de modelos personalizado, puedes encontrar ejemplos completos de Dataflow ML.
Usa la clase MLTransform a fin de realizar el procesamiento previo de los datos para los flujos de trabajo de aprendizaje automático (AA). Cuando combinas varias transformaciones de procesamiento de datos en una clase, MLTransform optimiza el proceso de aplicación de transformaciones de procesamiento de datos de Apache Beam a tu flujo de trabajo.
with pipeline as p:
  predictions = (
      p
      | beam.ReadFromSource('a_source')
      | RunInference(MODEL_HANDLER))
Usar RunInference es tan sencillo como agregar el código de transformación a tu canalización. En este ejemplo, MODEL_HANDLER es el objeto de configuración del modelo.
with beam.Pipeline() as p:
  transformed_data = (
    p
    | beam.Create(data)
    | MLTransform(...)
    | beam.Map(print))
A fin de preparar tus datos para entrenar modelos de AA, usa MLTransform en tu canalización. MLTransform une varias transformaciones de procesamiento de datos en una clase, lo que te permite usar una clase para varias tareas de procesamiento previo.

Inferencia y predicción con modelos previamente entrenados

Usa un modelo previamente entrenado con PyTorch.
Usa un modelo previamente entrenado con scikit-learn.
Usa un modelo previamente entrenado con TensorFlow.
Apache Beam tiene compatibilidad integrada para enviar solicitudes a un extremo de Vertex AI implementado de forma remota. En este notebook, se muestra cómo usar la transformación RunInference de Apache Beam para la clasificación de imágenes con Vertex AI.
Usa la transformación RunInference con un controlador de modelo con clave para usar varios modelos en la misma transformación RunInference.

Procesamiento de datos con MLTransform

Usar la clase MLTransform de Apache Beam con la API de incorporaciones de texto de Vertex AI para generar incorporaciones de texto. Las incorporaciones de texto son una forma de representar texto como vectores numéricos, lo que es necesario para muchas tareas de procesamiento de lenguaje natural (PLN).
Usar la clase MLTransform de Apache Beam con modelos de Hugging Face Hub para generar incorporaciones de texto. El framework de SentenceTransformers de Hugging Face usa Python para generar incorporaciones de imágenes, oraciones y texto.
Calcula un vocabulario único a partir de un conjunto de datos y, luego, asigna cada palabra o token a un índice de número entero distinto. Usa esta transformación para cambiar los datos textuales a representaciones numéricas en las tareas de aprendizaje automático.
Escala tus datos para que puedas usarlos a fin de entrenar tu modelo de AA. La clase MLTransform de Apache Beam incluye varias transformaciones de escalamiento de datos.

Inferencia y predicción con modelos de concentrador

Puedes usar modelos de Gemma en tus canalizaciones de inferencia para realizar análisis de opiniones.
Usa la transformación RunInference con un modelo entrenado de Hugging Face.
Usa la transformación RunInference para TensorFlow con un modelo entrenado de TensorFlow Hub.
Usa la transformación RunInference para tareas de IA generativas. En este notebook, se usa un modelo de lenguaje del Huging Face Model Hub.

Organización del flujo de trabajo del AA

Vertex AI Pipelines le permite automatizar, supervisar y administrar sus sistemas de AA mediante la organización de su flujo de trabajo sin servidores. Usa Vertex AI Pipelines para organizar los DAG de flujo de trabajo definidos por TFX o KFP y realizar un seguimiento automático de tus artefactos de AA mediante Vertex ML Metadata.
TensorFlow Extended (TFX) te permite implementar canalizaciones de AA completas mediante un framework de organización que tiene una integración incorporada con Apache Beam y el ejecutor de Dataflow.
Kubeflow permite que las implementaciones de flujos de trabajo de AA en Kubernetes sean simples, portátiles y escalables. Kubeflow Pipelines son flujos de trabajo completos de AA reutilizables compilados con el SDK de Kubeflow Pipelines.

Mantenimiento y evaluación de modelos

RunInference te permite realizar actualizaciones automáticas de modelos sin detener tu canalización de Apache Beam. Usa entradas complementarias para actualizar tu modelo en tiempo real, incluso mientras se ejecuta la canalización.
Usar el análisis de modelos de TensorFlow (TFMA) para investigar y visualizar el rendimiento de un modelo mediante la creación y comparación de dos modelos Con Apache Beam, puedes evaluar y comparar varios modelos en un solo paso.

Recursos

El uso de GPU en los trabajos de Dataflow puede acelerar las tareas de procesamiento de imágenes y de aprendizaje automático.
Para ejecutar los ejemplos de Dataflow ML, es posible que debas configurar los permisos de Google Cloud. Lee una guía detallada sobre los permisos necesarios para las canalizaciones de Dataflow.
Los ejemplos y el código fuente correspondiente están disponibles en GitHub. En GitHub, también puedes encontrar instrucciones para ejecutar los ejemplos en Colab.