Dataflow ML

Dataflow ML consente di utilizzare Dataflow per eseguire il deployment e gestire pipeline complete di machine learning (ML). Utilizza 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 del modello ed elaborare i risultati dei modelli.
Puoi trovare esempi completi di Dataflow ML, ad esempio se vuoi classificare le immagini in tempo reale, eseguire chiamate di inferenza da remoto o creare un gestore di modelli personalizzati.
Utilizza la classe MLTransform per pre-elaborare dati per i flussi di lavoro di machine learning (ML). Combinando più trasformazioni di elaborazione dati in un'unica classe, MLTransform semplifica il processo di applicazione delle trasformazioni dell'elaborazione dei dati di Apache Beam ML al tuo flusso di lavoro.
with pipeline as p:
  predictions = (
      p
      | beam.ReadFromSource('a_source')
      | RunInference(MODEL_HANDLER))
L'uso di RunInference è semplice quanto aggiungere il codice di trasformazione alla tua 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 di modelli ML, utilizza MLTransform nella tua pipeline. MLTransform aggrega più trasformazioni di elaborazione dati in un'unica classe, consentendoti di utilizzarne una per una serie di attività di pre-elaborazione.

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 offre supporto integrato per l'invio di richieste a un endpoint Vertex AI di cui è stato eseguito il deployment in 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 Vertex AI text-embeddings per generare incorporamenti di testo. Le 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).
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 trasformare i dati testuali 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 diverse trasformazioni di scalabilità dei dati.

Previsione e inferenza con modelli hub

Puoi utilizzare i modelli Gemma nelle tue pipeline di inferenza per eseguire l'analisi del sentiment.
Usa la trasformazione RunInference con un modello addestrato di Faccia abbracciante.
Usa 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 Hub.

Orchestrazione del flusso di lavoro ML

Vertex AI Pipelines ti aiuta ad automatizzare, monitorare e gestire i tuoi sistemi di ML 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 ML utilizzando Vertex ML Metadata.
TensorFlow Extended (TFX) 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 ML su Kubernetes semplici, portabili e scalabili. Le pipeline di Kubeflow sono flussi di lavoro ML completi e riutilizzabili, creati utilizzando l'SDK Kubeflow Pipelines.

Manutenzione e valutazione del modello

RunInference consente di eseguire aggiornamenti automatici del modello senza arrestare la pipeline Apache Beam. Utilizza gli input secondari per aggiornare il modello in tempo reale, anche mentre la pipeline è in esecuzione.
Utilizza TensorFlow Model Analysis (TFMA) per analizzare 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

L'utilizzo di GPU nei job Dataflow può accelerare le attività di elaborazione delle immagini e del machine learning.
Per eseguire gli esempi di Dataflow ML, 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.