Pre-elabora i dati con MLTransform

Questa pagina spiega perché e come utilizzare la funzionalità MLTransform per preparare i dati per l'addestramento dei modelli di machine learning (ML). Di combinando più trasformazioni dell'elaborazione dei dati in un'unica classe, MLTransform semplifica il processo di applicazione delle operazioni di elaborazione dati ML di Apache Beam il tuo flusso di lavoro.

Diagramma del flusso di lavoro ML di Dataflow con il passaggio di elaborazione dei dati evidenziato.

Figura 1. Il flusso di lavoro completo di Dataflow ML. Utilizza le funzionalità di MLTransform nella fase 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 incorporamenti da utilizzare per inviare i 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 Apache Beam SDK Python 2.53.0 e versioni successive.
  • Le pipeline devono utilizzare finestre predefinite.

Trasformazioni di embedding di testo:

Trasformazioni dell'elaborazione dei dati che utilizzano TFT:

  • Supporta Python 3.9, 3.10, 3.11.
  • Supporta le pipeline batch.

Casi d'uso

I blocchi note di esempio mostrano come utilizzare MLTransform per casi d'uso specifici.

Voglio generare incorporamenti di testo per il mio 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 rappresentare il testo come vettori numerici, operazione necessaria per molti di elaborazione del linguaggio (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. Hugging Face SentenceTransformers usa Python per generare incorporamenti 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 su 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 di ML. La classe MLTransform di Apache Beam include più trasformazioni di scalabilità dei dati.

Per un elenco completo delle trasformazioni disponibili, vedi Trasformazioni nella documentazione di Apache Beam.

Utilizzare MLTransform

Per utilizzare la classe MLTransform per pre-elaborare i dati, includi il seguente codice nella della tua 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 utilizzare
  • BCUKET_NAME: il nome del bucket Cloud Storage
  • DATA: i dati di input da trasformare
  • TRANSFORM_FUNCTION_NAME: il nome che assegni alla trasformazione nel codice

Passaggi successivi