Dataflow ML

Dataflow ML te permite usar Dataflow para desplegar y gestionar flujos de procesamiento de aprendizaje automático completos. Usa modelos de aprendizaje automático para realizar inferencias locales y remotas con flujos de procesamiento por lotes y en streaming. Utiliza herramientas de procesamiento de datos para preparar tus datos para el entrenamiento de modelos y procesar sus resultados.
Tanto si quieres clasificar imágenes en tiempo real como si quieres ejecutar llamadas de inferencia remotas o crear un controlador de modelos personalizado, puedes consultar ejemplos completos de Dataflow ML.
Usa la clase MLTransform para preprocesar datos en flujos de trabajo de aprendizaje automático (ML). Al combinar varias transformaciones de procesamiento de datos en una clase, MLTransform simplifica el proceso de aplicar transformaciones de procesamiento de datos de aprendizaje automático 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 añadir 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))
Para preparar los datos para entrenar modelos de aprendizaje automático, usa MLTransform en tu canalización. MLTransform envuelve varias transformaciones de procesamiento de datos en una clase, lo que te permite usar una clase para diversas tareas de preprocesamiento.

Predicción e inferencia con modelos preentrenados

Usa un modelo preentrenado con PyTorch.
Usa un modelo preentrenado con scikit-learn.
Usa un modelo preentrenado con TensorFlow.
Apache Beam tiene compatibilidad integrada para enviar solicitudes a un endpoint de Vertex AI implementado de forma remota. En este cuaderno se muestra cómo usar la transformación RunInference de Apache Beam para clasificar 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

Usa la clase MLTransform de Apache Beam con la API de inserciones de texto de Vertex AI para generar inserciones de texto. Las incrustaciones de texto son una forma de representar el texto como vectores numéricos, lo que es necesario para muchas tareas de procesamiento del lenguaje natural (PLN).
Usa la clase MLTransform de Apache Beam con modelos de Hugging Face Hub para generar representaciones de texto. El framework SentenceTransformers de Hugging Face usa Python para generar representaciones de frases, texto e imágenes.
Calcula un vocabulario único a partir de un conjunto de datos y, a continuación, asigna cada palabra o token a un índice entero distinto. Usa esta transformación para convertir datos de texto en representaciones numéricas para tareas de aprendizaje automático.
Escala tus datos para poder usarlos en el entrenamiento de tu modelo de aprendizaje automático. La clase MLTransform de Apache Beam incluye varias transformaciones de escalado de datos.

Predicción e inferencia con modelos de Hub

Puedes usar modelos de Gemma en tus pipelines de inferencia para evaluar el sentimiento de una conversación, resumir el contenido de esa conversación y redactar una respuesta para una conversación difícil.
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 las tareas de IA generativa. En este cuaderno se usa un modelo de lenguaje de Hugging Face Model Hub.

Orquestación de flujos de trabajo de aprendizaje automático

Vertex AI Pipelines permite automatizar, monitorizar y gobernar los sistemas de aprendizaje automático orquestando el flujo de trabajo de aprendizaje automático sin servidor. Usa Vertex AI Pipelines para orquestar los DAGs de flujo de trabajo definidos por TFX o KFP y para monitorizar automáticamente tus artefactos de aprendizaje automático con Vertex ML Metadata.
TensorFlow Extended (TFX) te permite implementar flujos de procesamiento de aprendizaje automático completos mediante un framework de orquestación que tiene una integración con Apache Beam y el ejecutor de Dataflow.
Kubeflow simplifica los despliegues de flujos de trabajo de aprendizaje automático en Kubernetes, les añade portabilidad y mejora su escalabilidad. Los flujos de procesamiento de Kubeflow son flujos de trabajo de aprendizaje automático completos y reutilizables que se crean con el SDK de Kubeflow Pipelines.

Detección de anomalías

En este cuaderno se muestra cómo detectar anomalías en datos por lotes y en streaming mediante la AnomalyDetection PTransform. Usa el algoritmo de puntuación Z para identificar valores atípicos en un conjunto de datos.

Más funciones

Si usas aceleradores como GPUs y TPUs en tareas de Dataflow, puedes acelerar significativamente las tareas de procesamiento de datos que se usan con frecuencia en casos prácticos de aprendizaje automático y procesamiento de imágenes.

Las TPUs, en concreto, son aceleradores de IA diseñados a medida y optimizados para entrenar y usar modelos de IA grandes, lo que proporciona una forma versátil de escalar una amplia gama de cargas de trabajo de IA.

Combina GPUs y CPUs para obtener un alto rendimiento y reducir los costes. La posibilidad de orientar los recursos a pasos específicos de la canalización proporciona flexibilidad y capacidad adicionales, así como posibles ahorros de costes.
Apache Beam simplifica el flujo de trabajo de enriquecimiento de datos proporcionando una transformación de enriquecimiento lista para usar que puedes añadir a tu flujo de procesamiento.

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 laterales para actualizar tu modelo en tiempo real, incluso mientras se ejecuta la canalización.
Usa TensorFlow Model Analysis (TFMA) para investigar y visualizar el rendimiento de un modelo creando y comparando dos modelos. Con Apache Beam, puedes evaluar y comparar varios modelos en un solo paso.

Recursos

Para usar RunInference con una canalización de Java, crea una transformación de Python entre lenguajes. El flujo llama a la transformación, que realiza el preprocesamiento, el posprocesamiento y la inferencia.
Para ejecutar los ejemplos de aprendizaje automático de Dataflow, puede que tengas que configurar tus permisos de Google Cloud. Consulta 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.
En esta entrada de blog se explica cómo crear aplicaciones RAG con búsqueda semántica y representaciones numéricas (embeddings) en tiempo real. Usa Dataflow ML para preparar los datos convirtiéndolos en incrustaciones y almacenándolos en una base de datos de vectores como AlloyDB.