Compreendendo os pipelines do TFX

MLOps é a prática de aplicação de práticas 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 dados.
  • Treine e avalie um modelo.
  • Implante modelos treinados em 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 da experimentação executando um pipeline com diferentes conjuntos de hiperparâmetros.

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

Artefato

As saídas das etapas em um pipeline do TFX são chamadas de artefatos . As etapas subsequentes no seu fluxo de trabalho podem usar esses artefatos como entradas. Dessa forma, o TFX permite transferir dados entre 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 digitados com um tipo de artefato registrado no armazenamento de metadados de ML . Saiba mais sobre os conceitos usados ​​em metadados de ML .

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

Parâmetro

Parâmetros são entradas para pipelines que são conhecidos antes da execução do pipeline. Os parâmetros permitem alterar o comportamento de um pipeline, ou parte de um pipeline, por meio de 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, facilitando a execução do 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 no pipeline do 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 executar uma etapa no 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.

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

Gasoduto

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 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 gráfico acíclico direcionado das dependências do artefato.

Por exemplo, considere um pipeline que faz o seguinte:

  • Ingere 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 engenharia de recursos no conjunto de dados usando o componente padrão Transform.
  • Treina um modelo usando o componente padrão Trainer.
  • Avalia o modelo treinado usando o componente Avaliador.
  • Se o modelo for aprovado na avaliação, o pipeline enfileirará o modelo treinado em um sistema de implantação proprietário usando um componente personalizado.

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

  • O componente de ingestão de dados não possui dependências de artefato, portanto pode ser o primeiro nó no grafo.
  • 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 pelo StatisticsGen, portanto deve ser executado após o StatisticsGen.
  • ExemploValidator 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 de dados e o 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 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 customizado depende do modelo salvo produzido pelo Treinador e dos resultados da análise criados pelo Avaliador, portanto o implantador deve ser executado após o Treinador e o Avaliador.

Com base nesta análise, um orquestrador executa:

  • A ingestão de dados, instâncias dos componentes StatisticsGen e SchemaGen sequencialmente.
  • Os componentes ExampleValidator e Transform podem ser executados em paralelo, pois compartilham dependências de artefatos de entrada e não dependem da saída um do outro.
  • Depois que o componente Transform for concluído, as instâncias do componente Trainer, Evaluator e implementador customizado serão executadas sequencialmente.

Saiba mais sobre como criar um pipeline do TFX .

Modelo de pipeline TFX

Os modelos de pipeline do 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 do TFX .

Execução de pipeline

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.