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.
Predicción e inferencia
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.
Procesamiento de datos
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))
Transformación RunInference
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))
Código de MLTransform
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
Tengo un modelo de Pytorch
Usa un modelo preentrenado con PyTorch.
Tengo un modelo de scikit-learn
Usa un modelo preentrenado con scikit-learn.
Tengo un modelo de TensorFlow
Usa un modelo preentrenado con TensorFlow.
Tengo un controlador de modelos de Vertex AI
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.
Quiero usar varios modelos entrenados de forma diferente en mi flujo de trabajo
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
Quiero generar incrustaciones de texto para mi LLM usando Vertex AI
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).
Quiero generar incrustaciones de texto para mi LLM usando Hugging Face
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.
Quiero calcular un vocabulario a partir de un conjunto de datos
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.
Quiero escalar mis datos para entrenar mi modelo 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
Quiero hacer un análisis de sentimiento y un resumen
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.
Tengo un modelo entrenado de Hugging Face
Usa la transformación
RunInference
con un modelo entrenado de Hugging Face.
Tengo un modelo entrenado de TensorFlow Hub
Usa la transformación
RunInference
para TensorFlow con un modelo entrenado de TensorFlow Hub.
Quiero usar la IA generativa
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
Quiero usar Dataflow con Vertex AI Pipelines
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.
Quiero usar Dataflow con TFX
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.
Quiero usar Dataflow con KFP
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
Detección de anomalías con métodos estadísticos
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
Usar aceleradores (GPUs o TPUs)
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.
Combinar CPUs y GPUs con el ajuste adecuado
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.
Enriquecer las canalizaciones de streaming con datos del almacén de características
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
Actualización automática 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.
Evaluar los modelos
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
Ejecutar flujos de procesamiento multilingües
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.
Permisos de Dataflow
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.
Ver los ejemplos en GitHub
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.
Consulta un ejemplo de caso práctico
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.