Práticas recomendadas para implementar machine learning no Google Cloud

Last reviewed 2022-12-15 UTC

Neste documento, apresentamos as práticas recomendadas para implementar machine learning (ML) no Google Cloud, com foco em modelos treinados personalizados com base nos dados e no código. Fornecemos recomendações sobre como desenvolver um modelo treinado personalizado em todo o fluxo de trabalho do machine learning, incluindo as principais ações e links para leitura adicional.

No diagrama a seguir, apresentamos uma visão geral detalhada das etapas do fluxo de trabalho do ML abordadas neste documento, que incluem:

  1. Desenvolvimento de ML
  2. Processamento de dados
  3. Treinamento operacionalizado
  4. Implantação e exibição de modelos
  5. Orquestração do fluxo de trabalho de ML
  6. Organização de artefatos
  7. Monitoramento de modelos

Fluxo de trabalho de machine learning no Google Cloud

O documento não é uma lista extensa de recomendações. O objetivo é ajudar cientistas de dados e arquitetos de machine learning a entender o escopo das atividades envolvidas no uso de ML no Google Cloud e planejar de acordo. Embora alternativas de desenvolvimento de ML, como o AutoML, sejam mencionadas em Use ferramentas e produtos recomendados, o foco deste documento é os modelos treinados.

Antes de seguir as práticas recomendadas neste documento, recomendamos que você leia Introdução à Vertex AI.

Neste documento, presume-se que:

  • você usa principalmente os serviços do Google Cloud, já que as abordagens híbridas e locais não são abordadas neste documento;

  • Você planeja coletar dados de treinamento e armazená-los no Google Cloud.

  • Você tem conhecimento intermediário de machine learning, ferramentas de Big Data e pré-processamento de dados, além de familiaridade com o Cloud Storage, BigQuery e com os Fundamentos do Google Cloud.

Se você não tem nenhum conhecimento sobre machine learning, confira o Curso intensivo de machine learning do Google.

A tabela a seguir lista os produtos e as ferramentas recomendadas para cada fase do fluxo de trabalho do ML, conforme descrito neste documento:

Etapa do fluxo de trabalho do machine learning Ferramentas e produtos recomendados
Configuração do ambiente de ML
Desenvolvimento de ML
Processamento de dados
Treinamento operacional
Implantação e disponibilização de modelos
Orquestração do fluxo de trabalho de ML
Organização de artefatos
Monitoramento de modelos

O Google oferece o AutoML, a Previsão da Vertex AI e o BigQuery ML como alternativas de rotina de treinamento pré-criadas às soluções de modelos treinados personalizados da Vertex AI. A tabela a seguir fornece recomendações sobre quando usar essas opções ou a Vertex AI.

Ambiente de ML Descrição Escolha este ambiente se...
BigQuery ML O BigQuery ML reunir dados, infraestrutura e tipos de modelo predefinidos em um único sistema.
  • Todos os seus dados estiverem no BigQuery.
  • Você está confortável com o SQL.
  • O conjunto de modelos disponíveis no BigQuery ML corresponderem ao problema que você está tentando resolver.
AutoML (no contexto da Vertex AI) O AutoML fornece rotinas de treinamento para problemas comuns, como classificação de imagens e regressão tabular. Quase todos os aspectos do treinamento e exibição de um modelo, como a escolha de arquitetura, ajuste de hiperparâmetros e máquinas de provisionamento forem processados para você.
Modelos personalizados da Vertex AI A Vertex permitir executar suas próprias rotinas de treinamento personalizadas e implantar modelos de qualquer tipo na arquitetura sem servidor. A Vertex AI oferecer serviços adicionais, como ajuste e monitoramento de hiperparâmetros, para facilitar o desenvolvimento de um modelo. Consulte Como escolher um método de treinamento personalizado.
  • Seu problema não corresponder aos critérios listados nesta tabela para o BigQuery ML ou AutoML.
  • Você já está executando o treinamento no local ou em outra plataforma de nuvem e precisa de consistência entre as plataformas.

