MLOps è la pratica di applicare le pratiche DevOps per aiutare ad automatizzare, gestire e controllare i flussi di lavoro di machine learning (ML). I flussi di lavoro ML includono passaggi per:
- Prepara, analizza e trasforma i dati.
- Addestrare e valutare un modello.
- Distribuisci i modelli addestrati alla produzione.
- Tieni traccia degli artefatti ML e comprendi le loro dipendenze.
Gestire questi passaggi in modo ad-hoc può essere difficile e richiedere molto tempo.
TFX semplifica l'implementazione di MLOps fornendo un toolkit che ti aiuta a orchestrare il tuo processo ML su vari orchestratori, come: Apache Airflow, Apache Beam e Kubeflow Pipelines. Implementando il tuo flusso di lavoro come pipeline TFX, puoi:
- Automatizza il tuo processo ML, che ti consente di riaddestrare, valutare e distribuire regolarmente il tuo modello.
- Utilizza risorse di calcolo distribuite per l'elaborazione di set di dati e carichi di lavoro di grandi dimensioni.
- Aumenta la velocità della sperimentazione eseguendo una pipeline con diversi set di iperparametri.
Questa guida descrive i concetti fondamentali necessari per comprendere le pipeline TFX.
Artefatto
Gli output dei passaggi in una pipeline TFX sono chiamati artefatti . I passaggi successivi del flusso di lavoro possono utilizzare questi artefatti come input. In questo modo, TFX consente di trasferire i dati tra le fasi del flusso di lavoro.
Ad esempio, il componente standard ExampleGen
emette esempi serializzati, che componenti come il componente standard StatisticsGen
utilizzano come input.
Gli artefatti devono essere fortemente tipizzati con un tipo di artefatto registrato nell'archivio dei metadati ML . Ulteriori informazioni sui concetti utilizzati nei metadati ML .
I tipi di artifact hanno un nome e definiscono uno schema delle relative proprietà. I nomi dei tipi di artefatto devono essere univoci nell'archivio dei metadati ML. TFX fornisce diversi tipi di artefatti standard che descrivono tipi di dati complessi e tipi di valore, come: string, integer e float. Puoi riutilizzare questi tipi di artifact o definire tipi di artifact personalizzati che derivano da Artifact
.
Parametro
I parametri sono input per le pipeline note prima dell'esecuzione della pipeline. I parametri consentono di modificare il comportamento di una pipeline, o di una parte di essa, tramite la configurazione anziché il codice.
Ad esempio, puoi utilizzare i parametri per eseguire una pipeline con diversi set di iperparametri senza modificare il codice della pipeline.
L'uso dei parametri consente di aumentare la velocità della sperimentazione semplificando l'esecuzione della pipeline con diversi set di parametri.
Ulteriori informazioni sulla classe RuntimeParameter .
Componente
Un componente è un'implementazione di un'attività ML che puoi usare come passaggio nella tua pipeline TFX. I componenti sono composti da:
- Una specifica del componente, che definisce gli artefatti di input e output del componente e i parametri richiesti del componente.
- Un esecutore, che implementa il codice per eseguire un passaggio nel flusso di lavoro ML, ad esempio l'inserimento e la trasformazione dei dati o l'addestramento e la valutazione di un modello.
- Un'interfaccia del componente, che impacchetta la specifica del componente e l'esecutore per l'utilizzo in una pipeline.
TFX fornisce diversi componenti standard che puoi utilizzare nelle tue pipeline. Se questi componenti non soddisfano le tue esigenze, puoi creare componenti personalizzati. Ulteriori informazioni sui componenti personalizzati .
Tubatura
Una pipeline TFX è un'implementazione portatile di un flusso di lavoro ML che può essere eseguito su vari orchestratori, come: Apache Airflow, Apache Beam e Kubeflow Pipelines. Una pipeline è composta da istanze di componenti e parametri di input.
Le istanze dei componenti producono artefatti come output e in genere dipendono dagli artefatti prodotti dalle istanze dei componenti upstream come input. La sequenza di esecuzione per le istanze dei componenti viene determinata creando un grafico aciclico diretto delle dipendenze degli artefatti.
Ad esempio, considera una pipeline che esegue le seguenti operazioni:
- Importa i dati direttamente da un sistema proprietario utilizzando un componente personalizzato.
- Calcola le statistiche per i dati di addestramento utilizzando il componente standard StatisticsGen.
- Crea uno schema di dati utilizzando il componente standard SchemaGen.
- Verifica la presenza di anomalie nei dati di addestramento utilizzando il componente standard ExampleValidator.
- Esegue la progettazione delle funzionalità sul set di dati utilizzando il componente standard Transform.
- Addestra un modello utilizzando il componente standard Trainer.
- Valuta il modello addestrato utilizzando il componente Evaluator.
- Se il modello supera la valutazione, la pipeline accoda il modello addestrato a un sistema di distribuzione proprietario utilizzando un componente personalizzato.
Per determinare la sequenza di esecuzione per le istanze del componente, TFX analizza le dipendenze degli artefatti.
- Il componente di inserimento dati non ha dipendenze artefatto, quindi può essere il primo nodo nel grafico.
- StatisticsGen dipende dagli esempi prodotti dall'inserimento dei dati, quindi deve essere eseguito dopo l'inserimento dei dati.
- SchemaGen dipende dalle statistiche create da StatisticsGen, quindi deve essere eseguito dopo StatisticsGen.
- ExampleValidator dipende dalle statistiche create da StatisticsGen e dallo schema creato da SchemaGen, quindi deve essere eseguito dopo StatisticsGen e SchemaGen.
- La trasformazione dipende dagli esempi prodotti dall'inserimento dei dati e dallo schema creato da SchemaGen, quindi deve essere eseguita dopo l'inserimento dei dati e SchemaGen.
- Trainer dipende dagli esempi prodotti dall'inserimento dei dati, dallo schema creato da SchemaGen e dal modello salvato prodotto da Transform. Il Trainer può essere eseguito solo dopo l'inserimento dei dati, SchemaGen e Transform.
- Il valutatore dipende dagli esempi prodotti dall'inserimento dei dati e dal modello salvato prodotto dal Trainer, quindi deve essere eseguito dopo l'inserimento dei dati e il Trainer.
- Il deployer personalizzato dipende dal modello salvato prodotto dal Trainer e dai risultati dell'analisi creati dal Valutatore, quindi il deployer deve essere eseguito dopo il Trainer e il Valutatore.
Sulla base di questa analisi, un orchestrator esegue:
- L'inserimento dei dati, StatisticsGen, istanze del componente SchemaGen in sequenza.
- I componenti ExampleValidator e Transform possono essere eseguiti in parallelo poiché condividono le dipendenze degli artefatti di input e non dipendono l'uno dall'output dell'altro.
- Dopo che il componente Transform è stato completato, le istanze del componente Trainer, Evaluator e del deployer personalizzato vengono eseguite in sequenza.
Ulteriori informazioni sulla creazione di una pipeline TFX .
Modello di pipeline TFX
I modelli di pipeline TFX semplificano l'inizio dello sviluppo della pipeline fornendo una pipeline predefinita che puoi personalizzare per il tuo caso d'uso.
Ulteriori informazioni sulla personalizzazione di un modello di pipeline TFX .
Esecuzione della pipeline
Un'esecuzione è una singola esecuzione di una pipeline.
Orchestratore
Un orchestrator è un sistema in cui è possibile eseguire esecuzioni di pipeline. TFX supporta orchestratori come: Apache Airflow , Apache Beam e Kubeflow Pipelines . TFX utilizza anche il termine DagRunner per fare riferimento a un'implementazione che supporta un agente di orchestrazione.