Introdução aos Vertex AI Pipelines

Os Vertex AI Pipelines permitem-lhe automatizar, monitorizar e controlar os seus sistemas de aprendizagem automática (ML) sem servidor através de pipelines de ML para orquestrar os seus fluxos de trabalho de ML. Pode executar em lote pipelines de ML definidos através das Kubeflow Pipelines ou da framework TensorFlow Extended (TFX). Para saber como escolher uma framework para definir a sua pipeline de ML, consulte o artigo Interfaces para definir uma pipeline.

Esta página fornece uma vista geral do seguinte:

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 passos denominados tarefas de pipeline. Cada tarefa executa um passo específico no fluxo de trabalho para preparar e implementar um modelo de ML.

Com os pipelines de ML, pode aplicar estratégias de MLOps para automatizar e monitorizar processos repetíveis na sua prática de ML. Por exemplo, pode reutilizar uma definição de pipeline para voltar a formar continuamente um modelo com os dados de produção mais recentes. Para mais informações sobre o MLOps no Vertex AI, consulte o artigo MLOps no Vertex AI.

Estrutura de um pipeline de ML

Um pipeline de ML é um gráfico acíclico orientado (DAG) de tarefas de pipeline em contentores interligadas através de dependências de entrada/saída. Pode criar cada tarefa em Python ou como imagens de contentores pré-criadas.

Pode definir o pipeline como um DAG através do SDK Kubeflow Pipelines ou do SDK TFX, compilá-lo para o respetivo YAML para representação intermédia e, em seguida, executar o pipeline. Por predefinição, as tarefas do pipeline são executadas em paralelo. Pode associar as tarefas para as executar em série. Para mais informações sobre as tarefas de pipeline, consulte o artigo Tarefa de pipeline. Para mais informações sobre o fluxo de trabalho para definir, compilar e executar o pipeline, consulte o artigo Ciclo de vida de um pipeline de ML.

Tarefas e componentes de pipeline

Uma tarefa de pipeline é uma instanciação de um componente de pipeline com entradas específicas. Ao definir o pipeline de ML, pode interligar várias tarefas para formar um DAG, encaminhando as saídas de uma tarefa do pipeline para as entradas da tarefa do pipeline seguinte no fluxo de trabalho de ML. Também pode usar as entradas para o pipeline de ML como entradas para uma tarefa de pipeline.

Componente de pipeline

Um componente do pipeline é um conjunto autónomo de código que executa um passo específico de um fluxo de trabalho de ML, como o pré-processamento de dados, a preparação de modelos ou a implementação de modelos. Normalmente, um componente é composto pelo seguinte:

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

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

  • Lógica: este é o código executável do componente. Para os componentes em contentores, a lógica também contém a definição do ambiente ou da imagem do contentor, onde o componente é executado.

Os componentes são a base da definição de tarefas num pipeline de ML. Para definir tarefas de pipeline, pode usar Google Cloud componentes de pipeline predefinidos ou criar os seus próprios componentes personalizados.

Componentes predefinidos

Use Google Cloud componentes de pipeline predefinidos se quiser usar funcionalidades do Vertex AI, como o AutoML, no seu pipeline. Para saber como usar os Google Cloud componentes de pipeline para definir um pipeline, consulte o artigo Crie um pipeline.

Componentes personalizados

Pode criar os seus próprios componentes personalizados para usar no pipeline de ML. Para mais informações sobre a criação de componentes personalizados, consulte o artigo Crie os seus próprios componentes de pipeline.

Para saber como criar componentes personalizados do Kubeflow Pipelines, consulte o bloco de notas do tutorial "Pipelines with lightweight components based on Python functions" no GitHub. Para saber como criar componentes TFX personalizados, consulte o tutorial do componente de função Python do TFX nos tutoriais do TensorFlow Extended in Production.

Tarefa de pipeline

Uma tarefa de pipeline é a instanciação de um componente de pipeline e executa um passo específico no seu fluxo de trabalho de ML. Pode criar tarefas de pipeline de ML com Python ou como imagens de contentores pré-criados.

Numa tarefa, pode tirar partido das capacidades de computação a pedido do Vertex AI com o Kubernetes para executar o seu código de forma escalável ou delegar a sua carga de trabalho noutro motor de execução, como o BigQuery, o Dataflow ou oGoogle Cloud sem servidor para o Apache Spark.

Ciclo de vida de um pipeline de AA

