Utilizzando la classe Pipeline
Le pipeline TFX vengono definite utilizzando la classe Pipeline
. Nell'esempio seguente viene illustrato come utilizzare la classe Pipeline
.
pipeline.Pipeline( pipeline_name=pipeline-name, pipeline_root=pipeline-root, components=components, enable_cache=enable-cache, metadata_connection_config=metadata-connection-config, )
Sostituisci quanto segue:
pipeline-name : il nome di questa pipeline. Il nome della pipeline deve essere univoco.
TFX utilizza il nome della pipeline quando esegue query sui metadati ML per gli artefatti di input del componente. Il riutilizzo del nome di una pipeline può provocare comportamenti imprevisti.
pipeline-root : il percorso root degli output di questa pipeline. Il percorso root deve essere il percorso completo di una directory a cui l'agente di orchestrazione ha accesso in lettura e scrittura. In fase di esecuzione, TFX utilizza la radice della pipeline per generare percorsi di output per gli artefatti dei componenti. Questa directory può essere locale o su un file system distribuito supportato, come Google Cloud Storage o HDFS.
components : un elenco di istanze del componente che costituiscono il flusso di lavoro di questa pipeline.
enable-cache : (facoltativo) un valore booleano che indica se questa pipeline utilizza la memorizzazione nella cache per accelerare l'esecuzione della pipeline.
metadata-connection-config : (facoltativo) una configurazione di connessione per metadati ML.
Definizione del grafico di esecuzione del componente
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 (DAG) delle dipendenze degli artefatti.
Ad esempio, il componente standard ExampleGen
può importare dati da un file CSV e produrre record di esempio serializzati. Il componente standard StatisticsGen
accetta questi record di esempio come input e produce statistiche del set di dati. In questo esempio, l'istanza di StatisticsGen
deve seguire ExampleGen
perché SchemaGen
dipende dall'output di ExampleGen
.
Dipendenze basate sulle attività
Puoi anche definire dipendenze basate su attività utilizzando i metodi add_upstream_node
e add_downstream_node
del tuo componente. add_upstream_node
consente di specificare che il componente corrente deve essere eseguito dopo il componente specificato. add_downstream_node
consente di specificare che il componente corrente deve essere eseguito prima del componente specificato.
Modelli di pipeline
Il modo più semplice per configurare rapidamente una pipeline e vedere come tutti i pezzi si incastrano insieme è utilizzare un modello. L'utilizzo dei modelli è trattato in Creazione di una pipeline TFX a livello locale .
Memorizzazione nella cache
La memorizzazione nella cache della pipeline TFX consente alla pipeline di ignorare i componenti che sono stati eseguiti con lo stesso set di input in un'esecuzione precedente della pipeline. Se la memorizzazione nella cache è abilitata, la pipeline tenta di far corrispondere la firma di ciascun componente, il componente e l'insieme di input, a una delle esecuzioni precedenti del componente di questa pipeline. Se esiste una corrispondenza, la pipeline utilizza gli output del componente dell'esecuzione precedente. Se non c'è corrispondenza, il componente viene eseguito.
Non utilizzare la memorizzazione nella cache se la pipeline utilizza componenti non deterministici. Ad esempio, se crei un componente per creare un numero casuale per la tua pipeline, l'abilitazione della cache determina l'esecuzione di questo componente una volta. In questo esempio, le esecuzioni successive utilizzano il numero casuale della prima esecuzione invece di generare un numero casuale.