Introdução ao Vertex Pipelines

As operações de machine learning (MLOps) são a prática de aplicar estratégias de DevOps aos sistemas de machine learning (ML). As estratégias de DevOps permitem criar e lançar alterações de código de maneira eficiente e monitorar sistemas para garantir o cumprimento das metas de confiabilidade. O MLOps amplia essa prática para ajudar você a reduzir o tempo necessário para ir da ingestão de dados de maneira confiável para a implantação do modelo na produção, de modo que possa monitorar e entender seu sistema de ML.

Os pipelines da Vertex ajudam você a automatizar, monitorar e controlar seus sistemas de ML, orquestrando o fluxo de trabalho de ML sem servidor e armazenando os artefatos do seu fluxo de trabalho usando o Vertex ML Metadata. Ao armazenar os artefatos do fluxo de trabalho de ML nos metadados de ML do Vertex, é possível analisar a linhagem dos artefatos do fluxo de trabalho. Por exemplo, a linhagem de um modelo de ML pode incluir dados de treinamento, hiperparâmetros e código que foram usadas para criar o modelo.

Noções básicas sobre pipelines de ML

Para orquestrar seu fluxo de trabalho de ML no Vertex Pipelines, primeiro você precisa descrever seu fluxo de trabalho como um pipeline. Os pipelines de ML são fluxos de trabalho de ML portáteis e escalonáveis baseados em contêineres. Os pipelines de ML são compostos por um conjunto de parâmetros de entrada e uma lista de etapas. Cada tarefa é uma instância de um componente do pipeline.

Use os pipelines de ML para:

  • Aplique estratégias MLOps para automatizar e monitorar processos repetíveis.
  • 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 o Vertex Pipelines para executar pipelines que foram criados usando o SDK do Kubeflow Pipelines ou o TensorFlow Extended. Saiba mais sobre como escolher entre o SDK do Kubeflow Pipelines e o TFX.

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 e treinamento de um modelo.

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.

Você pode criar componentes personalizados ou reutilizar componentes pré-criados. Para usar os recursos da Vertex AI, como o AutoML no pipeline, use os componentes de pipeline do Google Cloud. Saiba mais sobre como usar componentes de pipeline do Google Cloud no seu pipeline.

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

Cada etapa em um pipeline executa parte do fluxo de trabalho do pipeline. Como as etapas são instâncias de componentes do pipeline, as etapas têm entradas, saídas e uma imagem de contêiner. As entradas de etapa podem ser definidas nas entradas do pipeline ou elas podem depender da saída de outras etapas dentro do pipeline. Essas dependências definem o fluxo de trabalho do pipeline como um gráfico acíclico direcionado.

Por exemplo, considere um pipeline com as seguintes etapas:

  • Ingerir dados: esta etapa carrega os dados de treinamento no pipeline.
  • Pré-processar dados: esta etapa pré-processa os dados de treinamento ingeridos.
  • Treinar modelo: esta etapa usa os dados de treinamento pré-processados para treinar um modelo.
  • Avaliar modelo: esta etapa avalia o modelo treinado.
  • Implantar: esta etapa implanta o modelo treinado para previsões.

Ao compilar o pipeline, o SDK dos pipelines (o Kubeflow Pipelines ou TFX) analisa as dependências de dados entre as etapas para criar o gráfico do fluxo de trabalho.

  • A etapa de ingestão de dados não depende de outras tarefas. Portanto, ela pode ser a primeira etapa no fluxo de trabalho ou pode ser executada simultaneamente com outras etapas.
  • A etapa de pré-processamento depende dos dados produzidos pela etapa de processamento de dados. Portanto, os dados de pré-processamento precisam ocorrer após a ingestão dos dados.
  • A etapa de treinamento de modelo depende dos dados de treinamento pré-processados. Portanto, é necessário que o treinamento de um modelo ocorra após o pré-processamento dos dados.
  • A avaliação e a implantação de um modelo treinado dependem do modelo treinado. Portanto, elas precisam ocorrer após a etapa de treinamento. A avaliação e a implantação de um modelo treinado para predições podem ocorrer simultaneamente, porque ambas dependem da etapa de treinamento do modelo.

Com base nessa análise, o Vertex Pipelines executa os dados de ingestão, os dados de pré-processamento e as etapas de treinamento de modelo sequencialmente e, em seguida, executa as etapas de avaliação e implantação de modelo simultaneamente.

Entenda a linhagem dos artefatos de ML

Para entender as alterações no desempenho ou na acurácia do sistema de ML, analise os metadados das execuções de pipeline e a linhagem de artefatos de ML. A linhagem de um artefato inclui todos os fatores que contribuíram para sua criação, bem como artefatos e metadados derivados desse artefato. Gerenciar esses metadados de maneira ad-hoc pode ser difícil e demorado.

Por exemplo, a linhagem de um modelo pode incluir o seguinte:

  • Os dados de treinamento, teste e avaliação usados para criar o modelo.
  • Os hiperparâmetros usados durante o treinamento do modelo.
  • O código usado para treinar o modelo.
  • Os metadados gravados do processo de treinamento e avaliação, como a acurácia do modelo.
  • Artefatos descendentes desse modelo, como os resultados de predições em lote.

Quando você executa um pipeline usando o Vertex Pipelines, os artefatos e metadados da execução dele são armazenados usando os metadados do ML. Use esses metadados para responder a perguntas como as seguintes:

  • Por que um pipeline específico executou um modelo especialmente preciso?
  • Qual execução de pipeline produziu o modelo mais preciso e quais hiperparâmetros foram usados para treinar o modelo?
  • Dependendo das etapas do pipeline, será possível usar o Vertex ML Metadata para responder a perguntas de governança do sistema. Por exemplo, é possível usar metadados para determinar qual versão do seu modelo estava em produção em um determinado momento.

Saiba mais sobre como visualizar execuções de pipeline ou como analisar a linhagem dos artefatos de ML.

A seguir