Comprensione delle pipeline TFX

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

MLOps è la pratica di applicare le pratiche DevOps per 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 modelli addestrati alla produzione.
  • Tieni traccia degli artefatti di 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 orchestrator, 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 le 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 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 complessi e tipi di valore, ad esempio: string, integer e float. È possibile riutilizzare questi tipi di artefatto o definire tipi di artefatti personalizzati che derivano da Artifact .

Parametro

I parametri sono input per pipeline noti 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é il codice.

Ad esempio, puoi usare 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à di 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 executor, che implementa il codice per eseguire un passaggio nel flusso di lavoro di ML, come l'inserimento e la trasformazione dei dati o il training e la valutazione di un modello.
  • Un'interfaccia del componente, che racchiude la specifica del componente e l'esecutore per l'uso 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 agenti di orchestrazione, ad esempio: Apache Airflow, Apache Beam e Kubeflow Pipelines. Una pipeline è composta da istanze di componenti e parametri di input.

Le istanze del componente producono artefatti come output e in genere dipendono dagli artefatti prodotti dalle istanze del componente a monte come input. La sequenza di esecuzione per le istanze dei componenti viene determinata creando un grafico aciclico diretto delle dipendenze degli artefatti.

Si consideri, ad esempio, una pipeline che esegue le seguenti operazioni:

  • Ingerisce i dati direttamente da un sistema proprietario utilizzando un componente personalizzato.
  • Calcola le statistiche per i dati di allenamento 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 Transform standard.
  • 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 importazione dei dati non ha alcuna dipendenza dagli 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.
  • 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'importazione 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'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'importazione dei dati, StatisticsGen, SchemaGen istanze dei componenti 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.
  • Al termine del componente Trasforma, le istanze dei componenti Trainer, Evaluator e del 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 per il tuo caso d'uso.

Ulteriori informazioni sulla personalizzazione di un modello di pipeline TFX .

Corsa dell'oleodotto

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 usa anche il termine DagRunner per fare riferimento a un'implementazione che supporta un orchestratore.