Configuração do ambiente de machine learning

Usar os notebooks do Vertex AI Workbench para experimentação e desenvolvimento

Independentemente das ferramentas, recomendamos que você use notebooks do Vertex AI Workbench para experimentação e desenvolvimento, incluindo gravação de código, inicialização de jobs, execução de consultas e verificação de status. Com as instâncias de notebook, você acessa todos os serviços de dados e inteligência artificial (IA) do Google Cloud de maneira simples e reproduzível.

As instâncias de notebook também oferecem um conjunto seguro de softwares e padrões prontos para uso. É uma prática comum personalizar as propriedades do Google Cloud, como a rede e Identity and Access Management, e os softwares (por um contêiner) associados a uma instância de notebook. Para mais informações, consulte Componentes da Vertex AI e Introdução aos notebooks gerenciados pelo usuário.

Criar uma instância do Notebooks para cada membro da equipe.

Crie uma instância de notebooks gerenciada pelo usuário para cada membro da equipe de ciência de dados. Se um membro da equipe estiver envolvido em vários projetos, especialmente projetos com dependências diferentes, use diversas instâncias de notebooks e as trate como um espaço de trabalho virtual. É possível interromper as instâncias de notebooks quando elas não estiverem sendo usadas.

Armazenar recursos e artefatos de ML com base na política corporativa

O controle de acesso mais simples é armazenar os recursos e artefatos brutos e da Vertex AI, como conjuntos de dados e modelos, no mesmo projeto do Google Cloud. Geralmente, sua empresa tem políticas que controlam o acesso. Nos casos em que os recursos e artefatos são armazenados nos projetos, é possível configurar o controle de acesso corporativo entre projetos com o Identity and Access Management (IAM).

Usar o SDK da Vertex AI para Python

Use o SDK da Vertex AI para Python, uma maneira Python de usar a Vertex AI em fluxos de trabalho de criação de modelos completos, que funcionam perfeitamente com seus frameworks de ML favoritos, incluindo o PyTorch, TensorFlow, XGBoost e scikit-learn.

Como alternativa, é possível usar o console do Google Cloud, que é compatível com a funcionalidade da Vertex AI como uma interface do usuário pelo navegador.

Desenvolvimento de machine learning

O desenvolvimento de machine learning trata a preparação dos dados, os testes e a avaliação do modelo. Ao resolver um problema de machine learning, normalmente é necessário criar e comparar vários modelos diferentes para descobrir o que funciona melhor.

Normalmente, os cientistas de dados treinam modelos usando diferentes arquiteturas, conjuntos de dados de entrada, hiperparâmetros e hardwares. Os cientistas de dados avaliam os modelos resultantes analisando métricas de desempenho agregadas, como exatidão, precisão e retorno de conjuntos de dados de teste. Por fim, os cientistas de dados avaliam o desempenho dos modelos em relação a subconjuntos específicos de dados, diferentes versões e arquiteturas de modelo.

Preparar dados de treinamento

Os dados usados para treinar um modelo podem ser originados de qualquer quantidade de sistemas, por exemplo, registros de um sistema de serviço on-line, imagens de um dispositivo local ou documentos tirados da Web.

Independentemente da origem dos dados, extraia os dados dos sistemas de origem e converta-os para o formato e o armazenamento (separados da origem operacional) otimizados para o treinamento de ML. Para mais informações sobre como preparar dados de treinamento para uso com a Vertex AI, consulte Preparar dados de treinamento para uso com a Vertex AI.

Armazenar dados estruturados e semiestruturados no BigQuery

Ao trabalhar com dados estruturados ou semiestruturados, recomendamos armazenar todos eles no BigQuery seguindo a recomendação do BigQuery para estrutura do projeto. Na maioria dos casos, também é possível armazenar dados intermediários e processados no BigQuery. Para máxima velocidade, é melhor armazenar dados materializados em vez de usar visualizações ou subconsultas para dados de treinamento.

