Per orchestrare flussi di lavoro complessi di machine learning, puoi creare framework che includono passaggi di pre- e post-elaborazione dei dati. Potrebbe essere necessario pre-elaborare i dati prima di poterli utilizzare per addestrare il modello o 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 tua pipeline di machine learning, puoi utilizzare uno dei seguenti metodi.
- Utilizza un framework di orchestrazione che disponga di un'integrazione integrata con Apache Beam e l'esecuzione di Dataflow, ad esempio TensorFlow Extended (TFX) o Kubeflow Pipelines (KFP). Questa è l'opzione meno complessa.
- Crea un componente personalizzato in un modello Dataflow, quindi chiama il modello dalla tua pipeline ML. La chiamata contiene il tuo codice Apache Beam.
- Crea un componente personalizzato da utilizzare nella tua 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 è l'opzione più complessa e richiede la gestione delle dipendenze della pipeline.
Dopo aver creato la pipeline di machine learning, puoi utilizzare un agente di orchestrazione per concatenare i componenti in modo da creare un flusso di lavoro di machine learning end-to-end. Per orchestrare i componenti, puoi utilizzare un servizio gestito, come Vertex AI Pipelines.
I casi d'uso relativi all'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 sia 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 ML in modo serverless. Puoi utilizzare Vertex AI Pipelines per orchestrare grafi diretti aciclici (DAG) del flusso di lavoro definiti da TFX o KFP e per monitorare automaticamente gli artefatti ML utilizzando Vertex ML Metadata. Per scoprire come incorporare Dataflow con TFX e KFP, utilizza le informazioni nelle sezioni seguenti.
Voglio utilizzare Dataflow con le pipeline di Kubeflow
Kubeflow è un toolkit ML dedicato a semplificare, portare e scalare i deployment di flussi di lavoro ML in Kubernetes. Le pipeline di Kubeflow sono flussi di lavoro ML end-to-end riutilizzabili creati utilizzando l'SDK Kubeflow Pipelines.
Il servizio Kubeflow Pipelines mira a fornire l'orchestrazione end-to-end e a facilitare la sperimentazione e il riutilizzo. Con KFP, puoi sperimentare le tecniche di orchestrazione e gestire i test, oltre a riutilizzare componenti e pipeline per creare più soluzioni end-to-end senza dover ricominciare da capo.
Quando usi Dataflow con KFP, puoi usare 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 usare Dataflow con TFX
I componenti della pipeline TFX sono basati su librerie TFX e le librerie di elaborazione dati utilizzano direttamente Apache Beam. Ad esempio, TensorFlow Transform converte le chiamate dell'utente in Apache Beam. Puoi quindi utilizzare Apache Beam e Dataflow con le pipeline TFX senza dover eseguire ulteriori operazioni di configurazione. Per utilizzare TFX con Dataflow, quando crei la tua 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 dati su larga scala