Como criar pipelines TFX

Usando a classe Pipeline

Os pipelines TFX são definidos usando a classe Pipeline . O exemplo a seguir demonstra como usar a classe Pipeline .

pipeline.Pipeline(
    pipeline_name=pipeline-name,
    pipeline_root=pipeline-root,
    components=components,
    enable_cache=enable-cache,
    metadata_connection_config=metadata-connection-config,
)

Substitua o seguinte:

  • pipeline-name : o nome deste pipeline. O nome do pipeline deve ser exclusivo.

    TFX usa o nome do pipeline ao consultar metadados de ML para artefatos de entrada do componente. A reutilização de um nome de pipeline pode resultar em comportamentos inesperados.

  • pipeline-root : o caminho raiz das saídas deste pipeline. O caminho raiz deve ser o caminho completo para um diretório ao qual seu orquestrador tenha acesso de leitura e gravação. No tempo de execução, o TFX usa a raiz do pipeline para gerar caminhos de saída para artefatos de componentes. Esse diretório pode ser local ou em um sistema de arquivos distribuído compatível, como Google Cloud Storage ou HDFS.

  • components : uma lista de instâncias de componentes que compõem o fluxo de trabalho deste pipeline.

  • enable-cache : (Opcional.) Um valor booleano que indica se este pipeline usa cache para acelerar a execução do pipeline.

  • metadata-connection-config : (Opcional.) Uma configuração de conexão para metadados de ML.

Definindo o gráfico de execução do componente

As instâncias de componentes produzem artefatos como saídas e geralmente dependem de artefatos produzidos por instâncias de componentes upstream como entradas. A sequência de execução para instâncias de componentes é determinada pela criação de um gráfico acíclico direcionado (DAG) das dependências do artefato.

Por exemplo, o componente padrão ExampleGen pode ingerir dados de um arquivo CSV e gerar registros de exemplo serializados. O componente padrão StatisticsGen aceita esses registros de exemplo como entrada e produz estatísticas de conjunto de dados. Neste exemplo, a instância de StatisticsGen deve seguir ExampleGen porque SchemaGen depende da saída de ExampleGen .

Dependências baseadas em tarefas

Você também pode definir dependências baseadas em tarefas usando os métodos add_upstream_node e add_downstream_node de seu componente. add_upstream_node permite especificar que o componente atual deve ser executado após o componente especificado. add_downstream_node permite especificar que o componente atual deve ser executado antes do componente especificado.

Modelos de pipeline

A maneira mais fácil de configurar um pipeline rapidamente e ver como todas as peças se encaixam é usar um modelo. O uso de modelos é abordado em Construindo um pipeline TFX localmente .

Cache

O cache de pipeline TFX permite que seu pipeline ignore os componentes que foram executados com o mesmo conjunto de entradas em uma execução de pipeline anterior. Se o armazenamento em cache estiver ativado, o pipeline tentará corresponder a assinatura de cada componente, o componente e o conjunto de entradas, a uma das execuções de componentes anteriores desse pipeline. Se houver uma correspondência, o pipeline usará as saídas do componente da execução anterior. Se não houver correspondência, o componente será executado.

Não use o cache se o pipeline usar componentes não determinísticos. Por exemplo, se você criar um componente para criar um número aleatório para seu pipeline, habilitar o cache fará com que esse componente seja executado uma vez. Neste exemplo, as execuções subsequentes usam o número aleatório da primeira execução em vez de gerar um número aleatório.