Leia dados do BigQuery usando a API BigQuery Storage. Para rastreamento de artefatos, use um conjunto de dados tabular gerenciado. A tabela a seguir lista as ferramentas do Google Cloud que facilitam o uso da API:

Se você estiver usando... Use esta ferramenta do Google Cloud
TensorFlow ou Keras Leitor tf.data.dataset para BigQuery
TFX Cliente do BigQuery
Dataflow Conector de E/S do BigQuery
Qualquer outro framework (como PyTorch, XGBoost ou scilearn-kit) Biblioteca de cliente Python do BigQuery

Armazene dados de imagem, vídeo, áudio e não estruturados no Cloud Storage

Armazene esses dados em formatos de contêiner grandes no Cloud Storage. Isso se aplica a arquivos TFRecord fragmentados se você estiver usando o TensorFlow, ou arquivos Avro se estiver usando outro framework.

Combine várias imagens, vídeos ou clipes de áudio individuais em arquivos grandes para melhorar a capacidade de leitura e gravação no Cloud Storage. Procure arquivos de pelo menos 100 MB e entre 100 e 10.000 fragmentos.

Para ativar o gerenciamento de dados, use os buckets e diretórios do Cloud Storage para agrupar os fragmentos. Para mais informações, consulte O que é o Cloud Storage?

Usar o Vertex AI Data Labeling para dados não estruturados

Talvez você precise de humanos para fornecer rótulos aos dados, especialmente no caso de dados não estruturados. Use o Vertex AI Data Labeling nesse caso. É possível contratar seus próprios rotuladores e usar o software do Google Cloud para gerenciar o trabalho deles, ou usar os rotuladores internos do Google para a tarefa. Para mais informações, consulte Como solicitar a rotulagem de dados.

Use o Vertex AI Feature Store com dados estruturados

Ao treinar um modelo com dados estruturados, independentemente de onde você esteja treinando esse modelo, siga estas etapas:

  1. Busque Vertex AI Feature Store para determinar se os recursos existentes atendem aos seus requisitos.

    1. Abra o Vertex AI Feature Store e faça uma pesquisa para ver se já existe um recurso relacionado ao seu caso de uso ou que cubra o sinal que você tem interesse em transmitir para o modelo.

    2. Se você quiser usar alguns atributos do Vertex Feature Store, busque-os para seus rótulos de treinamento usando a capacidade de exibição em lote do Vertex AI Feature Store.

  2. Crie um novo recurso. Se o Vertex AI Feature Store não tiver os recursos de que você precisa, crie um novo recurso usando dados do seu data lake.

    1. Busque dados brutos do seu data lake e grave seus scripts para executar o processamento e a engenharia de atributos necessários.

    2. Junte os valores de recurso buscados no Vertex AI Feature Store e os novos valores de recurso que você criou no data lake. A mesclagem desses valores de recursos produz o conjunto de dados de treinamento.

    3. Configure um job periódico para calcular os valores atualizados do novo recurso. Quando você determinar que um recurso é útil e quiser colocá-lo em produção, configure um job programado regularmente com a cadência necessária para calcular os valores atualizados desse recurso e ingeri-lo no Vertex AI Feature Store. Ao adicionar o novo recurso ao Vertex AI Feature Store, você tem automaticamente uma solução para disponibilizar on-line os recursos (para casos de uso de previsão on-line) e compartilhá-lo com outros membros da organização que podem obter valor a partir dele para os próprios modelos de ML deles.

Para saber mais, consulte Vertex AI Feature Store.

Evite armazenar dados no armazenamento em blocos

