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 (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.

  • Lógica: é 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 o programador da Vertex AI 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 rastrear e armazenar artefatos e 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.

Usar o Vertex ML Metadata para 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 a criação dele, além dos artefatos e metadados derivados dele.

Gerenciar esses metadados de maneira ad-hoc pode ser difícil e demorado. Use o Vertex ML Metadata para manter esses metadados com eficiência. Quando você executa um pipeline de ML usando o Vertex AI Pipelines, os artefatos e metadados da execução do pipeline são armazenados usando o Vertex ML Metadata.

Para mais informações sobre como rastrear a linhagem de artefatos de ML usando o Vertex ML Metadata, 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