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.
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:
- Admite Python 3.8, 3.9, 3.10, 3.11 y 3.12.
- Admite canalizaciones por lotes y de transmisión.
- Admiten la API de incorporaciones de texto de Vertex AI y el módulo de Hugging Face Sentence Transformers.
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 FaceSentenceTransformers
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 StorageDATA
: Los datos de entrada que se transformaránTRANSFORM_FUNCTION_NAME
: es el nombre que asignas a tu función de transformación en el código.
¿Qué sigue?
- Para obtener más detalles sobre
MLTransform
, consulta Preprocesa datos en la documentación de Apache Beam. - Con el fin de obtener más ejemplos, consulta
MLTransform
para el procesamiento de datos en el catálogo de transformaciones de Apache Beam. - Ejecuta un notebook interactivo en Colab.