Introdução aos pipelines do AI Platform

Os fluxos de trabalho de machine learning (ML) têm etapas para preparar e analisar dados, treinar e avaliar modelos, implantar modelos treinados para produção, rastrear artefatos de ML e entender suas dependências etc. Gerenciar essas etapas de maneira ad-hoc pode ser difícil e demorado.

MLOps é a aplicação das práticas DevOps para ajudar a automatizar, gerenciar e auditar os fluxos de trabalho ML. O AI Platform Pipelines ajuda a implementar as MLOps fornecendo uma plataforma em que é possível orquestrar as etapas do fluxo de trabalho como um pipeline. Os pipelines de ML são definições portáteis e reproduzíveis de fluxos de trabalho de ML.

O IA Platform Pipelines faz com que seja mais fácil dar os primeiros passos com as MLOps, poupando você da dificuldade de configurar o Kubeflow Pipelines com o TensorFlow Extended (TFX). O Kubeflow Pipelines (em inglês) é uma plataforma de código aberto para execução, monitoramento, auditoria e gerenciamento de pipelines de ML no Kubernetes. O TFX (em inglês) é um projeto de código aberto para a criação de pipelines de ML que orquestram fluxos de trabalho prontos de ML.

Sobre o Kubeflow e a plataforma Kubeflow Pipelines

O Kubeflow é um kit de ferramentas de código aberto para executar cargas de trabalho de ML em Kubernetes (em inglês). O Kubeflow Pipelines é um componente do Kubeflow que oferece uma plataforma para criar e implantar fluxos de trabalho de ML, chamados de pipelines.

Sobre o TensorFlow Extended

O TFX é um projeto de código aberto usado para definir fluxos de trabalho de ML baseados no TensorFlow como um pipeline. O TFX fornece componentes que podem ser reutilizados para processar e transformar dados, treinar e avaliar um modelo, implantar um modelo treinado para inferência etc. Reutilizando componentes TFX, ele permite orquestrar seu processo de ML sem a necessidade de criar componentes personalizados para cada etapa.

Sobre o AI Plaftform Pipelines

O AI Platform Pipelines facilita a:

Com o AI Platform Pipelines, é possível configurar um cluster do Kubeflow Pipelines em 15 minutos. Assim, você dá os primeiros passos com os pipelines de ML rapidamente. O AI Platform Pipelines também cria um bucket do Cloud Storage para facilitar a execução de tutoriais e os primeiros passos com o pipeline do TFX (em inglês).

Noções básicas sobre pipelines de ML

Os pipelines de ML são fluxos de trabalho de ML escalonáveis e portáteis, baseados em contêineres. Os pipelines de ML são compostos por um conjunto de parâmetros de entrada e uma lista de tarefas. Cada tarefa é uma instância de um componente do pipeline.

Use os pipelines de ML para:

  • aplicar estratégias MLOps para automatizar processos repetidos;
  • fazer um fluxo de trabalho de ML com diferentes conjuntos de hiperparâmetros, número de etapas de treinamento ou iterações etc;
  • reutilizar o fluxo de trabalho de um pipeline para treinar um novo modelo.

É possível usar modelos de pipeline do TensorFlow Extended ou o SDK do Kubeflow Pipelines para criar pipelines.

Noções básicas sobre componentes do pipeline

Os componentes do pipeline são conjuntos autocontidos de código que executam uma etapa no fluxo de trabalho de um pipeline, como pré-processamento e transformação de dados, treinamento de modelos etc.

Os componentes são compostos por um conjunto de parâmetros de entrada, um conjunto de saídas e o local de uma imagem de contêiner. A imagem do contêiner de um componente é um pacote que inclui o código executável e uma definição do ambiente em que ele é executado.

Noções básicas sobre o fluxo de trabalho de pipelines

Cada tarefa em um pipeline executa uma etapa no fluxo de trabalho do pipeline. Como as tarefas são instâncias de componentes de pipeline, as tarefas têm parâmetros de entrada, saídas e uma imagem de contêiner. Os parâmetros de entrada de tarefas podem ser definidos a partir dos parâmetros de entrada do pipeline ou definidos para depender da saída de outras tarefas nesse pipeline. O Kubeflow Pipelines usa essas dependências para definir o fluxo de trabalho do pipeline como um gráfico acíclico direcionado.

Por exemplo, considere um pipeline com as seguintes tarefas:

  • Pré-processamento: esta tarefa prepara os dados de treinamento.
  • Treinamento: esta tarefa usa os dados de treinamento pré-processados para treinar o modelo.
  • Previsão: implanta o modelo treinado como um serviço de ML e recebe previsões para o conjunto de dados de teste.
  • Matriz de confusão: esta tarefa usa a saída da tarefa de previsão para criar uma matriz de confusão.
  • ROC: esta tarefa usa a saída da tarefa de previsão para executar a análise da curva de característica de operação do receptor (ROC, na sigla em inglês).

Para criar o gráfico do fluxo de trabalho, o SDK do Kubeflow Pipelines analisa as dependências da tarefa.

  • A tarefa de pré-processamento não depende de outras tarefas. Portanto, ela pode ser a primeira tarefa no fluxo de trabalho ou pode ser executada simultaneamente com outras tarefas.
  • A tarefa de treinamento depende dos dados produzidos pela tarefa de pré-processamento, portanto, o treinamento precisa ocorrer após o pré-processamento.
  • A tarefa de previsão depende do modelo treinado produzido pela tarefa de treinamento, por isso a previsão precisa ocorrer após o treinamento.
  • A construção da matriz de confusão e a análise da ROC dependem da saída da tarefa de previsão. Portanto, elas precisam ocorrer depois que a previsão for concluída. A construção da matriz de confusão e execução da análise da ROC podem ocorrer simultaneamente, porque ambas dependem da saída da tarefa de previsão.

Com base nessa análise, o sistema Kubeflow Pipelines executa as tarefas de pré-processamento, treinamento e previsão sequencialmente e, em seguida, executa a matriz de confusão e as tarefas da ROC simultaneamente.

A seguir