Introdução aos pipelines da Vertex AI

O Vertex AI Pipelines permite automatizar, monitorar e controlar os sistemas de machine learning (ML) sem servidor usando pipelines de ML para orquestrar os fluxos de trabalho de ML. É possível executar pipelines de ML em lote definidos usando o Kubeflow Pipelines ou o framework do TensorFlow Extended (TFX). Para aprender a escolher um framework para definir seu pipeline de ML, consulte Interfaces para definir um pipeline.

Nesta página, você encontra informações gerais sobre:

O que é um pipeline de ML?

Um pipeline de ML é uma descrição portátil e extensível de um fluxo de trabalho de MLOps como uma série de etapas chamadas tarefas de pipeline. Cada tarefa executa uma etapa específica no fluxo de trabalho para treinar e/ou implantar um modelo de ML.

Com pipelines de ML, é possível aplicar estratégias de MLOps para automatizar e monitorar processos repetíveis na prática de ML. Por exemplo, é possível reutilizar uma definição de pipeline para treinar outra vez um modelo de modo contínuo nos dados de produção mais recentes. Para mais informações sobre MLOps na Vertex AI, consulte MLOps na Vertex AI.

Estrutura de um pipeline de ML

Um pipeline de ML é um gráfico acíclico dirigido (DAG, na sigla em inglês) de tarefas de pipeline conteinerizadas interconectadas usando dependências de entrada/saída. É possível criar cada tarefa em Python ou como imagens de contêiner pré-criadas.

É possível definir o pipeline como um DAG usando o SDK do Kubeflow Pipelines ou o SDK do TFX, compilá-lo no YAML para representação intermediária e executar o pipeline. Por padrão, as tarefas do pipeline são executadas em paralelo. É possível vincular as tarefas para executá-las em série. Para mais informações sobre tarefas de pipeline, consulte Tarefa de pipeline. Para mais informações sobre o fluxo de trabalho para definir, compilar e executar o pipeline, consulte Ciclo de vida de um pipeline de ML.

Tarefas e componentes do pipeline

Uma tarefa do pipeline é uma instanciação de um componente do pipeline com entradas específicas. Ao definir o pipeline de ML, é possível interconectar várias tarefas para formar um DAG. Basta encaminhar as saídas de uma tarefa do pipeline para as entradas da próxima tarefa do pipeline no fluxo de trabalho de ML. Também é possível usar as entradas do pipeline de ML como entradas para uma tarefa do pipeline.

Componente do pipeline

Um componente do pipeline é um conjunto independente de código que executa uma etapa específica de um fluxo de trabalho de ML, como pré-processamento de dados, treinamento de modelo ou implantação de modelo. No geral, um componente consiste no seguinte:

  • Entradas: um componente pode ter um ou mais parâmetros e artefatos de entrada.

  • Saídas: cada componente tem um ou mais parâmetros ou artefatos de saída.

  • Logic: é o código executável do componente. Para componentes conteinerizados, a lógica também contém a definição do ambiente, ou imagem do contêiner, em que o componente é executado.

Os componentes são a base da definição de tarefas em um pipeline de ML. Para definir tarefas de pipeline, use componentes de pipeline do Google Cloud predefinidos ou crie seus próprios componentes personalizados.

Componentes predefinidos

Use componentes predefinidos do pipeline do Google Cloud se quiser usar recursos da Vertex AI, como o AutoML, no pipeline. Para saber como usar os componentes de pipeline do Google Cloud para definir um pipeline, consulte Criar um pipeline.

Componentes personalizados

É possível criar seus próprios componentes personalizados para usar no pipeline de ML. Para mais informações sobre como criar componentes personalizados, consulte Criar seus próprios componentes de pipeline.

Para saber como criar componentes personalizados do Kubeflow Pipelines, consulte o notebook do Jupyter "Pipelines com componentes leves baseados em funções Python" no GitHub. Para saber como criar componentes personalizados do TFX, consulte o tutorial do componente de função do TFX para Python nos tutoriais do TensorFlow Extended na produção.

Tarefa de pipeline

Uma tarefa de pipeline é a instanciação de um componente de pipeline e executa uma etapa específica no fluxo de trabalho de ML. Crie tarefas de pipeline de ML usando Python ou imagens de contêiner pré-criadas.

Em uma tarefa, é possível criar os recursos de computação sob demanda da Vertex AI com o Kubernetes para executar o código de maneira escalonável ou delegar a carga de trabalho a outro mecanismo de execução, como BigQuery, Dataflow ou Dataproc sem servidor.

Ciclo de vida de um pipeline de ML

