Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
tensorflow
GitHub Repository: tensorflow/docs-l10n
Path: blob/master/site/pt-br/tfx/guide/build_tfx_pipeline.md
25118 views

Construindo pipelines TFX

Observação: para uma visão conceitual dos pipelines do TFX, consulte Noções básicas sobre pipelines do TFX.

Observação: quer construir seu primeiro pipeline antes de se aprofundar nos detalhes? Comece com criando um pipeline usando um template.

Usando a classe Pipeline

Os pipelines do TFX são definidos usando a classe Pipeline{: .external }. O exemplo a seguir demonstra como usar a classe Pipeline.


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

Substitua o seguinte:

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

    O TFX usa o nome do pipeline ao consultar o ML Metadata para artefatos de componentes de entrada. Reusar o nome de um 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. Em 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 num 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 workflow 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: (Optional.) A connection configuration for ML Metadata.

Definindo o grafo de execução do componente

As instâncias de componentes produzem artefatos como saídas e normalmente 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 grafo acíclico direcionado (DAG) das dependências do artefato.

Por exemplo, o componente padrão ExampleGen pode consumir 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 do dataset. Neste exemplo, a instância de StatisticsGen deve seguir ExampleGen porque SchemaGen depende da saída de ExampleGen.

Dependências baseadas em tarefas

Observação: Normalmente não é recomendado usar dependências baseadas em tarefas. Definir o grafo de execução com dependências de artefato permite aproveitar as vantagens do rastreamento automático de linhagem de artefatos e dos recursos de cache do TFX.

Você também pode definir dependências baseadas em tarefas usando os métodos add_upstream_node e add_downstream_node{: .external } do 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.

Templates de pipeline

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

Caching

O cache do pipeline TFX permite que seu pipeline ignore componentes que foram executados com o mesmo conjunto de entradas numa execução anterior do pipeline. Se o cache estiver habilitado, o pipeline tentará corresponder a assinatura de cada componente, o componente em si e o conjunto de entradas, com uma das execuções anteriores do componente 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 é executado.

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