Desde a definição à execução e monitorização, o ciclo de vida de um pipeline de ML compreende as seguintes fases de alto nível:

  1. Definir: o processo de definição de um pipeline de ML e da respetiva tarefa também é denominado criação de um pipeline. Nesta fase, tem de realizar os seguintes passos:

    1. Escolha uma framework de ML: o Vertex AI Pipelines suporta pipelines de ML definidos através da framework TFX ou Kubeflow Pipelines. Para saber como escolher uma estrutura para criar o seu pipeline, consulte o artigo Interfaces para definir um pipeline.

    2. Defina tarefas de pipeline e configure o pipeline: para mais informações, consulte o artigo Crie um pipeline.

  2. Compilar: nesta fase, tem de realizar os seguintes passos:

    1. Gere a definição do pipeline de ML num ficheiro YAML compilado para a representação intermédia, que pode usar para executar o pipeline de ML.

    2. Opcional: pode carregar o ficheiro YAML compilado como um modelo de pipeline para um repositório e reutilizá-lo para criar execuções de pipelines de ML.

  3. Executar: crie uma instância de execução do seu pipeline de ML através do ficheiro YAML compilado ou de um modelo de pipeline. A instância de execução de uma definição de pipeline é denominada execução de pipeline.

    Pode criar uma ocorrência única de uma execução do pipeline ou usar a API scheduler para criar execuções recorrentes do pipeline a partir da mesma definição do pipeline de ML. Também pode clonar uma execução de pipeline existente. Para saber como escolher uma interface para executar um pipeline de ML, consulte o artigo Interfaces para executar um pipeline. Para mais informações sobre como criar uma execução de pipeline, consulte o artigo Execute um pipeline.

  4. Monitorize, visualize e analise execuções: depois de criar uma execução de pipeline, pode fazer o seguinte para monitorizar o desempenho, o estado e os custos das execuções de pipeline:

  5. Opcional: pare ou elimine execuções de pipelines: não existe nenhuma restrição quanto ao tempo que pode manter uma execução de pipeline ativa. Opcionalmente, pode fazer o seguinte:

    • Pare a execução de uma pipeline.

    • Pause ou retome uma agenda de execução de pipeline.

    • Eliminar um modelo de pipeline, uma execução de pipeline ou um agendamento de execução de pipeline existente.

O que é uma execução de pipeline?

Uma execução do pipeline é uma instância de execução da definição do pipeline de ML. Cada execução do pipeline é identificada por um nome de execução exclusivo. Com o Vertex AI Pipelines, pode criar uma execução de pipeline de ML das seguintes formas:

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

  • Use um modelo de pipeline da galeria de modelos

Para mais informações sobre como criar uma execução de pipeline, consulte o artigo Execute um pipeline. Para mais informações sobre como criar uma execução de pipeline a partir de um modelo de pipeline, consulte o artigo Crie, carregue e use um modelo de pipeline.

Para obter informações sobre a captura e o armazenamento de metadados de execução de pipelines com o Vertex ML Metadata, consulte o artigo Use o Vertex ML Metadata para acompanhar a linhagem de artefactos de ML.

Para obter informações sobre a utilização de execuções de pipelines para experimentar no seu fluxo de trabalho de ML com as experiências do Vertex AI, consulte o artigo Adicione as suas execuções de pipelines a experiências.

Acompanhe a linhagem dos artefactos de ML

Uma execução da pipeline contém vários artefactos e parâmetros, incluindo metadados da pipeline. Para compreender as alterações no desempenho ou na precisão do seu sistema de ML, tem de analisar os metadados e a linhagem dos artefactos de ML das execuções do pipeline de ML. A linhagem de um artefacto de ML inclui todos os fatores que contribuíram para a sua criação, juntamente com metadados e referências a artefactos derivados do mesmo.

Os gráficos de linhagem ajudam a analisar a causa principal a montante e o impacto a jusante. Cada execução do pipeline produz um gráfico de linhagem de parâmetros e artefactos que são introduzidos na execução, materializados na execução e produzidos pela execução. Os metadados que compõem este gráfico de linhagem são armazenados no Vertex ML Metadata. Estes metadados também podem ser sincronizados com o catálogo universal do Dataplex.

  • Use o Vertex ML Metadata para acompanhar a linhagem de artefactos de pipelines

    Quando executa um pipeline através do Vertex AI Pipelines, todos os parâmetros e metadados de artefactos consumidos e gerados pelo pipeline são armazenados no Vertex ML Metadata. O Vertex ML Metadata é uma implementação gerida da biblioteca ML Metadata no TensorFlow e suporta o registo e a escrita de esquemas de metadados personalizados. Quando cria uma execução de pipeline no Vertex AI Pipelines, os metadados da execução de pipeline são armazenados no arquivo de metadados predefinido para o projeto e a região onde executa o pipeline.

  • Use o catálogo universal do Dataplex para acompanhar a linhagem de artefactos de pipelines

    O catálogo universal do Dataplex é uma estrutura de dados global e entre projetos integrada com vários sistemas no Google Cloud, como o Vertex AI, o BigQuery e o Cloud Composer. No catálogo universal do Dataplex, pode pesquisar um artefacto de pipeline e ver o respetivo gráfico de linhagem. Tenha em atenção que, para evitar conflitos de artefactos, qualquer recurso catalogado no catálogo universal do Dataplex é identificado com um nome totalmente qualificado (FQN).

    Saiba mais sobre os custos de utilização do catálogo universal do Dataplex.

Para mais informações sobre o acompanhamento da linhagem de artefactos de ML através do Vertex ML Metadata e do Dataplex Universal Catalog, consulte o artigo Acompanhe a linhagem de artefactos de pipeline.

Para mais informações sobre a visualização, a análise e a comparação de execuções de pipelines, consulte o artigo Visualize e analise os resultados do pipeline. Para uma lista de tipos de artefactos originais definidos em Google Cloud Componentes do pipeline, consulte Tipos de artefactos de metadados de ML.

Adicione execuções de pipelines a experiências

As experiências do Vertex AI permitem-lhe acompanhar e analisar várias arquiteturas de modelos, hiperparâmetros e ambientes de preparação para encontrar o melhor modelo para o seu exemplo de utilização de ML. Depois de criar uma execução do pipeline de ML, pode associá-la a uma experiência ou a uma execução de experiência. Ao fazê-lo, pode experimentar diferentes conjuntos de variáveis, como hiperparâmetros, número de passos de preparação ou iterações.

Para mais informações sobre a experimentação com fluxos de trabalho de ML através do Vertex AI Experiments, consulte o artigo Introdução ao Vertex AI Experiments.

O que se segue?