Evite armazenar dados no armazenamento em blocos, como sistemas de arquivos de rede ou discos rígidos de máquina virtual (VM, na sigla em inglês). Essas ferramentas são mais difíceis de gerenciar do que o Cloud Storage ou o BigQuery, e geralmente apresentam desafios no ajuste do desempenho. Da mesma forma, evite ler dados diretamente de bancos de dados, como o Cloud SQL. Opte por armazenar dados no BigQuery e no Cloud Storage. Para mais informações, consulte a documentação do Cloud Storage e a introdução ao carregamento de dados do BigQuery.

Usar o Vertex AI TensorBoard e o Vertex AI Experiments para analisar experimentos

Ao desenvolver modelos, use o Vertex AI TensorBoard para visualizar e comparar experimentos específicos, com base em hiperparâmetros, por exemplo. O Vertex AI TensorBoard é um serviço gerenciado da Enterprise Vertex AI TensorBoard, voltado para empresas, com uma solução econômica e segura que permite aos cientistas de dados e pesquisadores de ML colaborarem facilmente, tornando-os fáceis de rastrear. comparar e compartilhar as experiências. O Vertex AI TensorBoard permite acompanhar métricas do experimento, como perda e exatidão ao longo do tempo, visualizar o gráfico do modelo, projetar embeddings para um espaço dimensional menor e muito mais.

Use o Vertex AI Experiments para fazer a integração com o Vertex ML Metadata, além de registrar e criar vinculações entre parâmetros, métricas e artefatos de modelos e conjuntos de dados.

Treinar um modelo em uma instância de notebook para conjuntos de dados pequenos

O treinamento de um modelo na instância de notebook pode ser suficiente para conjuntos de dados pequenos ou para subconjuntos de um conjunto de dados maior. Talvez seja útil usar o serviço de treinamento para conjuntos de dados maiores ou para treinamento distribuído. O serviço de treinamento da Vertex AI também é recomendado para realizar o treinamento mesmo em pequenos conjuntos de dados quando o treinamento é realizado dentro de um cronograma ou em resposta à chegada de dados adicionais.

Maximize a precisão preditiva do modelo com ajuste de hiperparâmetros

Para maximizar a precisão das previsões do modelo, use o ajuste de hiperparâmetros, o aprimorador de modelos automatizado fornecido pelo Vertex AI Training, que aproveita a infraestrutura de processamento do Google Cloud e o Vertex AI Vizier para testar diferentes configurações de hiperparâmetros ao treinar o modelo. Com o ajuste de hiperparâmetros, não é necessário ajustar manualmente os hiperparâmetros no decorrer de várias execuções de treinamento para chegar aos valores ideais.

Para saber mais sobre o ajuste de hiperparâmetros, consulte Visão geral do ajuste de hiperparâmetros e Como usar o ajuste de hiperparâmetros.

Usar uma instância de notebook para entender os modelos

Use uma instância de notebook para avaliar e entender seus modelos. Além das bibliotecas comuns integradas, como o scikit-learn, as instâncias de notebook incluem a Ferramenta What-If (WIT, na sigla em inglês) e a Ferramenta de interpretação de linguagem (LIT, na sigla em inglês). A WIT permite analisar de maneira interativa seus modelos por viés usando várias técnicas, enquanto a LIT permite compreender o comportamento do modelo de processamento de linguagem natural usando uma ferramenta visual, interativa e extensível.

Use atribuições de recursos para obter insights sobre previsões do modelo

A Vertex Explainable AI é uma parte essencial do processo de implementação de ML, que oferece atribuições de recursos para fornecer insights sobre por que os modelos geram previsões. Ao detalhar a importância de cada recurso que um modelo usa como entrada para fazer uma previsão, a Vertex Explainable AI ajuda a entender melhor o comportamento do modelo e a criar confiança nos modelos.

A Vertex Explainable AI é compatível com modelos treinados e personalizados com base em dados tabulares e de imagem.

Para mais informações sobre a Vertex Explainable AI, consulte:

Processamento de dados

A abordagem recomendada para processar os dados depende do framework e dos tipos de dados que você está usando. Nesta seção, fornecemos recomendações detalhadas para cenários comuns.

