Dataflow ML

Dataflow ML ti consente di utilizzare Dataflow per eseguire il deployment e gestire pipeline di machine learning (ML) complete. Utilizza i modelli ML per eseguire l'inferenza locale e remota con pipeline batch e in streaming. Utilizza gli strumenti di elaborazione dei dati per preparare i dati per l'addestramento del modello ed elaborare i risultati dei modelli.
Che tu voglia classificare le immagini in tempo reale, eseguire chiamate di inferenza remota o creare un gestore del modello personalizzato, puoi trovare esempi completi di ML di Dataflow.
Utilizza la classe MLTransform per pre-elaborare i dati per i flussi di lavoro di machine learning (ML). Combinando più trasformazioni di elaborazione dei dati in un'unica classe, MLTransform semplifica il processo di applicazione delle trasformazioni di elaborazione dei dati ML di Apache Beam al tuo flusso di lavoro.
with pipeline as p:
  predictions = (
      p
      | beam.ReadFromSource('a_source')
      | RunInference(MODEL_HANDLER))
L'utilizzo di RunInference è semplice come aggiungere il codice di trasformazione alla pipeline. In questo esempio, MODEL_HANDLER è l'oggetto di configurazione del modello.
with beam.Pipeline() as p:
  transformed_data = (
    p
    | beam.Create(data)
    | MLTransform(...)
    | beam.Map(print))
Per preparare i dati per l'addestramento dei modelli di ML, utilizza MLTransform nella pipeline. MLTransform racchiude più trasformazioni di elaborazione dei dati in un'unica classe, consentendoti di utilizzare una classe per una serie di attività di preelaborazione.

Previsione e inferenza con modelli preaddestrati

Utilizza un modello preaddestrato con PyTorch.
Utilizza un modello preaddestrato con scikit-learn.
Utilizza un modello preaddestrato con TensorFlow.
Apache Beam supporta l'invio di richieste a un endpoint Vertex AI di cui è stato eseguito il deployment da remoto. Questo notebook mostra come utilizzare la trasformazione RunInference di Apache Beam per la classificazione delle immagini con Vertex AI.
Utilizza la trasformazione RunInference con un gestore del modello con chiavi per utilizzare più modelli nella stessa trasformazione RunInference.

Elaborazione dei dati con MLTransform

Utilizza la classe MLTransform di Apache Beam con l'API Vertex AI Text Embeddings per generare embedding di testo. Gli embedding di testo sono un modo per rappresentare il testo come vettori numerici, il che è necessario per molte attività di elaborazione del linguaggio naturale (NLP).
Utilizza la classe MLTransform di Apache Beam con i modelli di Hugging Face Hub per generare embedding di testo. Il framework SentenceTransformers di Hugging Face utilizza Python per generare embedding di frasi, testo e immagini.
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.
Scala 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.

Previsione e inferenza con i modelli hub

Puoi utilizzare i modelli Gemma nelle pipeline di inferenza per valutare il sentiment di una conversazione, riepilogarne i contenuti e creare la bozza di una risposta per una conversazione difficile.
Utilizza la trasformazione RunInference con un modello addestrato di Hugging Face.
Utilizza la trasformazione RunInference per TensorFlow con un modello addestrato da TensorFlow Hub.
Utilizza la trasformazione RunInference per le attività di AI generativa. Questo notebook utilizza un modello linguistico di Hugging Face Model Hub.

Orchestrazione del flusso di lavoro ML

Vertex AI Pipelines ti aiuta ad automatizzare, monitorare e gestire i tuoi sistemi di machine learning orchestrando i tuoi flussi di lavoro ML in modo serverless. Utilizza Vertex AI Pipelines per orchestrare i DAG del flusso di lavoro definiti da TFX o KFP e per monitorare automaticamente gli artefatti di ML utilizzando Vertex ML Metadata.
TensorFlow Extended (TFX) ti consente di eseguire il deployment di pipeline ML complete utilizzando un framework di orchestrazione con un'integrazione integrata con Apache Beam e il runner Dataflow.
Kubeflow rende i deployment dei flussi di lavoro di ML su Kubernetes semplici, portabili e scalabili. Kubeflow Pipelines sono flussi di lavoro ML completi riutilizzabili creati utilizzando l'SDK Kubeflow Pipelines.

Altre funzionalità

L'utilizzo di GPU nei job Dataflow può accelerare le attività di elaborazione delle immagini e del machine learning. Consulta i tipi di GPU supportati da Dataflow e i consigli sul tipo di GPU da utilizzare per i diversi carichi di lavoro.
Combina GPU e CPU per prestazioni elevate e costi ridotti. La possibilità di scegliere come target le risorse per fasi specifiche della pipeline offre maggiore flessibilità e funzionalità alla pipeline, nonché potenziali risparmi sui costi.
Apache Beam semplifica il flusso di lavoro di arricchimento dei dati fornendo una trasformazione di arricchimento chiavi in mano che puoi aggiungere alla pipeline.

Manutenzione e valutazione del modello

RunInference ti consente di eseguire aggiornamenti automatici dei modelli senza interrompere la pipeline Apache Beam. Utilizza gli input laterali per aggiornare il modello in tempo reale, anche durante l'esecuzione della pipeline.
Utilizza TensorFlow Model Analysis (TFMA) per esaminare e visualizzare le prestazioni di un modello creando e confrontando due modelli. Con Apache Beam, puoi valutare e confrontare più modelli in un unico passaggio.

Risorse

Per utilizzare RunInference con una pipeline Java, crea una trasformazione Python cross-language. La pipeline chiama la trasformazione, che esegue la pre-elaborazione, il post-trattamento e l'inferenza.
Per eseguire gli esempi di ML di Dataflow, potresti dover configurare le autorizzazioni Google Cloud. Leggi una guida dettagliata sulle autorizzazioni necessarie per le pipeline Dataflow.
Gli esempi e il codice sorgente corrispondente sono disponibili su GitHub. Su GitHub puoi anche trovare le istruzioni per eseguire gli esempi in Colab.