Nesta página, explicamos por que e como usar o
recurso MLTransform
para preparar seus dados para o treinamento de modelos de machine learning (ML). Ao combinar várias transformações de processamento de dados em uma classe, o MLTransform
simplifica o processo de aplicação de operações de processamento de dados de ML do Apache Beam no fluxo de trabalho.
MLTransform
na etapa de pré-processamento do fluxo de trabalho.
Benefícios
A classe MLTransform
oferece os seguintes benefícios:
- Transforme seus dados sem escrever códigos complexos ou gerenciar bibliotecas.
- Gere embeddings que podem ser usados para enviar dados a bancos de dados de vetores ou executar inferência.
- Encadeie vários tipos de operações de processamento de maneira eficiente com uma só interface.
Suporte e limitações
A classe MLTransform
tem as seguintes limitações:
- Disponível para pipelines que usam as versões 2.53.0 e posteriores do SDK do Apache Beam para Python.
- Os pipelines precisam usar janelas padrão.
Transformações de embedding de texto:
- Compatíveis com Python 3.8, 3.9, 3.10, 3.11 e 3.12.
- Compatíveis com pipelines em lote e de streaming.
- Compatíveis com a API text-embeddings da Vertex AI e o módulo Sentence Transformers da Hugging Face.
Transformações de processamento de dados que usam o TFT:
- Compatíveis com Python 3.9, 3.10, 3.11.
- Compatíveis com pipelines em lote.
Casos de uso
Os notebooks de exemplo demonstram como usar o MLTransform
para casos de uso específicos.
- Quero gerar embeddings de texto para meu LLM usando a Vertex AI
- Use a classe
MLTransform
do Apache Beam com a API text-embeddings da Vertex AI para gerar embeddings de texto. Os embeddings de texto são uma maneira de representar o texto como vetores numéricos, o que é necessário para muitas tarefas de processamento de linguagem natural (PLN). - Quero gerar embeddings de texto para meu LLM usando a Hugging Face
- Use a classe
MLTransform
do Apache Beam com modelos do Hugging Face Hub para gerar embeddings de texto. O frameworkSentenceTransformers
da Hugging Face usa Python para gerar embeddings de sentenças, textos e imagens. - Quero computar o vocabulário de um conjunto de dados
- Compute um vocabulário exclusivo de um conjunto de dados e depois mapeie cada palavra ou token com um índice distinto de números inteiros. Use essa transformação para transformar dados textuais em representações numéricas para tarefas de machine learning.
- Quero dimensionar meus dados para treinar um modelo de ML
- Dimensione os dados para usá-los no treinamento do seu modelo de ML. A classe
MLTransform
do Apache Beam inclui várias transformações de dimensionamento de dados.
Para conferir uma lista completa de transformações disponíveis, consulte Transformações na documentação do Apache Beam.
Usar o MLTransform
Para usar a classe MLTransform
para pré-processar dados, inclua o seguinte código no seu pipeline:
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))
Substitua os seguintes valores:
TRANSFORM_NAME
: o nome da transformação a ser usadaBCUKET_NAME
: o nome do bucket do Cloud Storage.DATA
: os dados de entrada a serem transformadosTRANSFORM_FUNCTION_NAME
: o nome que você atribui à função de transformação no seu código
A seguir
- Para mais detalhes sobre o
MLTransform
, consulte Pré-processar dados na documentação do Apache Beam. - Para mais exemplos, consulte
MLTransform
para tratamento de dados no catálogo de transformações do Apache Beam. - Execute um notebook interativo no Colab.