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.
Previsione e inferenza
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.
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
Utilizza un modello preaddestrato con scikit-learn.
Ho un modello TensorFlow
Utilizza un modello preaddestrato con TensorFlow.
Ho un gestore del modello Vertex AI
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.
Voglio utilizzare più modelli addestrati in modo diverso nella mia pipeline
Utilizza la trasformazione
RunInference
con un gestore del modello con chiavi 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
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
Voglio eseguire analisi del sentiment e riepiloghi
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.
Ho un modello addestrato di 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'AI generativa
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
Voglio utilizzare Dataflow con Vertex AI Pipelines
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.
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 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.
Arricchire le pipeline di streaming con i dati del 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 laterali per aggiornare il modello in tempo reale, anche durante l'esecuzione della pipeline.
Valutare i 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 unico passaggio.
Risorse
Eseguire pipeline multilingue
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.
Autorizzazioni Dataflow
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.
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.