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 dei dati in una sola classe, MLTransform semplifica il processo di applicazione delle operazioni di elaborazione dei dati ML di Apache Beam al tuo flusso di lavoro.

Per informazioni sull'utilizzo di MLTransform per le attività di generazione di incorporamenti, vedi Generare incorporamenti con MLTransform.

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 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 sottostanti.
  • Concatenare in modo efficiente più tipi di operazioni di elaborazione con una sola interfaccia.
  • Genera embedding che puoi utilizzare per inserire dati in database vettoriali o per eseguire l'inferenza.

    Per ulteriori informazioni sulla generazione di incorporamenti, consulta Generare incorporamenti con MLTransform.

Supporto e limitazioni

La classe MLTransform presenta le seguenti limitazioni:

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

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 per gli incorporamenti.

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
Scala i dati in modo da poterli utilizzare per addestrare il modello ML. La classe Apache Beam MLTransform include più trasformazioni di scalabilità dei dati.

Per un elenco completo delle trasformazioni disponibili, consulta la sezione Trasformazioni nella documentazione di Apache Beam.

Utilizzare MLTransform

Per utilizzare la classe MLTransform per preelaborare 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