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.
Predicción e inferencia
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.
Procesamiento de datos
Usa la clase
MLTransform
para procesar previamente los datos de los flujos de trabajo de aprendizaje automático (AA). A través de la combinación de varias transformaciones de procesamiento de datos en una clase, MLTransform
optimiza el proceso de aplicación de transformaciones de procesamiento de datos de AA de Apache Beam en 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 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))
Código de MLTransform
Para preparar los 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 diversas tareas de procesamiento previo.
Inferencia y predicción con modelos previamente entrenados
Tengo un modelo de Pytorch
Usa un modelo previamente entrenado con PyTorch.
Tengo un modelo de scikit-learn
Usa un modelo previamente entrenado con scikit-learn.
Tengo un modelo de TensorFlow
Usa un modelo previamente entrenado con TensorFlow.
Tengo un controlador de modelos de Vertex AI
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.
Quiero usar varios modelos entrenados de forma diferente en mi canalización
Usa la transformación
RunInference
con un controlador de modelos con clave para usar varios modelos en la misma transformación RunInference
.
Procesamiento de datos con MLTransform
Quiero generar incorporaciones de texto para mi LLM con Vertex AI
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).
Quiero generar incorporaciones de texto para mi LLM con Hugging Face
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.
Quiero calcular un vocabulario desde un conjunto de datos
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.
Quiero escalar mis datos para entrenar mi modelo de AA
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
Quiero ejecutar un LLM con un modelo abierto de Gemma
Puedes usar modelos de Gemma en tus canalizaciones de inferencia para realizar análisis de opiniones.
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 hacer una IA generativa
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
Quiero usar Dataflow con Vertex AI Pipelines
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.
Quiero usar Dataflow con TFX
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.
Quiero usar Dataflow con KFP
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.
Funciones adicionales
Usa GPU
El uso de GPU en los trabajos de Dataflow puede acelerar las tareas de procesamiento de imágenes y de aprendizaje automático. Consulta los tipos de GPU compatibles con Dataflow y las recomendaciones sobre qué tipo de GPU usar para diferentes cargas de trabajo.
Combina y combina CPU y GPU con el ajuste adecuado
Combina GPU y CPU para obtener un rendimiento alto y un costo menor. La capacidad de orientar los recursos a pasos de canalización específicos proporciona flexibilidad y capacidad adicionales de la canalización, y posibles ahorros de costos.
Enriquece las canalizaciones de transmisión con datos de Feature Store
Apache Beam simplifica el flujo de trabajo de enriquecimiento de datos, ya que proporciona una transformación de enriquecimiento lista para usar que puedes agregar a tu canalización.
Mantenimiento y evaluación de modelos
Actualización automática del modelo
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.
Evalúe tus modelos
Usa el análisis de modelos de TensorFlow (TFMA) para investigar y visualizar el rendimiento de un modelo a través de la creación y comparación de dos modelos. Con Apache Beam, puedes evaluar y comparar varios modelos en un solo paso.
Recursos
Ejecuta canalizaciones entre lenguajes
Para usar RunInference con una canalización de Java, crea una transformación de Python en varios lenguajes. La canalización llama a la transformación, que realiza el procesamiento previo, el procesamiento posterior y la inferencia.
Permisos de Dataflow
Para ejecutar los ejemplos de AA de Dataflow, es posible que debas configurar los permisos de Google Cloud. Lee una guía detallada sobre los permisos necesarios para las canalizaciones de Dataflow.
Consulta 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.