Pre-elabora i dati con MLTransform

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

Diagramma del flusso di lavoro di Dataflow ML con la fase di elaborazione dei dati evidenziata.

Figura 1. L'intero flusso di lavoro di Dataflow ML. Utilizza MLTransform nella fase di pre-elaborazione del flusso di lavoro.

Vantaggi

Il corso MLTransform offre i seguenti vantaggi:

  • Trasforma i tuoi dati senza scrivere codice complesso o gestire le librerie sottostanti.
  • Genera incorporamenti che puoi utilizzare per eseguire il push dei dati nei database vettoriali o per eseguire l'inferenza.
  • Concatena in modo efficiente più tipi di operazioni di elaborazione in un'unica interfaccia.

Assistenza e limitazioni

La classe MLTransform presenta le seguenti limitazioni:

  • Disponibile per le pipeline che utilizzano l'SDK Apache Beam Python 2.53.0 e versioni successive.
  • Le pipeline devono utilizzare le finestre predefinite.

Trasformazioni di incorporamento del testo:

Trasformazioni di elaborazione dati che utilizzano TFT:

  • Supporta Python 3.8, 3.9 e 3.10.
  • Supporta le pipeline in modalità 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 text-embeddings per generare incorporamenti 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 Hugging Face Hub per generare incorporamenti di testo. Il framework di Hugging Face SentenceTransformers utilizza 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 a un indice intero distinto. Usa questa trasformazione per trasformare i dati testuali in rappresentazioni numeriche per le attività di machine learning.
Voglio scalare i miei dati per addestrare il mio modello ML
Scalare 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 Trasformazioni nella documentazione di Apache Beam.

Utilizzo di 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 utilizzare
  • BCUKET_NAME: il nome del tuo bucket Cloud Storage
  • DATA: i dati di input da trasformare
  • TRANSFORM_FUNCTION_NAME: il nome che assegni alla funzione di trasformazione nel codice

Passaggi successivi