MLOps è la pratica di applicare le pratiche DevOps per aiutare ad automatizzare, gestire e verificare i flussi di lavoro di machine learning (ML). I flussi di lavoro ML includono passaggi per:
- Preparare, analizzare e trasformare i dati.
- Formare e valutare un modello.
- Distribuire 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 riqualificare, valutare e distribuire regolarmente il tuo modello.
- Utilizza risorse di elaborazione distribuite per elaborare 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 nel flusso di lavoro potrebbero utilizzare questi artefatti come input. In questo modo, TFX ti 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 metadati ML . Ulteriori informazioni sui concetti utilizzati nei metadati ML .
I tipi di artefatto hanno un nome e definiscono uno schema delle sue proprietà. I nomi dei tipi di artefatto devono essere univoci nel tuo archivio di metadati ML. TFX fornisce diversi tipi di artefatti standard che descrivono tipi di dati e tipi di valore complessi, come: stringa, numero intero e float. È possibile riutilizzare questi tipi di artefatti o definire tipi di artefatti 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 una pipeline, tramite la configurazione anziché tramite codice.
Ad esempio, puoi utilizzare i parametri per eseguire una pipeline con diversi set di iperparametri senza modificare il codice della pipeline.
L'utilizzo 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 utilizzare come passaggio nella 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 il training e la valutazione di un modello.
- Un'interfaccia del componente, che impacchetta la specifica del componente e l'esecutore da utilizzare 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 del componente 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 training utilizzando il componente standard StatisticsGen.
- Crea uno schema di dati utilizzando il componente standard SchemaGen.
- Verifica la presenza di anomalie nei dati di training utilizzando il componente standard EsempioValidator.
- Esegue la progettazione delle funzionalità sul set di dati utilizzando il componente standard Trasformazione.
- 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 da artefatti, 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.
- EsempioValidator 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.
- Il trainer dipende dagli esempi prodotti dall'acquisizione dei dati, dallo schema creato da SchemaGen e dal modello salvato prodotto da Transform. Il Trainer può essere eseguito solo dopo l'acquisizione dei dati, SchemaGen e Transform.
- Il valutatore dipende dagli esempi prodotti dall'acquisizione dei dati e dal modello salvato prodotto dal Trainer, quindi deve essere eseguito dopo l'acquisizione dei dati e dal 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 orchestratore esegue:
- L'inserimento di dati, le istanze dei componenti StatisticsGen e 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.
- Una volta completato il componente Trasformazione, le istanze dei componenti Trainer, Valutatore e Distributore personalizzato vengono eseguite in sequenza.
Ulteriori informazioni sulla creazione di una pipeline TFX .
Modello di pipeline TFX
I modelli di pipeline TFX semplificano l'avvio dello sviluppo della pipeline fornendo una pipeline predefinita che puoi personalizzare in base al tuo caso d'uso.
Ulteriori informazioni sulla personalizzazione di un modello di pipeline TFX .
Corsa 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 orchestratore.