Usar o BigQuery para processar dados estruturados e semiestruturados

Use o BigQuery para armazenar dados estruturados ou semiestruturados não processados. Se você estiver criando seu modelo usando o BigQuery ML, use as transformações incorporadas no BigQuery para pré-processamento de dados. Se você estiver usando o AutoML, use as transformações integradas ao AutoML para pré-processar dados. Se você está criando um modelo personalizado, o uso de transformações do BigQuery pode ser o método mais econômico.

Usar o Dataflow para processar dados

Para grandes volumes de dados não estruturados, considere usar o Dataflow, que usa o modelo de programação do Apache Beam. É possível usar o Dataflow para converter os dados não estruturados em formatos de dados binários, como TFRecord, que pode melhorar o desempenho da ingestão de dados durante o processo de treinamento.

Usar o Dataproc para processamento de dados do Spark sem servidor

Como alternativa, se sua organização tiver investimento em uma base de código e habilidades do Apache Spark, use o Dataproc. Use scripts Python únicos para conjuntos de dados menores que caibam na memória.

Se você precisar executar transformações que não sejam expressas no Cloud SQL ou sejam para streaming, use uma combinação de Dataflow e a biblioteca pandas.

Usar conjuntos de dados gerenciados com metadados de ML

Depois que seus dados forem pré-processados para ML, considere usar um conjunto de dados gerenciado na Vertex AI. Com os conjuntos de dados gerenciados, você cria um vínculo claro entre seus dados e os modelos treinados personalizados, além de oferecer estatísticas descritivas e a divisão automática ou manual em conjuntos de treinamento, teste e validação.

Conjuntos de dados gerenciados não são obrigatórios. Você pode optar por não usá-los se quiser ter mais controle sobre a divisão dos dados no código de treinamento ou se a linhagem entre os dados e o modelo não for essencial para o aplicativo.

Para mais informações, consulte Conjuntos de dados e Como usar um conjunto de dados gerenciado em um aplicativo de treinamento personalizado.

Treinamento operacionalizado

Treinamento operacionalizado refere-se ao processo de tornar o treinamento do modelo repetível, rastrear repetições e gerenciar o desempenho. Embora os notebooks Vertex AI Workbench sejam convenientes para o desenvolvimento iterativo em pequenos conjuntos de dados, recomendamos operacionalizar o código para torná-lo reproduzível e escalonável em grandes conjuntos de dados. Nesta seção, discutiremos ferramentas e práticas recomendadas para operacionalizar as rotinas de treinamento.

Execute o código em um serviço gerenciado

Recomendamos executar o código no serviço de treinamento da Vertex AI ou no Vertex AI Pipelines.

Outra opção é executar o código diretamente em um contêiner de máquina virtual de aprendizado profundo ou no Compute Engine. No entanto, não recomendamos essa abordagem porque os serviços gerenciados da Vertex AI oferecem escalonamento automático e uma capacidade de burst que é mais econômica.

Operacionalize a execução de jobs com pipelines de treinamento

Crie pipelines de treinamento para operacionalizar a execução de jobs de treinamento na Vertex AI. Um pipeline de treinamento, que é diferente de um pipeline de ML geral, encapsula os jobs de treinamento. Para saber mais sobre pipelines de treinamento, consulte Como criar pipelines de treinamento e Recurso REST: projects.locations.trainingPipelines.

Use pontos de verificação de treinamento para salvar o estado atual do experimento

O fluxo de trabalho de ML deste documento presume que você não está treinando de maneira interativa. Se o modelo falhar e não houver pontos de verificação, o job ou o pipeline de treinamento será concluído e os dados serão perdidos, porque o modelo não está na memória. Para evitar isso, pratique sempre o uso de pontos de verificação de treinamento para garantir que o estado não seja perdido.

Recomendamos que você salve pontos de verificação de treinamento no Cloud Storage. Crie uma pasta diferente para cada experimento ou execução de treinamento.

