Preprocesa datos con MLTransform

En esta página, se explica por qué y cómo usar la función MLTransform a fin de preparar los datos para entrenar modelos de aprendizaje automático (AA). Mediante la combinación de varias transformaciones de procesamiento de datos en una clase, MLTransform optimiza el proceso de aplicación de operaciones de procesamiento de datos de AA de Apache Beam en tu flujo de trabajo.

Diagrama del flujo de trabajo del AA de Dataflow con el paso de procesamiento de datos destacado.

Figure 1. El flujo de trabajo completo de AA de Dataflow. Usa MLTransform en el paso de procesamiento previo del flujo de trabajo.

Ventajas

La clase MLTransform proporciona los siguientes beneficios:

  • Transforma tus datos sin tener que escribir código complejo ni administrar bibliotecas subyacentes.
  • Generar incorporaciones que puedas usar para enviar datos a bases de datos vectoriales o ejecutar inferencias.
  • Encadenar de manera eficiente varios tipos de operaciones de procesamiento con una interfaz.

Asistencia y limitaciones

La clase MLTransform tiene las siguientes limitaciones:

  • Disponible para las canalizaciones que usan la versión 2.53.0 y posterior del SDK de Apache Beam para Python.
  • Las canalizaciones deben usar ventanas predeterminadas.

Transformaciones de incorporación de texto:

Transformaciones de procesamiento de datos que usan TFT:

  • Admite Python 3.9, 3.10 y 3.11.
  • Admite canalizaciones por lotes.

Casos de uso

Los notebooks de ejemplo demuestran cómo usar MLTransform para casos de uso específicos.

Quiero generar incorporaciones de texto para mi LLM con Vertex AI
Usa 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
Usa la clase MLTransform de Apache Beam con los modelos de Hugging Face Hub para generar incorporaciones de texto. El framework de Hugging Face SentenceTransformers usa Python para generar incorporaciones de imágenes, texto y oraciones.
Quiero calcular un vocabulario de 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.

Para obtener una lista completa de las transformaciones disponibles, consulta Transformaciones en la documentación de Apache Beam.

Usa MLTransform

Para usar la clase MLTransform a fin de procesar previamente los datos, incluye el siguiente código en tu canalización:

  import apache_beam as beam
  from apache_beam.ml.transforms.base import MLTransform
  from apache_beam.ml.transforms.tft import TRANSFORM_NAME
  import tempfile

  data = [
      {
          DATA
      },
  ]

  artifact_location = gs://BUCKET_NAME
  TRANSFORM_FUNCTION_NAME = TRANSFORM_NAME(columns=['x'])

  with beam.Pipeline() as p:
    transformed_data = (
        p
        | beam.Create(data)
        | MLTransform(write_artifact_location=artifact_location).with_transform(
            TRANSFORM_FUNCTION_NAME)
        | beam.Map(print))

Reemplaza los siguientes valores:

  • TRANSFORM_NAME: el nombre de la transformación que se usará
  • BCUKET_NAME: el nombre de tu bucket de Cloud Storage
  • DATA: Los datos de entrada que se transformarán
  • TRANSFORM_FUNCTION_NAME: es el nombre que asignas a tu función de transformación en el código.

¿Qué sigue?