Preprocesar datos con MLTransform

En esta página se explica por qué y cómo usar la función MLTransform para preparar los datos para entrenar modelos de aprendizaje automático. Al combinar varias transformaciones de procesamiento de datos en una clase, MLTransform simplifica el proceso de aplicar operaciones de procesamiento de datos de aprendizaje automático de Apache Beam a tu flujo de trabajo.

Para obtener información sobre cómo usar MLTransform en tareas de generación de incrustaciones, consulta el artículo Generar incrustaciones con MLTransform.

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

Imagen 1. Flujo de trabajo completo de Dataflow ML. Usa MLTransform en el paso de preprocesamiento del flujo de trabajo.

Ventajas

La clase MLTransform ofrece las siguientes ventajas:

  • Transforma tus datos sin tener que escribir código complejo ni gestionar bibliotecas subyacentes.
  • Encadena de forma eficiente varios tipos de operaciones de procesamiento con una sola interfaz.
  • Genera incrustaciones que puedes usar para insertar datos en bases de datos vectoriales o para ejecutar inferencias.

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

Compatibilidad y limitaciones

La clase MLTransform tiene las siguientes limitaciones:

  • Disponible para las canalizaciones que usan las versiones 2.53.0 y posteriores del SDK de Apache Beam para Python.
  • Las canalizaciones deben usar ventanas predeterminadas.

Transformaciones de procesamiento de datos que usan TFT:

  • Compatibilidad con Python 3.9, 3.10 y 3.11.
  • Admite flujos de procesamiento por lotes.

Casos prácticos

Los cuadernos de ejemplo muestran cómo usar MLTransform en casos prácticos específicos de las inserciones.

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.

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

Usar MLTransform

Para usar la clase MLTransform y preprocesar 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))

Sustituye los siguientes valores:

  • TRANSFORM_NAME: el nombre de la transformación que se va a usar.
  • BCUKET_NAME: el nombre de tu segmento de Cloud Storage
  • DATA: los datos de entrada que se van a transformar
  • TRANSFORM_FUNCTION_NAME: el nombre que asignes a la función de transformación en tu código

Siguientes pasos