Per orchestrare flussi di lavoro di machine learning complessi, puoi creare framework che includano passaggi di pre-elaborazione e post-elaborazione dei dati. Potresti dover pre-elaborare i dati prima di poterli utilizzare per addestrare il modello o per post-elaborare i dati per trasformare l'output del modello.
I flussi di lavoro ML spesso contengono molti passaggi che insieme formano una pipeline. Per creare la pipeline di machine learning, puoi utilizzare uno dei seguenti metodi.
- Utilizza un framework di orchestrazione con un'integrazione integrata con Apache Beam e il runner Dataflow, ad esempio TensorFlow Extended (TFX) o Kubeflow Pipelines (KFP). Questa opzione è la meno complessa.
- Crea un componente personalizzato in un modello Dataflow e poi chiama il modello dalla pipeline ML. La chiamata contiene il tuo codice Apache Beam.
- Crea un componente personalizzato da utilizzare nella pipeline ML e inserisci il codice Python direttamente nel componente. Definisci una pipeline Apache Beam personalizzata e utilizza il runner Dataflow all'interno del componente personalizzato. Questa opzione è la più complessa e richiede la gestione delle dipendenze della pipeline.
Dopo aver creato la pipeline di machine learning, puoi utilizzare un orchestratore per concatenare i componenti per creare un flusso di lavoro di machine learning end-to-end. Per orchestrare i componenti, puoi utilizzare un servizio gestito, come Vertex AI Pipelines.
Utilizzare gli acceleratori di machine learning
Per i workflow di machine learning che comportano l'elaborazione di dati con elevata intensità di calcolo, come l'inferenza con modelli di grandi dimensioni, puoi utilizzare gli acceleratori con i worker Dataflow. Dataflow supporta l'utilizzo sia di GPU che di TPU.
GPU
Puoi utilizzare le GPU NVIDIA con i job Dataflow per accelerare l'elaborazione. Dataflow supporta vari tipi di GPU NVIDIA, tra cui T4, L4, A100, H100 e V100. Per utilizzare le GPU, devi configurare la pipeline con un'immagine container personalizzata in cui sono installati i driver e le librerie GPU necessari.
Per informazioni dettagliate sull'utilizzo delle GPU con Dataflow, consulta Supporto di Dataflow per le GPU.
TPU
Dataflow supporta anche le Cloud TPU, ovvero gli acceleratori AI progettati su misura di Google ottimizzati per modelli AI di grandi dimensioni. Le TPU possono essere una buona scelta per accelerare i carichi di lavoro di inferenza su framework come PyTorch, JAX e TensorFlow. Dataflow supporta configurazioni TPU a host singolo, in cui ogni worker gestisce uno o più dispositivi TPU.
Per ulteriori informazioni, vedi Supporto di Dataflow per le TPU.
Orchestrazione del flusso di lavoro
I casi d'uso dell'orchestrazione del flusso di lavoro sono descritti nelle sezioni seguenti.
- Voglio utilizzare Dataflow con Vertex AI Pipelines
- Voglio utilizzare Dataflow con KFP
- Voglio utilizzare Dataflow con TFX
Sia TFX che Kubeflow Pipelines (KFP) utilizzano i componenti Apache Beam.
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. Puoi utilizzare Vertex AI Pipelines per orchestrare i grafici aciclici diretti (DAG) del flusso di lavoro definiti da TFX o KFP e per monitorare automaticamente gli artefatti ML utilizzando Vertex ML Metadata. Per scoprire come integrare Dataflow con TFX e KFP, utilizza le informazioni nelle sezioni seguenti.
Voglio utilizzare Dataflow con Kubeflow Pipelines
Kubeflow è un toolkit ML dedicato a rendere i deployment dei workflow ML su Kubernetes più facili da usare, portatili e scalabili. Kubeflow Pipelines sono flussi di lavoro ML end-to-end riutilizzabili creati utilizzando l' SDK Kubeflow Pipelines.
Il servizio Kubeflow Pipelines mira a fornire un'orchestrazione end-to-end e a facilitare la sperimentazione e il riutilizzo. Con KFP puoi sperimentare tecniche di orchestrazione e gestire i test, nonché riutilizzare componenti e pipeline per creare più soluzioni end-to-end senza ricominciare ogni volta.
Quando utilizzi Dataflow con KFP, puoi utilizzare l'operatore
DataflowPythonJobOP
o l'operatore
DataflowFlexTemplateJobOp
. Puoi anche creare un componente completamente personalizzato. Ti consigliamo di utilizzare l'operatore
DataflowPythonJobOP
.
Se vuoi creare un componente completamente personalizzato, consulta la pagina Componenti Dataflow nella documentazione di Vertex AI.
Voglio utilizzare Dataflow con TFX
I componenti della pipeline TFX sono basati sulle librerie TFX e le librerie di elaborazione dei dati utilizzano direttamente Apache Beam. Ad esempio, TensorFlow Transform traduce le chiamate dell'utente in Apache Beam. Pertanto, puoi utilizzare Apache Beam e Dataflow con le pipeline TFX senza dover eseguire ulteriori configurazioni. Per utilizzare TFX con Dataflow, quando crei la pipeline TFX, utilizza il runner Dataflow. Per maggiori informazioni, consulta le seguenti risorse:
- Apache Beam e TFX
- TensorFlow Extended (TFX): utilizzo di Apache Beam per l'elaborazione di dati su larga scala