Da definição à execução e monitoramento, o ciclo de vida de um pipeline de ML compreende os seguintes estágios de alto nível:

  1. Definição: o processo de definição de um pipeline de ML e a tarefa dele também é chamado de criação de pipeline. Neste estágio, você precisa executar as seguintes etapas:

    1. Escolha um framework de ML: o Vertex AI Pipelines oferece suporte a pipelines de ML definidos usando o framework do TFX ou do Kubeflow Pipelines. Para saber como escolher um framework para criar o pipeline, consulte Interfaces para definir um pipeline.

    2. Definir tarefas do pipeline e configurar o pipeline: para mais informações, consulte Criar um pipeline.

  2. Compilar: neste estágio, você precisa executar as seguintes etapas:

    1. Gere a definição do pipeline de ML em um arquivo YAML compilado para representação intermediária, que pode ser usada para executar o pipeline de ML.

    2. Opcional: é possível fazer upload do arquivo YAML compilado como um modelo de pipeline para um repositório e reutilizá-lo para criar execuções de pipeline de ML.

  3. Executar: crie uma instância de execução do pipeline de ML usando o arquivo YAML compilado ou um modelo de pipeline. A instância de execução de definição de um pipeline é chamada de execução de pipeline.

    É possível criar uma ocorrência única de uma execução de pipeline ou usar a API do programador para criar execuções recorrentes de pipeline com base na mesma definição de pipeline de ML. Também é possível clonar uma execução de pipeline existente. Para aprender a escolher uma interface para executar um pipeline de ML, consulte Interfaces para executar um pipeline. Para mais informações sobre como criar uma execução de pipeline, consulte Executar um pipeline.

  4. Monitorar, visualizar e analisar execuções: depois de criar uma execução de pipeline, você pode fazer o seguinte para monitorar o desempenho, o status e os custos das execuções de pipeline:

  5. Opcional: parar ou excluir execuções de pipeline: não há restrições sobre por quanto tempo você pode manter uma execução de pipeline ativa. Você também tem as seguintes opções:

    • Interromper uma execução de pipeline.

    • Pausar ou retomar uma programação de execução de pipeline.

    • Excluir um modelo de pipeline, uma execução de pipeline ou uma programação de execução de pipeline.

O que é uma execução de pipeline?

Uma execução de pipeline é uma instância de execução da definição de pipeline de ML. Cada execução de pipeline é identificada por um nome de execução exclusivo. Com o Vertex AI Pipelines, é possível criar um pipeline de ML executado das seguintes maneiras:

  • Usar a definição YAML compilada de um pipeline

  • Usar um modelo de pipeline da Galeria de modelos

Para mais informações sobre como criar uma execução de pipeline, consulte Executar um pipeline. Para mais informações sobre como criar uma execução de pipeline usando um modelo de pipeline, consulte Criar, fazer upload e usar um modelo de pipeline.

Para informações sobre como capturar e armazenar metadados de execução de pipeline usando o Vertex ML Metadata, consulte Usar o Vertex ML Metadata para rastrear a linhagem de artefatos de ML.

Para informações sobre como usar execuções de pipeline para testar seu fluxo de trabalho de ML usando o Vertex AI Experiments, consulte Adicionar execuções de pipeline a experimentos.

Rastrear a linhagem de artefatos de ML

Uma execução de pipeline contém vários artefatos e parâmetros, incluindo metadados de pipeline. Para entender as mudanças no desempenho ou na acurácia do sistema de ML, você precisa analisar os metadados e a linhagem dos artefatos de ML das execuções do pipeline de ML. A linhagem de um artefato de ML inclui todos os fatores que contribuíram para sua criação, além de metadados e referências a artefatos derivados dele.

Os gráficos de linhagem ajudam a analisar a causa raiz upstream e o impacto downstream. Cada execução de pipeline produz um gráfico de linhagem de parâmetros e artefatos que são entradas na execução, materializadas na execução e saídas da execução. Os metadados que compõe esse gráfico de linhagem são armazenados no Vertex ML Metadata. Esses metadados também podem ser sincronizados com o Dataplex.

  • Usar o Vertex ML Metadata para rastrear a linhagem de artefatos de pipeline

    Quando você executa um pipeline usando o Vertex AI Pipelines, todos os parâmetros e metadados do artefato consumidos e gerados pelo pipeline são armazenados no Vertex ML Metadata. O Vertex ML Metadata é uma implementação gerenciada da biblioteca de metadados de ML no TensorFlow e oferece suporte ao registro e gravação de esquemas de metadados personalizados. Quando você cria uma execução de pipeline no Vertex AI Pipelines, os metadados da execução são armazenados no repositório de metadados padrão do projeto e da região em que o pipeline é executado.

  • Usar o Dataplex para rastrear a linhagem de artefatos de pipeline

    O Dataplex é uma malha de dados global e entre projetos integrada a vários sistemas no Google Cloud, como Vertex AI, BigQuery e Cloud Composer. No Dataplex, é possível pesquisar um artefato de pipeline e visualizar o gráfico de linhagem dele. Para evitar conflitos de artefatos, qualquer recurso catálogo no Dataplex é identificado com um nome totalmente qualificado (FQN, na sigla em inglês).

    Saiba mais sobre os custos de uso do Dataplex.

Para mais informações sobre como rastrear a linhagem de artefatos de ML usando o Vertex ML Metadata e o Dataplex, consulte Rastrear a linhagem de artefatos de pipeline.

Para mais informações sobre como visualizar, analisar e comparar execuções de pipeline, consulte Visualizar e analisar resultados de pipeline. Para ver uma lista de tipos de artefatos próprios definidos nos componentes de pipeline do Google Cloud, consulte Tipos de artefatos de metadados de ML.

Adicionar execuções de pipeline aos experimentos

O Vertex AI Experiments permite acompanhar e analisar várias arquiteturas de modelo, hiperparâmetros e ambientes de treinamento para encontrar o melhor modelo para seu caso de uso de ML. Depois de criar uma execução de pipeline de ML, é possível associá-la a um experimento ou execução de experimento. Ao fazer isso, é possível testar diferentes conjuntos de variáveis, como hiperparâmetros, número de etapas de treinamento ou iterações.

Para mais informações sobre experimentos com fluxos de trabalho de ML usando o Vertex AI Experiments, consulte Introdução ao Vertex AI Expriments.

A seguir