Dataflow ML

Dataflow ML ti consente di utilizzare Dataflow per eseguire il deployment e gestire pipeline di machine learning (ML) complete. Utilizzare i modelli ML per eseguire l'inferenza locale e remota con pipeline in modalità batch e flusso. Utilizza gli strumenti di elaborazione dati per preparare i dati per l'addestramento dei modelli ed elaborare i risultati dei modelli.
Se vuoi classificare le immagini in tempo reale, eseguire chiamate di inferenza remota o creare un gestore di modelli personalizzato, puoi trovare esempi completi di Dataflow ML.
Utilizza la classe MLTransform per pre-elaborare i dati per i flussi di lavoro di machine learning (ML). Combinando più trasformazioni dell'elaborazione dei dati in un'unica classe, MLTransform semplifica il processo di applicazione delle trasformazioni dell'elaborazione 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 ML, utilizza MLTransform nella pipeline. MLTransform aggrega più trasformazioni dell'elaborazione dei dati in un'unica classe, consentendoti di utilizzare un'unica classe per una serie di attività di pre-elaborazione.

Previsione e inferenza con modelli preaddestrati

Utilizza un modello preaddestrato con Pytorch.
Usa un modello preaddestrato con scikit-learn.
Utilizzare un modello preaddestrato con TensorFlow.
Apache Beam include il supporto integrato per l'invio di richieste a un endpoint Vertex AI di cui è stato eseguito il deployment da remoto. Questo blocco note mostra come utilizzare la trasformazione RunInference di Apache Beam per la classificazione delle immagini con Vertex AI.
Usa la trasformazione RunInference con un gestore di modelli con chiave per usare più modelli nella stessa trasformazione RunInference.

Elaborazione dati con MLTransform

Utilizza la classe MLTransform di Apache Beam con l'API text-embeddings di Vertex AI per generare incorporamenti di testo. Gli incorporamenti di testo sono un modo per rappresentare il testo come vettori numerici, requisito necessario per molte attività di elaborazione del linguaggio naturale (NLP).
Utilizza la classe MLTransform di Apache Beam con i modelli Hugging Face Hub per generare incorporamenti di testo. Il framework SentenceTransformers di Hugging Face utilizza Python per generare incorporamenti di frasi, testo e immagini.
Calcola un vocabolario univoco da un set di dati, quindi mappa ogni parola o token a un indice intero distinto. Utilizza questa trasformazione per cambiare i dati di testo in rappresentazioni numeriche per le attività di machine learning.
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.

Previsione e inferenza con i modelli hub

Puoi utilizzare i modelli Gemma nelle pipeline di inferenza per eseguire l'analisi del sentiment.
Utilizza la trasformazione RunInference con un modello addestrato di Hugging Face.
Utilizza la trasformazione RunInference per TensorFlow con un modello addestrato da TensorFlow Hub.
Usa la trasformazione RunInference per le attività di AI generativa. Questo blocco note utilizza un modello linguistico dell'hub Hugging Face Model.

Orchestrazione dei flussi di lavoro ML

Vertex AI Pipelines ti aiuta ad automatizzare, monitorare e gestire i tuoi sistemi di ML tramite l'orchestrazione dei tuoi flussi di lavoro ML con un approccio serverless. Usa Vertex AI Pipelines per orchestrare i DAG del flusso di lavoro definiti da TFX o KFP e per tracciare automaticamente gli artefatti ML utilizzando Vertex ML Metadata.
TensorFlow Extended (TFX) consente di eseguire il deployment di pipeline ML complete utilizzando un framework di orchestrazione che ha un'integrazione integrata con Apache Beam e il runner Dataflow.
Kubeflow rende i deployment dei flussi di lavoro 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'uso delle GPU nei job Dataflow può accelerare le attività di elaborazione delle immagini e del machine learning. Vedi i tipi di GPU supportati da Dataflow e i suggerimenti sul tipo di GPU da utilizzare per diversi carichi di lavoro.
Combina GPU e CPU per ottenere prestazioni elevate a costi inferiori. La possibilità di indirizzare le risorse a passaggi specifici della pipeline offre ulteriori flessibilità e capacità, oltre a potenziali risparmi sui costi.
Apache Beam semplifica il flusso di lavoro di arricchimento dei dati fornendo una trasformazione di arricchimento pronta all'uso che puoi aggiungere alla tua pipeline.

Manutenzione e valutazione del modello

RunInference consente di eseguire aggiornamenti automatici del modello senza arrestare la pipeline Apache Beam. Utilizza gli input aggiuntivi per aggiornare il modello in tempo reale, anche mentre la pipeline è in esecuzione.
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 solo passaggio.

Risorse

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