Per orchestrare flussi di lavoro di machine learning complessi, puoi creare framework che includono fasi di pre- e post-elaborazione dei dati. Potresti dover pretrattare i dati prima di poterli utilizzare per addestrare il modello o post-trattare 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 che abbia un'integrazione integrata con Apache Beam e il programma di esecuzione 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 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 utilizzi 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 e creare un flusso di lavoro di machine learning end-to-end. Per orchestrare i componenti, puoi utilizzare un servizio gestito, ad esempio Vertex AI Pipelines.
I casi d'uso di orchestrazione dei flussi 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 componenti Apache Beam.
Voglio utilizzare Dataflow con Vertex AI Pipelines
Vertex AI Pipelines ti aiuta ad automatizzare, monitorare e gestire i tuoi sistemi di ML orchestrando i tuoi flussi di lavoro di ML in modo serverless. Puoi utilizzare Vertex AI Pipelines per orchestrare i flussi di lavoro con grafici acicli diretti (DAG) definiti da TFX o KFP e per monitorare automaticamente gli artefatti di ML utilizzando Vertex ML Metadata. Per scoprire come integrare Dataflow con TFX e KFP, utilizza le informazioni riportate nelle sezioni seguenti.
Voglio utilizzare Dataflow con Kubeflow Pipelines
Kubeflow è un toolkit ML dedicato a semplificare, rendere portatili e scalabili i deployment dei flussi di lavoro di ML su Kubernetes. Kubeflow Pipelines sono flussi di lavoro di ML end-to-end riutilizzabili creati utilizzando l'SDK Kubeflow Pipelines.
Lo scopo del servizio Kubeflow Pipelines è fornire l'orchestrazione end-to-end e 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 dover ricominciare da capo 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 di Dataflow nella documentazione di Vertex AI.
Voglio utilizzare Dataflow con TFX
I componenti della pipeline TFX sono basati sulle librerie TFX, mentre le librerie di elaborazione dei dati utilizzano direttamente Apache Beam. Ad esempio, TensorFlow Transform traduce le chiamate dell'utente in Apache Beam. Di conseguenza, puoi utilizzare Apache Beam e Dataflow con le pipeline TFX senza dover eseguire ulteriori operazioni di configurazione. Per utilizzare TFX con Dataflow, quando crei la pipeline TFX, utilizza il programma di esecuzione 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