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.

Para obtener información sobre el uso de MLTransform para tareas de generación de embeddings, consulta Genera embeddings con MLTransform.

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.
  • Encadenar de manera eficiente varios tipos de operaciones de procesamiento con una interfaz.
  • Generar incorporaciones que puedas usar para enviar datos a bases de datos vectoriales o ejecutar inferencias.

    Para obtener más información sobre la generación de incorporaciones, consulta Genera incorporaciones con MLTransform.

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 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 de las incorporaciones.

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?