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 dati per preparare i dati per l'addestramento dei modelli ed elaborare i risultati dei modelli.
Previsione e inferenza
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.
Trattamento dati
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))
Trasformazione RunInference
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))
Codice MLTransform
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
Ho un modello Pytorch
Utilizza un modello preaddestrato con PyTorch.
Ho un modello Scikit-Learn
Usa un modello preaddestrato con scikit-learn.
Ho un modello TensorFlow
Utilizzare un modello preaddestrato con TensorFlow.
Ho un gestore del modello Vertex AI
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 notebook mostra come utilizzare la trasformazione
RunInference
di Apache Beam per la classificazione delle immagini con Vertex AI.
Voglio utilizzare più modelli addestrati in modo diverso nella mia pipeline
Utilizza la trasformazione
RunInference
con un gestore del modello con chiave per utilizzare più modelli nella stessa trasformazione RunInference
.
Elaborazione dei dati con MLTransform
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 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).
Voglio generare incorporamenti di testo per il mio LLM utilizzando Hugging Face
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.
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
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
Voglio eseguire analisi del sentiment e riepiloghi
Puoi utilizzare i modelli Gemma nelle pipeline di inferenza per valutare il sentiment di una conversazione, riassumerne i contenuti e scrivere una bozza di risposta per una conversazione difficile.
Ho un modello addestrato da Hugging Face
Utilizza la trasformazione
RunInference
con un modello addestrato di Hugging Face.
Ho un modello addestrato da TensorFlow Hub
Utilizza la trasformazione
RunInference
per TensorFlow con un modello addestrato da TensorFlow Hub.
Voglio utilizzare l'IA generativa
Utilizza la trasformazione
RunInference
per le attività di IA generativa. Questo notebook utilizza un modello linguistico di Hugging Face Model Hub.
Orchestrazione del flusso di lavoro ML
Voglio utilizzare Dataflow con Vertex AI Pipelines
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.
Voglio utilizzare Dataflow con TFX
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.
Voglio utilizzare Dataflow con KFP
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à
Utilizzare le GPU
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.
Combinare CPU e GPU con la giusta adattabilità
Combina GPU e CPU per ottenere prestazioni elevate a costi inferiori. La possibilità di scegliere come target le risorse per fasi specifiche della pipeline offre maggiore flessibilità e funzionalità alla pipeline, oltre a potenziali risparmi sui costi.
Arricchisci le pipeline in modalità flusso con i dati di Feature Store
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
Aggiornamento automatico del modello
RunInference
ti consente di eseguire aggiornamenti automatici dei modelli senza interrompere la pipeline Apache Beam. Utilizza gli input aggiuntivi per aggiornare il modello in tempo reale, anche mentre la pipeline è in esecuzione.
Valuta i tuoi modelli
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
Esegui pipeline tra linguaggi
Per utilizzare RunInference con una pipeline Java, crea una trasformazione Python tra linguaggi. La pipeline chiama la trasformazione, che esegue la pre-elaborazione, il post-trattamento e l'inferenza.
Autorizzazioni Dataflow
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.
Visualizza gli esempi su GitHub
Gli esempi e il codice sorgente corrispondente sono disponibili su GitHub. Su GitHub puoi anche trovare le istruzioni per eseguire gli esempi in Colab.