RSVP para seu evento TensorFlow Everywhere hoje mesmo!
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Compreendendo os pipelines TFX

MLOps é a prática de aplicar práticas de DevOps para ajudar a automatizar, gerenciar e auditar fluxos de trabalho de aprendizado de máquina (ML). Os fluxos de trabalho de ML incluem etapas para:

  • Prepare, analise e transforme os dados.
  • Treine e avalie um modelo.
  • Implante modelos treinados para produção.
  • Rastreie artefatos de ML e entenda suas dependências.

Gerenciar essas etapas de maneira ad-hoc pode ser difícil e demorado.

O TFX facilita a implementação de MLOps, fornecendo um kit de ferramentas que ajuda a orquestrar seu processo de ML em vários orquestradores, como: Apache Airflow, Apache Beam e Kubeflow Pipelines. Ao implementar seu fluxo de trabalho como um pipeline TFX, você pode:

  • Automatize seu processo de ML, o que permite treinar, avaliar e implantar regularmente seu modelo.
  • Utilize recursos de computação distribuídos para processar grandes conjuntos de dados e cargas de trabalho.
  • Aumente a velocidade de experimentação executando um pipeline com diferentes conjuntos de hiperparâmetros.

Este guia descreve os principais conceitos necessários para entender os pipelines TFX.

Artefato

As saídas das etapas em um pipeline TFX são chamadas de artefatos . As etapas subsequentes em seu fluxo de trabalho podem usar esses artefatos como entradas. Desta forma, o TFX permite transferir dados entre as etapas do fluxo de trabalho.

Por exemplo, o componente padrão ExampleGen emite exemplos serializados, que componentes como o componente padrão StatisticsGen usam como entradas.

Os artefatos devem ser fortemente tipados com um tipo de artefato registrado no armazenamento de metadados de ML . Saiba mais sobre os conceitos usados ​​nos metadados de ML .

Os tipos de artefato têm um nome e definem um esquema de suas propriedades. Os nomes de tipo de artefato devem ser exclusivos em seu armazenamento de metadados de ML. TFX fornece vários tipos de artefatos padrão que descrevem tipos de dados complexos e tipos de valor, como: string, integer e float. Você pode reutilizar esses tipos de artefatos ou definir tipos de artefatos customizados que derivam de Artifact .

Parâmetro

Os parâmetros são entradas para pipelines que são conhecidas antes de seu pipeline ser executado. Os parâmetros permitem alterar o comportamento de um pipeline, ou parte de um pipeline, por meio da configuração em vez de código.

Por exemplo, você pode usar parâmetros para executar um pipeline com diferentes conjuntos de hiperparâmetros sem alterar o código do pipeline.

O uso de parâmetros permite aumentar a velocidade da experimentação, tornando mais fácil executar o pipeline com diferentes conjuntos de parâmetros.

Saiba mais sobre a classe RuntimeParameter .

Componente

Um componente é uma implementação de uma tarefa de ML que você pode usar como uma etapa em seu pipeline TFX. Os componentes são compostos por:

  • Uma especificação de componente, que define os artefatos de entrada e saída do componente e os parâmetros necessários do componente.
  • Um executor, que implementa o código para realizar uma etapa em seu fluxo de trabalho de ML, como ingestão e transformação de dados ou treinamento e avaliação de um modelo.
  • Uma interface de componente, que empacota a especificação do componente e o executor para uso em um pipeline.

TFX fornece vários componentes padrão que você pode usar em seus pipelines. Se esses componentes não atenderem às suas necessidades, você pode construir componentes personalizados. Saiba mais sobre componentes personalizados .

Pipeline

Um pipeline TFX é uma implementação portátil de um fluxo de trabalho de ML que pode ser executado em vários orquestradores, como: Apache Airflow, Apache Beam e Kubeflow Pipelines. Um pipeline é composto de instâncias de componentes e parâmetros de entrada.

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 as instâncias do componente é determinada pela criação de um gráfico acíclico direcionado das dependências do artefato.

Por exemplo, considere um pipeline que faz o seguinte:

  • Insere dados diretamente de um sistema proprietário usando um componente personalizado.
  • Calcula estatísticas para os dados de treinamento usando o componente padrão StatisticsGen.
  • Cria um esquema de dados usando o componente padrão SchemaGen.
  • Verifica se há anomalias nos dados de treinamento, usando o componente padrão ExampleValidator.
  • Executa a engenharia de recursos no conjunto de dados usando o componente padrão Transform.
  • Treina um modelo usando o componente padrão do Trainer.
  • Avalia o modelo treinado usando o componente Avaliador.
  • Se o modelo passar na avaliação, o pipeline enfileira o modelo treinado para um sistema de implantação proprietário usando um componente personalizado.

Para determinar a sequência de execução para as instâncias do componente, o TFX analisa as dependências do artefato.

  • O componente de ingestão de dados não tem nenhuma dependência de artefato, portanto, pode ser o primeiro nó no gráfico.
  • StatisticsGen depende dos exemplos produzidos pela ingestão de dados, portanto, deve ser executado após a ingestão de dados.
  • SchemaGen depende das estatísticas criadas por StatisticsGen, portanto, deve ser executado após StatisticsGen.
  • ExampleValidator depende das estatísticas criadas por StatisticsGen e do esquema criado por SchemaGen, portanto, deve ser executado após StatisticsGen e SchemaGen.
  • A transformação depende dos exemplos produzidos pela ingestão de dados e do esquema criado pelo SchemaGen, portanto, deve ser executada após a ingestão dos dados e pelo SchemaGen.
  • O Trainer depende dos exemplos produzidos pela ingestão de dados, do esquema criado pelo SchemaGen e do modelo salvo produzido pelo Transform. O Trainer pode ser executado somente após a ingestão de dados, SchemaGen e Transform.
  • O avaliador depende dos exemplos produzidos pela ingestão de dados e do modelo salvo produzido pelo Trainer, portanto, deve ser executado após a ingestão de dados e pelo Trainer.
  • O implantador personalizado depende do modelo salvo produzido pelo instrutor e dos resultados da análise criados pelo avaliador, portanto, o implantador deve ser executado após o instrutor e o avaliador.

Com base nessa análise, um orquestrador executa:

  • A ingestão de dados, StatisticsGen, instâncias do componente SchemaGen sequencialmente.
  • Os componentes ExampleValidator e Transform podem ser executados em paralelo, pois compartilham dependências do artefato de entrada e não dependem da saída um do outro.
  • Após a conclusão do componente Transform, as instâncias do componente Trainer, Evaluator e implementador customizado são executadas sequencialmente.

Saiba mais sobre como construir um pipeline TFX .

Modelo de pipeline TFX

Os modelos de pipeline TFX facilitam o início do desenvolvimento de pipeline, fornecendo um pipeline pré-construído que você pode personalizar para seu caso de uso.

Saiba mais sobre como personalizar um modelo de pipeline TFX .

Pipeline Run

Uma execução é uma única execução de um pipeline.

Orquestrador

Um orquestrador é um sistema onde você pode executar execuções de pipeline. TFX oferece suporte a orquestradores, como: Apache Airflow , Apache Beam e Kubeflow Pipelines . TFX também usa o termo DagRunner para se referir a uma implementação que oferece suporte a um orquestrador.