Para saber mais sobre pontos de verificação, consulte Pontos de verificação de treinamento para TensorFlow Core, Como salvar e carregar um Ponto de verificação geral no PyTorch e Padrões de design de machine learning

Preparar artefatos de modelo para exibir no Cloud Storage.

Para modelos treinados personalizados ou contêineres personalizados, armazene os artefatos do modelo em um bucket do Cloud Storage, em que a região do bucket corresponde ao endpoint regional que você está usando para produção. Consulte Regiões de bucket para mais informações.

Armazene o bucket do Cloud Storage no mesmo projeto do Google Cloud. Se o bucket do Cloud Storage estiver em um projeto diferente do Google Cloud, você precisará conceder acesso à Vertex AI, para ler os artefatos do modelo.

Se você estiver usando um contêiner pré-criado da Vertex AI, verifique se os artefatos do modelo têm nomes de arquivo que correspondam exatamente a estes exemplos:

  • SavedModel do TensorFlow: saved_model.pb

  • Scikit-learn: model.joblib ou model.pkl

  • XGBoost: model.bst

  • PyTorch: model.pth

Para saber como salvar o modelo na forma de um ou mais artefatos de modelo, consulte Como exportar artefatos de modelo para previsão.

Calcule regularmente novos valores de recurso

Muitas vezes, um modelo usará um subconjunto de recursos provenientes do Vertex AI Feature Store. Os recursos no Vertex AI Feature Store já estarão prontos para exibição on-line. Para qualquer recurso novo criado por um cientista de dados ao coletar dados do data lake, recomendamos programar os jobs de processamento de dados e engenharia de atributos correspondentes (ou, idealmente, o Dataflow) para calcular regularmente os novos valores de atributos na cadência necessária, dependendo das necessidades de atualização dos recursos, e ingeri-los no Vertex AI Feature Store para exibição on-line ou em lote.

Implantação e disponibilização de modelos

Implantação e exibição de modelos refere-se a colocar um modelo em produção. A saída do job de treinamento é um ou mais artefatos do modelo armazenados no Cloud Storage. É possível fazer upload dele para o Vertex AI Model Registry para que o arquivo possa ser usado para disponibilização de previsões. Há dois tipos de exibição de previsão: a previsão em lote é usada para marcar lotes de dados em uma cadência regular e a previsão on-line é usada para pontuação quase em tempo real de dados de aplicativos ativos. Ambas as abordagens permitem obter previsões de modelos treinados ao transmitir dados de entrada para um modelo de ML hospedado na nuvem e receber inferências para cada instância de dados. Para saber mais, consulte Como receber previsões em lote e Receber previsões on-line de modelos treinados de forma personalizada.

Para latência mais baixa para solicitações ponto a ponto entre o cliente e o servidor do modelo, use endpoints particulares da Vertex AI. Eles são particularmente úteis se o aplicativo que faz as solicitações de previsão e o binário de exibição estão dentro da mesma rede local. É possível evitar a sobrecarga do roteamento de Internet e fazer uma conexão ponto a ponto usando a nuvem privada virtual.

Especifique o número e os tipos de máquinas necessários.

Para implantar o modelo para previsão, escolha o hardware apropriado para seu modelo, como diferentes tipos de máquina virtual (VM) de unidade de processamento central (CPU, na sigla em inglês) ou tipos de unidade de processamento gráfico (GPU, na sigla em inglês). Para mais informações, consulte Como especificar tipos de máquinas ou níveis de escalonamento.

Planeje entradas para o modelo

Além de implantar o modelo, você precisará determinar como as entradas serão transmitidas para o modelo. Se você estiver usando a previsão em lote, poderá buscar dados do data lake ou a partir da API de exibição em lote do Vertex AI Feature Store. Se você estiver usando a previsão on-line, poderá enviar instâncias de entrada para o serviço, que retornará as previsões na resposta. Para mais informações, consulte Detalhes do corpo da resposta.

