Entendendo os pipelines do 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:

  • Preparar, analisar e transformar dados.
  • Treinar e avaliar 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 você 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 em seu fluxo de trabalho podem usar esses artefatos como entradas. Dessa forma, o TFX permite que você transfira 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 repositório de metadados de ML . Saiba mais sobre os conceitos usados ​​em Metadados de ML .

Os tipos de artefatos têm um nome e definem um esquema de suas propriedades. Os nomes de tipo de artefato devem ser exclusivos em seu repositório de metadados de ML. O 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 personalizados que derivam de Artifact .

Parâmetro

Os parâmetros são entradas para pipelines que são conhecidas 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 em seu fluxo de trabalho de ML, como ingerir e transformar dados ou treinar e avaliar um modelo.
  • Uma interface de componente, que empacota a especificação e o executor do componente 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 .

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 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 de artefatos.

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 os dados de treinamento quanto a anomalias 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 Trainer.
  • Avalia o modelo treinado usando o componente Evaluator.
  • Se o modelo for aprovado em sua avaliação, o pipeline enfileira 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 artefatos, 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 pelo StatisticsGen, portanto, deve ser executado após o 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 por SchemaGen, portanto, deve ser executado após a ingestão de dados e 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 Treinador, portanto deve ser executado após a ingestão de dados e o Treinador.
  • O implementador personalizado depende do modelo salvo produzido pelo Treinador e dos resultados da análise criados pelo Avaliador, portanto, o implementador deve ser executado após o Treinador e o Avaliador.

Com base nessa análise, um orquestrador executa:

  • A ingestão de dados, instâncias do componente StatisticsGen, 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.
  • Após a conclusão do componente Transform, as instâncias do componente Trainer, Evaluator e do implementador customizado são executadas sequencialmente.

Saiba mais sobre como criar um pipeline do TFX .

Modelo de pipeline TFX

Os modelos de pipeline do TFX facilitam a introdução ao 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 do pipeline

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

Orquestrador

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