Questa pagina spiega perché e come utilizzare la funzionalità
MLTransform
per preparare i dati per l'addestramento dei modelli di machine learning (ML). Abbinando più trasformazioni di elaborazione dei dati in un'unica classe, MLTransform
semplifica il processo di applicazione delle operazioni di elaborazione dei dati di Apache Beam ML al
tuo flusso di lavoro.
MLTransform
nel passaggio di pre-elaborazione del flusso di lavoro.
Vantaggi
La classe MLTransform
offre i seguenti vantaggi:
- Trasforma i dati senza scrivere codice complesso o gestire le librerie di base.
- Genera embedding che puoi utilizzare per inviare dati ai database vettoriali o per eseguire l'inferenza.
- Collega in modo efficiente più tipi di operazioni di elaborazione con un'unica interfaccia.
Supporto e limitazioni
La classe MLTransform
presenta le seguenti limitazioni:
- Disponibile per le pipeline che utilizzano l'SDK Apache Beam per Python 2.53.0 e versioni successive.
- Le pipeline devono utilizzare finestre predefinite.
Trasformazioni di embedding di testo:
- Supporta Python 3.8, 3.9, 3.10, 3.11 e 3.12.
- Supporta sia le pipeline in batch che quelle in streaming.
- Supporta l'API Vertex AI per gli embedding di testo e il modulo Hugging Face Sentence Transformers.
Trasformazioni di elaborazione dei dati che utilizzano TFT:
- Supporta Python 3.9, 3.10, 3.11.
- Supporta le pipeline batch.
Casi d'uso
I notebook di esempio mostrano come utilizzare MLTransform
per casi d'uso specifici.
- Voglio generare embedding di testo per il mio modello LLM utilizzando Vertex AI
- Utilizza la classe
MLTransform
di Apache Beam con l'API Vertex AI per gli embedding di testo per generare embedding di testo. Gli incorporamenti di testo sono un modo per rappresentare il testo come vettori numerici, il che è necessario per molte attività di elaborazione del linguaggio naturale (NLP). - Voglio generare incorporamenti di testo per il mio LLM utilizzando Hugging Face
- Utilizza la classe
MLTransform
di Apache Beam con i modelli di Hugging Face Hub per generare embedding di testo. Il framework Hugging FaceSentenceTransformers
utilizza Python per generare embedding di frasi, testo e immagini. - Voglio calcolare un vocabolario da un set di dati
- Calcola un vocabolario univoco da un set di dati e poi mappa ogni parola o token a un indice intero distinto. Utilizza questa trasformazione per convertire i dati di testo in rappresentazioni numeriche per le attività di machine learning.
- Voglio scalare i miei dati per addestrare il mio modello ML
- Escala i dati in modo da poterli utilizzare per addestrare il modello ML. La classe
MLTransform
di Apache Beam include più trasformazioni di scalabilità dei dati.
Per un elenco completo delle trasformazioni disponibili, consulta Transforms nella documentazione di Apache Beam.
Utilizzare MLTransform
Per utilizzare la classe MLTransform
per pre-elaborare i dati, includi il seguente codice nella
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))
Sostituisci i seguenti valori:
TRANSFORM_NAME
: il nome della trasformazione da utilizzareBCUKET_NAME
: il nome del bucket Cloud StorageDATA
: i dati di input da trasformareTRANSFORM_FUNCTION_NAME
: il nome assegnato alla funzione di trasformazione nel codice
Passaggi successivi
- Per ulteriori dettagli su
MLTransform
, consulta Pre-elaborare i dati nella documentazione di Apache Beam. - Per altri esempi, consulta
MLTransform
per l'elaborazione dei dati nel catalogo delle trasformazioni di Apache Beam. - Esegui un blocco note interattivo in Colab.