Se você estiver implantando o modelo para a previsão on-line, será necessária uma maneira escalonável e de baixa latência para disponibilizar entradas ou recursos que precisam ser transmitidos ao endpoint do modelo. Você pode fazer isso usando um dos vários serviços de banco de dados no Google Cloud ou usar a API de exibição on-line do Vertex AI Feature Store. Os clientes que chamam o endpoint de previsão on-line podem, primeiro, chamar a solução de exibição de recursos para buscar as entradas e depois chamar o endpoint de previsão com essas entradas.

A ingestão de streaming permite que você faça atualizações em tempo real nos valores dos atributos. Esse método é útil quando a prioridade mais recente dos dados disponíveis mais recentes para exibição on-line é. Por exemplo, é possível ingerir dados de eventos de streaming e, em alguns segundos, o streaming de ingestão do Vertex AI Feature Store disponibiliza esses dados para cenários de exibição on-line.

É possível personalizar ainda mais o processamento e o formato de entrada (solicitação) e de saída (resposta) de e para o servidor de modelo usando rotinas de previsão personalizadas.

Ative o escalonamento automático

Se você usa o serviço de previsão on-line, recomendamos, na maioria dos casos, ativar o escalonamento automático definindo os nós mínimo e máximo. Para mais informações, consulte Receber previsões on-line de modelos treinados de forma personalizada. Para garantir um contrato de nível de serviço (SLA, na sigla em inglês) de alta disponibilidade, defina o escalonamento automático com, no mínimo, dois nós.

Para saber mais sobre as opções de escalonamento, consulte Como escalonar previsões de machine learning.

Orquestração de fluxo de trabalho de machine learning

A Vertex AI oferece orquestração de fluxo de trabalho de ML para automatizar o fluxo de trabalho de ML com o Vertex AI Pipelines, um serviço totalmente gerenciado que permite retreinar os modelos sempre que necessário. Embora o novo treinamento permita que os modelos se adaptem às mudanças e mantenha o desempenho ao longo do tempo, considere o quanto os dados mudarão ao escolher a cadência ideal do novo treinamento do modelo.

Os fluxos de trabalho de orquestração de ML funcionam melhor para clientes que já projetaram e criaram o modelo, colocaram-no em produção e querem determinar o que está ou não funcionando no modelo. O código usado para experimentação provavelmente será útil para o restante do fluxo de trabalho de ML, com algumas modificações. Para trabalhar com fluxos de trabalho de ML automatizados, você precisa ser fluente em Python, entender a infraestrutura básica como contêineres e ter conhecimento de ML e ciência de dados.

Usar pipelines da Vertex AI para orquestrar o fluxo de trabalho de ML

É possível iniciar manualmente cada processo de dados, treinamento, avaliação, teste e implantação, mas recomendamos o uso do Vertex AI Pipelines para organizar o fluxo. Para informações detalhadas, consulte MLOps nível 1: automação do pipeline de ML.

O Vertex AI Pipelines é compatível com DAGs gerados pelo KubeFlow, TensorFlow Extended (TFX) e Airflow.

Use o Kubeflow Pipelines para criar pipelines flexíveis

O SDK do Kubeflow Pipelines é recomendado para a maioria dos usuários que querem criar pipelines gerenciados. O Kubeflow Pipelines é flexível, o que permite usar um código simples para criar pipelines. Ele também fornece os componentes do Google Cloud Pipeline, que permitem incluir a funcionalidade Vertex AI como AutoML no pipeline. Para saber mais sobre o Kubeflow Pipelines, consulte Kubeflow Pipelines e Vertex AI Pipelines.

organização de artefatos

Os artefatos são saídas resultantes de cada etapa do fluxo de trabalho de ML. É uma prática recomendada organizá-los de forma padronizada.

Organize os artefatos do modelo de ML

Armazene seus artefatos nestes locais:

