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 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))
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))
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

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 modelos 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.

Funciones adicionales

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 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.
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

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.
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

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.
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.
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.