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. Ele oferece recomendações sobre como desenvolver um modelo treinado de forma personalizada em todo o fluxo de trabalho de ML, 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, incluindo produtos relacionados:
- Desenvolvimento de ML
- Preparação de dados
- ML treinamento
- Implantação e exibição de modelos
- Orquestração do fluxo de trabalho de ML
- Organização de artefatos
- Monitoramento de modelos
O documento não é uma lista extensa de recomendações. O objetivo é ajudar cientistas de dados e arquitetos de ML 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, partimos do princípio que você:
- 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 em Google Cloud.
- Você tem conhecimento intermediário de ML, ferramentas de Big Data e pré-processamento de dados, além de familiaridade com os fundamentos do Cloud Storage, do BigQuery e do Google Cloud.
Se você não tem experiência com ML, confira o Curso intensivo de ML do Google.
Use ferramentas e produtos recomendados
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 de ML | Ferramentas e produtos recomendados |
---|---|
Configuração do ambiente de ML | |
Desenvolvimento de ML | |
Preparação de dados | |
Treinamento de ML | |
Implantação e exibição de modelos | |
Orquestração do fluxo de trabalho de ML | |
Organização de artefatos | |
Monitoramento de modelos | |
Plataformas gerenciadas de código aberto |
O Google oferece AutoML, previsão com a Vertex AI e 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 reúne dados, infraestrutura e tipos de modelo predefinidos em um único sistema. |
|
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 da disponibilização de um modelo, como a escolha de uma arquitetura, o ajuste de hiperparâmetros e o provisionamento de máquinas, são processados para você. |
|
Modelos personalizados da Vertex AI | A Vertex permite executar suas próprias rotinas de treinamento personalizadas e implantar modelos de qualquer tipo na arquitetura sem servidor. A Vertex AI oferece serviços adicionais, como ajuste e monitoramento de hiperparâmetros, para facilitar o desenvolvimento de um modelo. Consulte Escolher um método de treinamento personalizado. |
|
Configuração do ambiente de ML
Recomendamos que você siga estas práticas recomendadas ao configurar seu ambiente de ML:
- Usar as instâncias do Vertex AI Workbench para experimentação e desenvolvimento.
- Crie uma instância do Vertex AI Workbench para cada membro da equipe.
- Armazene os recursos e artefatos de ML com base na política corporativa.
- Use o SDK da Vertex AI para Python.
Usar as instâncias do Vertex AI Workbench para experimentação e desenvolvimento
Independentemente das ferramentas, recomendamos que você use instâncias 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 do Vertex AI Workbench, é possível acessar todos os serviços de dados e IA do Google Cloudde maneira simples e reproduzível.
As instâncias do Vertex AI Workbench também oferecem um conjunto seguro de softwares e padrões de acesso prontos para uso. É uma prática comum personalizar propriedades doGoogle Cloud , como rede e Identity and Access Management, e o software (por um contêiner) associado a uma instância do Vertex AI Workbench. Para mais informações, consulte Introdução à Vertex AI e Introdução às instâncias do Vertex AI Workbench.
Outra opção é usar o Colab Enterprise, um ambiente de notebook gerenciado e colaborativo que usa os recursos de segurança e compliance do Google Cloud.
Criar uma instância do Vertex AI Workbench para cada membro da equipe
Crie uma instância do Vertex AI Workbench para cada membro da sua equipe de ciência de dados. Se um membro da equipe estiver envolvido em vários projetos, especialmente projetos com dependências diferentes, recomendamos usar várias instâncias e tratar cada uma delas como um espaço de trabalho virtual. É possível interromper as instâncias do Vertex AI Workbench 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 em 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 PyTorch, TensorFlow, XGBoost e scikit-learn.
Como alternativa, é possível usar o console Google Cloud , que é compatível com a funcionalidade da Vertex AI como uma interface do usuário pelo navegador.
Desenvolvimento de ML
Recomendamos as seguintes práticas recomendadas para o desenvolvimento de ML:
Prepare os dados de treinamento.
Armazene dados estruturados e semiestruturados no BigQuery.
Armazene dados de imagem, vídeo, áudio e não estruturados no Cloud Storage.
Use o Vertex AI Feature Store com dados estruturados.
Use o Vertex AI TensorBoard e o Vertex AI Experiments para analisar experimentos.
Treine um modelo em uma instância do Vertex AI Workbench para conjuntos de dados pequenos.
Maximize a acurácia preditiva do modelo com ajuste de hiperparâmetros.
Use uma instância do Vertex AI Workbench para entender seus modelos.
Use atribuições de recursos para obter insights sobre previsões do modelo.
O desenvolvimento de ML trata a preparação dos dados, os testes e a avaliação do modelo. Ao resolver um problema de ML, 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 usar com a Vertex AI, consulte Treinar e usar seus próprios modelos.
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 Google Cloud que facilitam o uso da API:
Se você estiver usando... | Use esta Google Cloud ferramenta |
---|---|
TensorFlow para Keras | Leitor tf.data.dataset para BigQuery |
TFX | Cliente do BigQuery |
Dataflow | Conector de E/S do Google BigQuery |
Qualquer outro framework (como PyTorch, XGBoost ou scikit-learn) | Importar modelos no 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. Isso vai 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 Visão geral do produto Cloud Storage.
Usar serviços de rotulagem de dados com o console do Google Cloud
É possível criar e importar dados de treinamento na página da Vertex AI no Google Cloud console. Ao usar os recursos de comando e ajuste do Gemini, você pode gerenciar dados de texto com classificação, extração de entidade e análise de sentimento personalizadas. Também há soluções de rotulagem de dados no Marketplace do console Google Cloud , como Labelbox e Snorkel Flow.
Use o Feature Store da Vertex AI com dados estruturados
É possível usar o Feature Store da Vertex AI para criar, manter, compartilhar e disponibilizar atributos de ML em um local central. Ele é otimizado para atender cargas de trabalho que precisam de baixa latência e permite armazenar dados de recursos em uma tabela ou visualização do BigQuery. Para usar a Feature Store da Vertex AI, crie uma instância de loja on-line e defina suas visualizações de atributos. O BigQuery armazena todos os dados de atributos, incluindo dados históricos, para que você possa trabalhar off-line.
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 para empresas com uma solução econômica e segura que permite que cientistas de dados e pesquisadores de ML colaborem para acompanhar, comparar e compartilhar experimentos. O Vertex AI TensorBoard permite acompanhar métricas do experimento, como perda e acurácia 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.
Treine um modelo em uma instância do Vertex AI Workbench para conjuntos de dados pequenos
O treinamento de um modelo na instância do Vertex AI Workbench pode ser suficiente para conjuntos de dados pequenos ou 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 acurácia preditiva do modelo, use o ajuste de hiperparâmetros, o aprimoramento de modelo automatizado fornecido pelo serviço de treinamento da Vertex AI que aproveita a infraestrutura de processamento do Google Cloud e do Vizier da Vertex AI para testar diferentes configurações de hiperparâmetros ao treinar seu 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 Criar um job de ajuste de hiperparâmetros.
Usar uma instância do Vertex AI Workbench para entender seus modelos
Use uma instância do Vertex AI Workbench para avaliar e entender seus modelos. Além das bibliotecas comuns integradas, como o scikit-learn, as instâncias do Vertex AI Workbench incluem a Ferramenta What-If (WIT, na sigla em inglês) e a Ferramenta de interpretabilidade de linguagem (LIT, na sigla em inglês). A WIT permite analisar de maneira interativa seus modelos em busca de viés usando várias técnicas, e 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, oferecendo 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 nele.
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:
- Introdução à Vertex Explainable AI
- Como melhorar as explicações
- Exemplos de código da Vertex Explainable AI
Preparação de dados
Recomendamos as seguintes práticas recomendadas para preparação de dados:
Use o BigQuery para processar dados tabulares.
Use o Dataflow para processar dados.
Use o Dataproc para processamento de dados do Spark sem servidor.
Use conjuntos de dados gerenciados com o Vertex ML Metadata.
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ê estiver criando um modelo personalizado, o uso de transformações do BigQuery pode ser o método mais econômico.
Para conjuntos de dados grandes, use o particionamento no BigQuery. Essa prática pode melhorar o desempenho da consulta e a eficiência de custos.
Usar o Dataflow para processar dados
Para grandes volumes de dados, 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.
ML treinamento
Recomendamos as seguintes práticas recomendadas para treinamento de ML:
Execute o código em um serviço gerenciado.
Operacionalize a execução de jobs com pipelines de treinamento.
Use pontos de verificação de treinamento para salvar o estado atual do experimento.
Prepare artefatos de modelo para exibir no Cloud Storage.
Calcule regularmente novos valores de recursos.
No treinamento de ML, o treinamento operacionalizado é o processo de tornar o treinamento do modelo repetível rastreando repetições e gerenciando o desempenho. Embora as instâncias do Vertex AI Workbench sejam convenientes para o desenvolvimento iterativo em pequenos conjuntos de dados, recomendamos que você operacionalize seu código para torná-lo reproduzível e capaz de escalonar para grandes conjuntos de dados. Nesta seção, vamos discutir ferramentas e práticas recomendadas para operacionalizar suas 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 orquestrar com Vertex AI Pipelines. Outra opção é executar o código diretamente em imagens de VM de aprendizado profundo, Deep Learning Containers ou Compute Engine. No entanto, não recomendamos essa abordagem se você estiver usando recursos da Vertex AI, como escalonamento automático e capacidade de burst.
Operacionalize a execução de jobs com pipelines de treinamento
Para operacionalizar a execução de jobs de treinamento na Vertex AI, é possível
criar pipelines de treinamento. 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 ML.
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.
O Cloud Storage tem suporte para controle de versões de objetos. Para evitar perda ou corrupção acidental de dados, ative o controle de versões de objetos no Cloud Storage.
Armazene o bucket do Cloud Storage no mesmo projeto 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
- 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 exibição de modelos
Recomendamos as seguintes práticas recomendadas para implantação e disponibilização de modelos:
Especifique a quantidade e os tipos de máquinas necessários.
Planeje entradas para o modelo.
Ative o escalonamento automático.
Monitore modelos usando o
BigQuery ML.
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, que podem ser enviados para o 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 reduzir a latência das solicitações ponto a ponto entre o cliente e o servidor do modelo, use endpoints particulares da Vertex AI. Os endpoints particulares 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 da API de disponibilização em lote da 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. É possível veicular vários modelos para o mesmo endpoint, por exemplo, para substituir gradualmente o modelo. Outra opção é implantar modelos em vários endpoints, por exemplo, em teste e produção, compartilhando recursos entre implantações.
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 ML.
Orquestração do fluxo de trabalho de ML
Recomendamos as seguintes práticas recomendadas para a orquestração do fluxo de trabalho de ML:
Use os pipelines da Vertex AI para orquestrar o fluxo de trabalho de ML
Use o
Kubeflow Pipelines para criar pipelines flexíveis.
Use o
Ray na Vertex AI para fluxos de trabalho de ML distribuídos.
A Vertex AI oferece orquestração de fluxo de trabalho de ML para automatizar o fluxo de trabalho de ML com 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 mantenham 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á e não está 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
Recomendamos o SDK do Kubeflow Pipelines para a maioria dos usuários que querem criar pipelines gerenciados. O Kubeflow Pipelines é flexível, permitindo que você use código para criar pipelines. Ele também fornece componentes de pipeline Google Cloud , o que permite incluir funcionalidades da Vertex AI, como o AutoML, no seu pipeline. Para saber mais sobre o Kubeflow Pipelines, consulte Kubeflow Pipelines e Vertex AI Pipelines.
Usar o Ray na Vertex AI para fluxos de trabalho de ML distribuídos
O Ray oferece um framework distribuído geral e unificado para escalonar fluxos de trabalho de machine learning usando um framework de computação de código aberto, escalonável e distribuído em Python. Essa estrutura pode ajudar a resolver os desafios de ter várias estruturas distribuídas no seu ecossistema de ML, como lidar com vários modos de paralelismo de tarefas, programação e gerenciamento de recursos. Você pode usar o Ray na Vertex AI para desenvolver aplicativos na Vertex AI.
organização de artefatos
Recomendamos que você use as seguintes práticas recomendadas para organizar seus artefatos:
Organize os artefatos do modelo de ML.
Use um repositório de controle de origem para definições de pipeline e códigos de treinamento.
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 |
|
Experimentos e metadados de ML |
|
Model Registry |
|
Artifact Registry |
|
Vertex AI Inference |
|
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
Use a detecção de desvios e deslocamentos.
Ajuste limites de alerta.
Use atribuições de recursos para detectar deslocamentos ou desvios de dados.
Use o BigQuery para oferecer suporte ao 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 na 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çou a depender de atributos totalmente diferentes quando entrou em produção, as atribuições de atributos ajudariam a detectar essa degradação no desempenho do modelo.
Isso é particularmente útil para tipos de atributos complexos, como embeddings e séries temporais, que são difíceis de comparar usando métodos tradicionais de distorção e desvio. Com a Vertex Explainable AI, as atribuições de recursos podem indicar quando o desempenho do modelo está degradando.
Usar o BigQuery para oferecer suporte ao monitoramento de modelos
O monitoramento de modelos do BigQuery ML é um conjunto de ferramentas e funcionalidades que ajuda você a acompanhar e avaliar o desempenho dos seus modelos de ML ao longo do tempo. O monitoramento de modelos é essencial para manter a precisão e a confiabilidade em aplicativos do mundo real. Recomendamos que você monitore os seguintes problemas:
- Desvio de dados: esse problema ocorre quando as distribuições de valores de atributos são diferentes entre os dados de treinamento e de disponibilização. As estatísticas de treinamento, que são salvas durante treinamento de modelo, permitem a detecção de distorção sem a necessidade dos dados originais.
- Desvio de dados: os dados do mundo real mudam com frequência ao longo do tempo. O monitoramento de modelo ajuda a identificar quando os dados de entrada que o modelo recebe na produção (dados de veiculação) começam a divergir significativamente dos dados com que ele foi treinado (dados de treinamento). Essa mudança pode prejudicar a performance.
- Desvio ou deslocamento de dados avançado: quando você quer estatísticas detalhadas de desvio ou deslocamento, monitore o desvio ou deslocamento de dados avançado.
A seguir
- Documentação da Vertex AI
- Guia para profissionais de operações de machine learning (MLOps): um framework para entrega e automação contínuas de ML
- Para uma visão geral dos princípios e recomendações de arquitetura específicos para cargas de trabalho de IA e ML no Google Cloud, consulte a perspectiva de IA e ML no framework bem arquitetado.
- Para mais arquiteturas de referência, diagramas e práticas recomendadas, confira a Central de arquitetura do Cloud.