Local de armazenamento Artefatos
Repositório de controle de origem
  • Notebooks do Vertex AI Workbench
  • Código-fonte do pipeline
  • Como fazer o pré-processamento de funções
  • Código-fonte do modelo
  • Pacotes de treinamento de modelo
  • Funções de exibição
Experimentos e metadados de ML
  • Experimentos
  • Parâmetros
    • Hiperparâmetros
    • Metaparâmetros
  • Métricas
  • Artefatos do conjunto de dados
  • Artefatos de modelos
  • Metadados de pipeline
Vertex AI Model Registry
  • Modelos treinados
Artifact Registry
  • Contêineres de pipeline
  • Ambientes de treinamento personalizados
  • Ambientes de previsão personalizados
Previsão de IA do Vertex
  • Modelos implantados

Usar um repositório de controle de origem para definições de pipeline e código de treinamento

Use o controle de origem para controlar a versão dos pipelines de ML e dos componentes personalizados que você cria para esses pipelines. Use o Artifact Registry para armazenar, gerenciar e proteger as imagens de contêiner do Docker sem torná-las publicamente visíveis.

Monitoramento de modelos

Depois de implantar o modelo na produção, é preciso monitorar o desempenho para garantir que ele esteja funcionando conforme o esperado. A Vertex AI oferece duas maneiras de monitorar seus modelos de ML:

  • Detecção de desvios: esta abordagem busca o grau de distorção entre o treinamento de modelo e os dados de produção

  • Detecção de deslocamentos: nesse tipo de monitoramento, você busca deslocamentos nos dados de produção. O deslocamento ocorre quando as propriedades estatísticas das entradas e o destino, que o modelo está tentando prever, mudam ao longo do tempo de maneiras imprevistas. Isso causa problemas, porque as previsões podem se tornar menos precisas com o tempo.

O monitoramento de modelos funciona para dados estruturados, como recursos numéricos e categóricos, mas não para dados não estruturados, como imagens. Para mais informações, consulte Como monitorar modelos para desvio ou deslocamento de recursos.

Usar detecção de desvios e deslocamentos

Use a detecção de desvios o máximo possível, porque o fato de os dados de produção terem se desviado dos dados de treinamento é um forte indicador de que o modelo não está tendo o desempenho esperado na produção. Para a detecção de desvios, configure o job de monitoramento do modelo fornecendo um ponteiro para os dados de treinamento usados para treinar o modelo.

Se você não tiver acesso aos dados de treinamento, ative a detecção de deslocamentos para saber quando as entradas mudarem com o tempo.

Use a detecção de deslocamento para monitorar se os dados de produção estão se desviando ao longo do tempo. Para detecção de deslocamento, ative os recursos que você quer monitorar e os limites correspondentes para acionar um alerta.

Ajuste limites de alerta

Ajuste os limites usados para alertas para saber quando ocorrer desvios ou deslocamentos dos dados. Os limites de alerta são determinados pelo caso de uso, pela experiência do domínio do usuário e pelas métricas iniciais de monitoramento do modelo. Para saber como usar o monitoramento para criar painéis ou configurar alertas com base nas métricas, consulte Métricas de monitoramento do Cloud.

Use atribuições de recursos para detectar deslocamentos ou desvios

É possível usar as atribuições de recursos no Vertex Explainable AI para detectar deslocamento ou desvio de dados como um indicador antecipado de que o desempenho do modelo pode estar degradante. Por exemplo, se o modelo dependia originalmente de cinco atributos para fazer previsões nos dados de treinamento e teste, mas o modelo começasse a depender de recursos totalmente diferentes quando ocorresse a produção, as atribuições de recursos ajudariam a detectar essa degradação no desempenho do modelo.

Isso é particularmente útil para tipos de recursos complexos, como embeddings e séries temporais, que são difíceis de comparar usando métodos tradicionais de desvio e deslocamento. Com a Vertex Explainable AI, as atribuições de recursos podem indicar quando o desempenho do modelo está degradando.

A seguir