Unisciti alla comunità SIG TFX-Addons e contribuisci a rendere TFX ancora migliore!

Capire le pipeline TFX

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.
  • Addestra e valuta un modello.
  • Distribuisci 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 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 risorse di calcolo distribuite per l'elaborazione di grandi set di dati e carichi di lavoro.
  • 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 possono utilizzare questi artefatti come input. In questo modo, TFX ti consente di trasferire i dati tra i passaggi del flusso di lavoro.

Ad esempio, il componente standard ExampleGen 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 artefatto 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. È possibile riutilizzare questi tipi di artefatto o definire tipi di artefatto personalizzati che derivano da Artifact .

Parametro

I parametri sono input di 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, è possibile 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 è possibile 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 ei parametri richiesti del componente.
  • Un esecutore, che implementa il codice per eseguire un passaggio nel flusso di lavoro ML, come 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 usare 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 orchestrator, 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 a monte 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:

  • Acquisisce 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 l'ingegneria delle caratteristiche 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 dei componenti, TFX analizza le dipendenze degli artefatti.

  • Il componente di importazione dei dati non ha dipendenze di 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.
  • Il 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'importazione 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 dal Trainer.
  • Il deployer personalizzato dipende dal modello salvato prodotto dal Trainer e dai risultati dell'analisi creati dall'Evaluator, quindi il deployer deve essere eseguito dopo il Trainer e l'Evaluator.

Sulla base di questa analisi, un orchestrator esegue:

  • L'inserimento di dati, StatisticsGen, istanze dei componenti 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'altro.
  • Dopo che il componente Transform è completo, le istanze del componente Trainer, Evaluator e Custom deployer 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 precostruita che puoi personalizzare per il tuo caso d'uso.

Ulteriori informazioni sulla personalizzazione di un modello di pipeline TFX .

Pipeline Run

Un'esecuzione è una singola esecuzione di una pipeline.

Orchestratore

Un orchestrator è un sistema in cui è possibile eseguire esecuzioni della 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 orchestrator.