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:

  • Prepare, analise e transforme 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 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 seu modelo regularmente.
  • 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 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. Dessa forma, o TFX permite transferir dados entre as etapas do fluxo de trabalho.

Por exemplo, o componente padrão ExampleGen emite exemplos serializados, cujos 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 ​​em ML Metadata .

Os tipos de artefatos têm um nome e definem um esquema de suas propriedades. Os nomes dos tipos de artefatos 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 valor, como: string, integer e float. Você pode reutilizar esses tipos de artefatos ou definir tipos de artefatos personalizados derivados de Artifact .

Parâmetro

Parâmetros são entradas para pipelines que são conhecidos antes de seu pipeline ser executado. Os parâmetros permitem que você altere o comportamento de um pipeline, ou parte de um pipeline, por meio da configuração em vez do 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 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 executar 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 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 .

Oleoduto

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 das 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:

  • 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 em busca de 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 passar na avaliação, o pipeline enfileirará o modelo treinado para 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 nenhuma dependência de artefato, portanto, pode ser o primeiro nó no grafo.
  • O StatisticsGen depende dos exemplos produzidos pela ingestão de dados, portanto deve ser executado após a ingestão de dados.
  • O 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.
  • O Transform depende dos exemplos produzidos pela ingestão de dados e do esquema criado pelo SchemaGen, portanto deve ser executado 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 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 o 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 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 de 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 do implementador personalizado são executadas sequencialmente.

Saiba mais sobre como criar um pipeline TFX .

Modelo de pipeline TFX

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

Saiba mais sobre como personalizar um modelo de pipeline TFX .

Execução de Oleoduto

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

orquestrador

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