Este documento apresenta práticas recomendadas para implementar a aprendizagem automática (AA) Google Cloud, com foco em modelos preparados personalizados com base nos seus dados e código. Fornece recomendações sobre como desenvolver um modelo preparado personalizado ao longo do fluxo de trabalho de ML, incluindo ações e links principais para leitura adicional.
O diagrama seguinte oferece uma vista geral de alto nível das fases no fluxo de trabalho de ML abordado neste documento, incluindo produtos relacionados:
- Desenvolvimento de ML
- Preparação de dados
- Preparação em ML
- Implementação e publicação de modelos
- Orquestração de fluxos de trabalho de ML
- Organização de artefactos
- Monitorização de modelos
O documento não é uma lista exaustiva de recomendações. O objetivo é ajudar os cientistas de dados e os arquitetos de ML a compreender o âmbito das atividades envolvidas na utilização da ML no Google Cloud e planear em conformidade. Embora as alternativas de programação de ML, como o AutoML, sejam mencionadas no artigo Use ferramentas e produtos recomendados, este documento foca-se principalmente em modelos preparados personalizados.
Antes de seguir as práticas recomendadas neste documento, recomendamos que leia a Introdução à Vertex AI.
Este documento pressupõe o seguinte:
- Está a usar principalmente Google Cloud serviços; as abordagens híbridas e no local não são abordadas neste documento.
- Planeia recolher dados de preparação e armazená-los em Google Cloud.
- Tem conhecimentos de nível intermédio de ML, ferramentas de Big Data e pré-processamento de dados, bem como familiaridade com os fundamentos do Cloud Storage, do BigQuery e do Google Cloud.
Se for a primeira vez que usa a aprendizagem automática, consulte o ML Crash Course da Google.
Use ferramentas e produtos recomendados
A tabela seguinte apresenta uma lista de ferramentas e produtos recomendados para cada fase do fluxo de trabalho de ML, conforme descrito neste documento:
Passo do fluxo de trabalho de ML | Ferramentas e produtos recomendados |
---|---|
Configuração do ambiente de AA | |
Desenvolvimento de AA | |
Preparação de dados | |
Formação em ML | |
Implementação e publicação de modelos | |
Orquestração do fluxo de trabalho de ML | |
Organização de artefactos | |
Monitorização de modelos | |
Plataformas de código aberto geridas |
A Google oferece o AutoML, previsão com o Vertex AI e o BigQuery ML como alternativas de rotina de preparação pré-criadas às soluções de modelos preparados de forma personalizada do Vertex AI. A tabela seguinte apresenta recomendações sobre quando usar estas opções para o Vertex AI.
Ambiente de ML | Descrição | Escolha este ambiente se… |
---|---|---|
BigQuery ML | O BigQuery ML reúne dados, infraestrutura e tipos de modelos predefinidos num único sistema. |
|
AutoML (no contexto do Vertex AI) | O AutoML oferece rotinas de preparação para problemas comuns, como a classificação de imagens e a regressão tabular. Quase todos os aspetos da preparação e da publicação de um modelo, como a escolha de uma arquitetura, o ajuste de hiperparâmetros e o aprovisionamento de máquinas, são processados por si. |
|
Modelos preparados personalizados do Vertex AI | O Vertex permite-lhe executar as suas próprias rotinas de preparação personalizadas e implementar modelos de qualquer tipo numa arquitetura sem servidor. O Vertex AI oferece serviços adicionais, como o ajuste e a monitorização de hiperparâmetros, para facilitar o desenvolvimento de um modelo. Consulte a secção Escolha um método de preparação personalizado. |
|
Configuração do ambiente de ML
Recomendamos que use as seguintes práticas recomendadas quando configurar o seu ambiente de ML:
- Use instâncias do Vertex AI Workbench para experimentação e desenvolvimento.
- Crie uma instância do Vertex AI Workbench para cada membro da equipa.
- Armazene os seus recursos e artefactos de ML com base na política corporativa.
- Use o SDK Vertex AI para Python.
Use instâncias do Vertex AI Workbench para experimentação e desenvolvimento
Independentemente das suas ferramentas, recomendamos que use instâncias do Vertex AI Workbench para experimentação e desenvolvimento, incluindo escrever código, iniciar tarefas, executar consultas e verificar o estado. As instâncias do Vertex AI Workbench permitem-lhe aceder a todos os dados e serviços de IA de forma simples e reproduzível. Google Cloud
As instâncias do Vertex AI Workbench também lhe oferecem um conjunto seguro de software e padrões de acesso assim que as começa a usar. É uma prática comum personalizar Google Cloud propriedades como a rede e a gestão de identidade e de acesso, e o software (através de um contentor) associado a uma instância do Vertex AI Workbench. Para mais informações, consulte os artigos Introdução ao Vertex AI e Introdução às instâncias do Vertex AI Workbench.
Em alternativa, pode usar o Colab Enterprise, que é um ambiente de bloco de notas gerido colaborativo que usa as capacidades de segurança e conformidade do Google Cloud.
Crie uma instância do Vertex AI Workbench para cada membro da equipa
Crie uma instância do Vertex AI Workbench para cada membro da sua equipa de ciência de dados. Se um membro da equipa estiver envolvido em vários projetos, especialmente projetos com dependências diferentes, recomendamos a utilização de várias instâncias, tratando cada instância como um espaço de trabalho virtual. Tenha em atenção que pode parar as instâncias do Vertex AI Workbench quando não estiverem a ser usadas.
Armazene os seus recursos e artefactos de ML com base na política corporativa
O controlo de acesso mais simples consiste em armazenar os recursos e os artefactos do Vertex AI, como conjuntos de dados e modelos, no mesmo projeto Google Cloud . Normalmente, a sua empresa tem políticas que controlam o acesso. Nos casos em que os seus recursos e artefactos estão armazenados em vários projetos, pode configurar o controlo de acesso entre projetos corporativo com a gestão de identidade e acesso (IAM).
Use o SDK Vertex AI para Python
Use o Vertex AI SDK para Python, uma forma Pythonic de usar o Vertex AI para os seus fluxos de trabalho de criação de modelos ponto a ponto, que funciona perfeitamente com as suas frameworks de ML favoritas, incluindo PyTorch, TensorFlow, XGBoost e scikit-learn.
Em alternativa, pode usar a Google Cloud consola, que suporta a funcionalidade do Vertex AI como uma interface do utilizador através do navegador.
Desenvolvimento de ML
Recomendamos as seguintes práticas recomendadas para o desenvolvimento de ML:
Prepare os dados de preparação.
Armazene dados estruturados e semiestruturados no BigQuery.
Armazene imagens, vídeos, áudio e dados 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 experiências.
Prepare um modelo numa instância do Vertex AI Workbench para conjuntos de dados pequenos.
Maximize a precisão das previsões do seu modelo com o ajuste de hiperparâmetros.
Use uma instância do Vertex AI Workbench para compreender os seus modelos.
Use as atribuições de funcionalidades para obter estatísticas sobre as previsões do modelo.
O desenvolvimento de ML aborda a preparação dos dados, a experimentação e a avaliação do modelo. Ao resolver um problema de AA, é normalmente necessário criar e comparar vários modelos diferentes para determinar o que funciona melhor.
Normalmente, os cientistas de dados preparam modelos com diferentes arquiteturas, conjuntos de dados de entrada, hiperparâmetros e hardware. Os cientistas de dados avaliam os modelos resultantes analisando as métricas de desempenho agregadas, como a precisão, a exatidão e a capacidade de memorização em conjuntos de dados de teste. Por último, os cientistas de dados avaliam o desempenho dos modelos em relação a subconjuntos específicos dos respetivos dados, a diferentes versões de modelos e a diferentes arquiteturas de modelos.
Prepare os dados de preparação
Os dados usados para preparar um modelo podem ter origem em qualquer número de sistemas, por exemplo, registos de um sistema de serviço online, imagens de um dispositivo local ou documentos extraídos da Web.
Independentemente da origem dos dados, extraia dados dos sistemas de origem e converta-os para o formato e o armazenamento (separados da origem operacional) otimizados para a preparação de ML. Para mais informações sobre a preparação de dados de preparação para utilização com o Vertex AI, consulte o artigo Prepare e use os seus próprios modelos.
Armazene dados estruturados e semiestruturados no BigQuery
Se estiver a trabalhar com dados estruturados ou semiestruturados, recomendamos que armazene todos os dados no BigQuery, seguindo a recomendação do BigQuery para a estrutura do projeto. Na maioria dos casos, também pode armazenar dados intermédios processados no BigQuery. Para uma velocidade máxima, é melhor armazenar dados materializados em vez de usar visualizações ou subconsultas para dados de preparação.
Ler dados do BigQuery através da API BigQuery Storage. Para o acompanhamento de artefactos, considere usar um conjunto de dados tabulares gerido. A tabela seguinte apresenta Google Cloud ferramentas que facilitam a utilização da API:
Se estiver a usar… | Use esta Google Cloud ferramenta |
---|---|
TensorFlow para Keras | Leitor tf.data.dataset para BigQuery |
TFX | Cliente do BigQuery |
Dataflow | Conetor Google BigQuery I/O |
Qualquer outra framework (como PyTorch, XGBoost ou scilearn-kit) | Importar modelos no BigQuery |
Armazene dados de imagem, vídeo, áudio e não estruturados no Cloud Storage
Armazenar estes dados em formatos de contentores grandes no Cloud Storage. Isto aplica-se a ficheiros TFRecord divididos se estiver a usar o TensorFlow ou a ficheiros Avro se estiver a usar qualquer outra framework.
Combine muitas imagens, vídeos ou clipes de áudio individuais em ficheiros grandes, uma vez que isto melhora a taxa de transferência de leitura e gravação para o Cloud Storage. Procure ter ficheiros de, pelo menos,100 MB e entre 100 e 10 000 fragmentos.
Para ativar a gestão de dados, use contentores e diretórios do Cloud Storage para agrupar os fragmentos. Para mais informações, consulte a Vista geral do produto do Cloud Storage.
Use serviços de etiquetagem de dados com a Google Cloud consola
Pode criar e importar dados de preparação através da página do Vertex AI na Google Cloud consola. Ao usar as capacidades de comando e otimização do Gemini, pode gerir dados de texto com classificação, extração de entidades e análise de sentimentos personalizadas. Também existem soluções de etiquetagem de dados no Marketplace da Google Cloud consola, como a Labelbox e a Snorkel Flow.
Use o Vertex AI Feature Store com dados estruturados
Pode usar o Vertex AI Feature Store para criar, manter, partilhar e apresentar funcionalidades de ML numa localização central. Está otimizado para processar cargas de trabalho que precisam de baixa latência e permite-lhe armazenar dados de caraterísticas numa tabela ou vista do BigQuery. Para usar o Vertex AI Feature Store, tem de criar uma instância da loja online e definir as suas visualizações de funcionalidades. O BigQuery armazena todos os dados das funcionalidades, incluindo os dados das funcionalidades do histórico, para lhe permitir trabalhar offline.
Use o Vertex AI TensorBoard e o Vertex AI Experiments para analisar experiências
Ao desenvolver modelos, use o Vertex AI TensorBoard para visualizar e comparar experiências específicas, por exemplo, com base em hiperparâmetros. O Vertex AI TensorBoard é um serviço gerido pronto para empresas com uma solução segura e económica que permite aos cientistas de dados e aos investigadores de ML colaborar, facilitando o acompanhamento, a comparação e a partilha das respetivas experiências. O Vertex AI TensorBoard permite monitorizar as métricas de experiências, como a perda e a precisão ao longo do tempo, visualizar o gráfico do modelo, projetar incorporações num espaço de menor dimensão e muito mais.
Use o Vertex AI Experiments para integrar com o Vertex ML Metadata e registar e criar associações entre parâmetros, métricas e artefactos de conjuntos de dados e modelos.
Prepare um modelo numa instância do Vertex AI Workbench para conjuntos de dados pequenos
A preparação 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. Pode ser útil usar o serviço de preparação para conjuntos de dados maiores ou para preparação distribuída. Também recomendamos a utilização do serviço de preparação da Vertex AI para colocar a preparação em produção, mesmo em conjuntos de dados pequenos, se a preparação for realizada de acordo com um horário ou em resposta à chegada de dados adicionais.
Maximize a precisão das previsões do seu modelo com o ajuste de hiperparâmetros
Para maximizar a precisão preditiva do seu modelo, use o ajuste de hiperparâmetros, o melhorador de modelos automatizado fornecido pelo serviço de preparação do Vertex AI que tira partido da infraestrutura de processamento do Google Cloud e do Vertex AI Vizier para testar diferentes configurações de hiperparâmetros quando prepara o seu modelo. O aperfeiçoamento de hiperparâmetros elimina a necessidade de ajustar manualmente os hiperparâmetros ao longo de várias execuções de preparação para chegar aos valores ideais.
Para saber mais sobre o aperfeiçoamento de hiperparâmetros, consulte os artigos Vista geral do aperfeiçoamento de hiperparâmetros e Crie uma tarefa de aperfeiçoamento de hiperparâmetros.
Use uma instância do Vertex AI Workbench para compreender os seus modelos
Use uma instância do Vertex AI Workbench para avaliar e compreender os 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) e a ferramenta de interpretabilidade de linguagem (LIT). O WIT permite-lhe analisar interativamente os seus modelos quanto a parcialidade através de várias técnicas, enquanto o LIT ajuda a compreender o comportamento do modelo de processamento de linguagem natural através de uma ferramenta visual, interativa e extensível.
Use as atribuições de funcionalidades para obter estatísticas sobre as previsões do modelo
A Vertex Explainable AI é uma parte integrante do processo de implementação de ML, oferecendo atribuições de características para fornecer estatísticas sobre o motivo pelo qual os modelos geram previsões. Ao detalhar a importância de cada funcionalidade que um modelo usa como entrada para fazer uma previsão, a IA explicável do Vertex ajuda a compreender melhor o comportamento do modelo e a criar confiança nos seus modelos.
A IA explicável do Vertex suporta modelos preparados de forma personalizada com base em dados tabulares e de imagens.
Para mais informações sobre o Vertex Explainable AI, consulte:
- Introdução à Vertex Explainable AI
- Melhorar as explicações
- Exemplos de código do Vertex Explainable AI
Preparação de dados
Recomendamos as seguintes práticas recomendadas para a preparação de dados:
Use o BigQuery para processar dados tabulares.
Use o Dataflow para processar dados.
Use o Dataproc para o tratamento de dados do Spark sem servidor.
Use conjuntos de dados geridos com o Vertex ML Metadata.
A abordagem recomendada para processar os seus dados depende da estrutura e dos tipos de dados que está a usar. Esta secção apresenta recomendações gerais para cenários comuns.
Use o BigQuery para processar dados estruturados e semiestruturados
Use o BigQuery para armazenar dados estruturados ou semiestruturados não processados. Se estiver a criar o seu modelo com o BigQuery ML, use as transformações incorporadas no BigQuery para pré-processar os dados. Se estiver a usar o AutoML, use as transformações incorporadas no AutoML para pré-processar os dados. Se estiver a criar um modelo personalizado, a utilização das transformações do BigQuery pode ser o método mais rentável.
Para conjuntos de dados grandes, considere usar a partição no BigQuery. Esta prática pode melhorar o desempenho das consultas e a rentabilidade.
Use o Dataflow para processar dados
Com grandes volumes de dados, considere usar o Dataflow, que usa o modelo de programação Apache Beam. Pode usar o Dataflow para converter os dados não estruturados em formatos de dados binários, como o TFRecord, o que pode melhorar o desempenho do carregamento de dados durante o processo de preparação.
Use o Dataproc para o tratamento de dados Spark sem servidor
Em alternativa, se a sua organização tiver um investimento numa base de código e competências do Apache Spark, considere usar o Dataproc. Use scripts Python únicos para conjuntos de dados mais pequenos que cabem na memória.
Se precisar de fazer transformações que não sejam expressas no Cloud SQL ou que sejam para streaming, pode usar uma combinação do Dataflow e da biblioteca pandas.
Use conjuntos de dados geridos com metadados de ML
Depois de os dados serem pré-processados para ML, recomendamos que considere usar um conjunto de dados gerido no Vertex AI. Os conjuntos de dados geridos permitem-lhe criar uma associação clara entre os seus dados e os modelos preparados personalizados, bem como fornecer estatísticas descritivas e divisão automática ou manual em conjuntos de preparação, teste e validação.
Os conjuntos de dados geridos não são obrigatórios. Pode optar por não os usar se quiser ter mais controlo sobre a divisão dos dados no código de preparação ou se a linhagem entre os dados e o modelo não for essencial para a sua aplicação.
Para mais informações, consulte os artigos Conjuntos de dados e Usar um conjunto de dados gerido numa aplicação de preparação personalizada.
Preparação em ML
Recomendamos as seguintes práticas recomendadas para a preparação de ML:
Execute o seu código num serviço gerido.
Operacionalize a execução de tarefas com pipelines de preparação.
Use pontos de verificação de preparação para guardar o estado atual da sua experiência.
Prepare os artefactos do modelo para publicação no Cloud Storage.
Calcular regularmente os novos valores das funcionalidades.
Na preparação de ML, a preparação operacionalizada refere-se ao processo de tornar a preparação do modelo repetível através do acompanhamento das repetições e da gestão do desempenho. Embora as instâncias do Vertex AI Workbench sejam convenientes para o desenvolvimento iterativo em pequenos conjuntos de dados, recomendamos que operacionalize o seu código para o tornar reproduzível e capaz de ser dimensionado para grandes conjuntos de dados. Nesta secção, abordamos as ferramentas e as práticas recomendadas para operacionalizar as suas rotinas de preparação.
Execute o seu código num serviço gerido
Recomendamos que execute o seu código no serviço de preparação do Vertex AI ou o organize com os Vertex AI Pipelines. Opcionalmente, pode executar o seu código diretamente nas imagens de VMs de aprendizagem avançada, contentores de aprendizagem avançada> ou Compute Engine. No entanto, não recomendamos esta abordagem se estiver a usar funcionalidades do Vertex AI, como o escalonamento automático e a capacidade de picos.
Operacionalize a execução de tarefas com pipelines de preparação
Para operacionalizar a execução de tarefas de preparação no Vertex AI, pode criar pipelines de preparação. Um pipeline de preparação, que é diferente de um pipeline de ML geral, encapsula tarefas de preparação. Para saber mais sobre os pipelines de preparação, consulte os artigos Criar pipelines de preparação e Recurso REST: projects.locations.trainingPipelines
.
Use pontos de verificação de preparação para guardar o estado atual da sua experiência
O fluxo de trabalho de ML neste documento pressupõe que não está a fazer a preparação de forma interativa. Se o modelo falhar e não for criado um ponto de verificação, a tarefa de preparação ou o pipeline termina, e os dados são perdidos porque o modelo não está na memória. Para evitar este cenário, habitue-se a usar sempre pontos de verificação de preparação para garantir que não perde o estado.
Recomendamos que guarde os pontos de verificação de preparação no Cloud Storage. Crie uma pasta diferente para cada experiência ou execução de preparação.
Para saber mais acerca dos pontos de verificação, consulte os seguintes recursos: Pontos de verificação de preparação para o TensorFlow Core, Guardar e carregar um ponto de verificação geral no PyTorch e Padrões de design de ML.
Prepare artefactos do modelo para publicação no Cloud Storage
Para modelos preparados de forma personalizada ou contentores personalizados, armazene os artefactos do modelo num contentor do Cloud Storage, em que a região do contentor corresponde ao ponto final regional que está a usar para produção. Consulte a secção Regiões dos contentores para mais informações.
O Cloud Storage suporta o controlo de versões de objetos. Para fornecer uma mitigação contra a perda ou a corrupção de dados acidental, ative a criação de versões de objetos no Cloud Storage.
Armazene o seu contentor do Cloud Storage no mesmo Google Cloud projeto. Se o seu contentor do Cloud Storage estiver num Google Cloud projeto diferente, tem de conceder acesso ao Vertex AI para ler os artefactos do seu modelo.
Se estiver a usar um contentor pré-criado do Vertex AI, certifique-se de que os artefactos do modelo têm nomes de ficheiros que correspondem exatamente a estes exemplos:
- TensorFlow SavedModel:
saved_model.pb
- Scikit-learn:
model.joblib
- XGBoost:
model.bst
- PyTorch:
model.pth
Para saber como guardar o seu modelo sob a forma de um ou mais artefactos do modelo, consulte o artigo Exportar artefactos do modelo para previsão.
Calcule regularmente novos valores de atributos
Normalmente, um modelo usa um subconjunto de funcionalidades provenientes do Vertex AI Feature Store. As funcionalidades no Vertex AI Feature Store já estão prontas para publicação online. Para quaisquer novas funcionalidades criadas pelo cientista de dados através da obtenção de dados do data lake, recomendamos agendar as tarefas de processamento de dados e engenharia de funcionalidades correspondentes (ou, idealmente, o Dataflow) para calcular regularmente os novos valores das funcionalidades na cadência necessária, consoante as necessidades de atualidade das funcionalidades, e carregá-los no Vertex AI Feature Store para publicação online ou em lote.
Implementação e publicação de modelos
Recomendamos as seguintes práticas recomendadas para a implementação e a publicação de modelos:
Especifique o número e os tipos de máquinas de que precisa.
Entradas do plano para o modelo.
Ative o dimensionamento automático.
Monitorize modelos com o
BigQuery ML.
A implementação e a publicação de modelos referem-se à colocação de um modelo em produção. O resultado da tarefa de preparação é um ou mais artefactos do modelo armazenados no Cloud Storage, que pode carregar para o Model Registry para que o ficheiro possa ser usado para o serviço de previsão. Existem dois tipos de publicação de previsões: a previsão em lote é usada para classificar lotes de dados a uma cadência regular, e a previsão online é usada para a classificação de dados quase em tempo real para aplicações em direto. Ambas as abordagens permitem-lhe obter previsões de modelos preparados transmitindo dados de entrada a um modelo de AA alojado na nuvem e recebendo inferências para cada instância de dados.Para saber mais, consulte os artigos Obter previsões em lote e Obter previsões online de modelos preparados de forma personalizada.
Para reduzir a latência dos pedidos ponto a ponto entre o cliente e o servidor do modelo, use os pontos finais privados da Vertex AI. Os pontos finais privados são particularmente úteis se a sua aplicação que faz os pedidos de previsão e o binário de publicação estiverem na mesma rede local. Pode evitar a sobrecarga do encaminhamento da Internet e estabelecer uma ligação ponto a ponto através da nuvem privada virtual.
Especifique o número e os tipos de máquinas de que precisa
Para implementar o seu modelo para previsão, escolha hardware adequado ao seu modelo, como diferentes tipos de máquinas virtuais (VM) de unidades de processamento central (CPU) ou tipos de unidades de processamento gráfico (GPU). Para mais informações, consulte o artigo Especificar tipos de máquinas ou níveis de escala.
Planeie as entradas para o modelo
Além de implementar o modelo, tem de determinar como vai transmitir as entradas ao modelo. Se estiver a usar a previsão em lote, pode obter dados do lago de dados ou da API Vertex AI Feature Store batch serving. Se estiver a usar a previsão online, pode enviar instâncias de entrada para o serviço e este devolve as suas previsões na resposta. Para mais informações, consulte os Detalhes do corpo da resposta.
Se estiver a implementar o seu modelo para a previsão online, precisa de uma forma escalável e com baixa latência de publicar as entradas ou as funcionalidades que têm de ser transmitidas ao ponto final do modelo. Pode fazê-lo através de um dos vários serviços de base de dados no Google Cloud, ou pode usar a API de apresentação online do Vertex AI Feature Store. Os clientes que chamam o ponto final de previsão online podem primeiro chamar a solução de fornecimento de funcionalidades para obter as entradas de funcionalidades e, em seguida, chamar o ponto final de previsão com essas entradas. Pode publicar vários modelos no mesmo ponto final, por exemplo, para substituir gradualmente o modelo. Em alternativa, pode implementar modelos em vários pontos finais,por exemplo, em testes e produção, através da partilha de recursos entre implementações.
A carregamento por streaming permite-lhe fazer atualizações em tempo real aos valores das funcionalidades. Este método é útil quando ter os dados mais recentes disponíveis para a publicação online é uma prioridade. Por exemplo, pode carregar dados de eventos de streaming e, em poucos segundos, o carregamento de streaming do Vertex AI Feature Store disponibiliza esses dados para cenários de apresentação online.
Além disso, pode personalizar o processamento e o formato de entrada (pedido) e saída (resposta) para e a partir do servidor do modelo através de rotinas de previsão personalizadas.
Ative a escala automática
Se usar o serviço de previsão online, na maioria dos casos, recomendamos que ative o dimensionamento automático definindo nós mínimos e máximos. Para mais informações, consulte Obtenha previsões para um modelo com preparação personalizada. Para garantir um contrato de nível de serviço (SLA) de alta disponibilidade, defina o ajuste de escala automático com um mínimo de dois nós.
Para saber mais acerca das opções de dimensionamento, consulte o artigo Dimensionar previsões de ML.
Orquestração de fluxos de trabalho de ML
Recomendamos as seguintes práticas recomendadas para a orquestração do fluxo de trabalho de ML:
Use os pipelines do Vertex AI para orquestrar o fluxo de trabalho de ML.
Use
Kubeflow Pipelines para a criação flexível de pipelines.
Use
o Ray no Vertex AI para fluxos de trabalho de ML distribuídos.
A Vertex AI oferece orquestração de fluxos de trabalho de ML para automatizar o fluxo de trabalho de ML com os pipelines da Vertex AI, um serviço totalmente gerido que lhe permite voltar a preparar os seus modelos com a frequência necessária. Embora a reciclagem permita que os modelos se adaptem às alterações e mantenham o desempenho ao longo do tempo, pondere a quantidade de alterações nos dados quando escolher a frequência de reciclagem ideal do modelo.
Os fluxos de trabalho de orquestração de ML funcionam melhor para clientes que já conceberam e criaram o respetivo modelo, o colocaram em produção e querem determinar o que está e não está a funcionar no modelo de ML. O código que usa para a experimentação vai ser útil para o resto do fluxo de trabalho de ML com algumas modificações. Para trabalhar com fluxos de trabalho de ML automatizados, tem de ter conhecimentos avançados de Python, compreender a infraestrutura básica, como contentores, e ter conhecimentos de ML e ciência de dados.
Use o Vertex AI Pipelines para orquestrar o fluxo de trabalho de ML
Embora possa iniciar manualmente cada processo de dados, preparação, avaliação, teste e implementação, recomendamos que use o Vertex AI Pipelines para orquestrar o fluxo. Para informações detalhadas, consulte o artigo MLOps nível 1: automatização do pipeline de ML.
O Vertex AI Pipelines suporta a execução de DAGs gerados pelo Kubeflow, TensorFlow Extended (TFX) e Airflow.
Use o Kubeflow Pipelines para a criação de pipelines flexíveis
Recomendamos o SDK Kubeflow Pipelines para a maioria dos utilizadores que querem criar pipelines geridos. O Kubeflow Pipelines é flexível e permite-lhe usar código para criar pipelines. Também fornece Google Cloud componentes de pipeline, o que lhe 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.
Use o Ray no Vertex AI para fluxos de trabalho de ML distribuídos
O Ray oferece uma framework distribuída geral e unificada para dimensionar fluxos de trabalho de aprendizagem automática através de uma framework de computação de código aberto, escalável e distribuída em Python. Esta estrutura pode ajudar a resolver os desafios decorrentes da existência de uma variedade de estruturas distribuídas no seu ecossistema de ML, como ter de lidar com vários modos de paralelismo de tarefas, agendamento e gestão de recursos. Pode usar o Ray no Vertex AI para desenvolver aplicações no Vertex AI.
Organização de artefactos
Recomendamos que use as seguintes práticas recomendadas para organizar os seus artefactos:
Organize os artefactos do modelo de AA.
Use um repositório de controlo de origem para definições de pipelines e código de preparação.
Os artefactos são resultados de cada passo no fluxo de trabalho de ML. É uma prática recomendada organizá-los de forma padronizada.
Organize os artefactos do modelo de aprendizagem automática
Armazene os seus artefactos nestas localizações:
Localização de armazenamento | Artefactos |
Repositório de controlo de origem |
|
Experiências e metadados de ML |
|
Registo de modelos |
|
Artifact Registry |
|
Vertex AI Inference |
|
Use um repositório de controlo de origem para definições de pipelines e código de preparação
Pode usar o controlo de origem para controlar as versões dos pipelines de ML e dos componentes personalizados que cria para esses pipelines. Use o Artifact Registry para armazenar, gerir e proteger as suas imagens de contentor Docker sem as tornar visíveis publicamente.
Monitorização de modelos
Use a deteção de desvio e deriva.
Otimize os limites de alerta.
Use as atribuições de funcionalidades para detetar a deriva ou a distorção dos dados.
Use o BigQuery para suportar a monitorização de modelos.
Depois de implementar o modelo em produção, tem de monitorizar o desempenho para garantir que o modelo está a funcionar conforme esperado. O Vertex AI oferece duas formas de monitorizar os seus modelos de ML:
- Deteção de desvio: esta abordagem procura o grau de distorção entre a preparação do modelo e os dados de produção
- Deteção de desvio: neste tipo de monitorização, procura desvios nos seus dados de produção. A deriva ocorre quando as propriedades estatísticas das entradas e do alvo, que o modelo está a tentar prever, mudam ao longo do tempo de formas imprevistas. Isto causa problemas porque as previsões podem tornar-se menos precisas com o passar do tempo.
A monitorização de modelos funciona para dados estruturados, como caraterísticas numéricas e categóricas, mas não para dados não estruturados, como imagens. Para mais informações, consulte o artigo Monitorização de modelos para desvio ou variação de caraterísticas.
Use a deteção de desvio e deriva
Sempre que possível, use a deteção de desvios, porque saber que os dados de produção se desviaram dos dados de preparação é um forte indicador de que o modelo não está a ter o desempenho esperado na produção. Para a deteção de desvios, configure a tarefa de monitorização de modelos fornecendo um ponteiro para os dados de preparação que usou para preparar o modelo.
Se não tiver acesso aos dados de preparação, ative a deteção de desvio para saber quando as entradas mudam ao longo do tempo.
Use a deteção de desvio para monitorizar se os seus dados de produção estão a desviar-se ao longo do tempo. Para a deteção de desvio, ative as funcionalidades que quer monitorizar e os limites correspondentes para acionar um alerta.
Ajuste os limites de alerta
Ajuste os limites usados para os alertas, de modo a saber quando ocorrem desvios ou deriva nos seus dados. Os limites de alerta são determinados pela aplicação, pelos conhecimentos especializados do utilizador e pelas métricas de monitorização iniciais do modelo. Para saber como usar a monitorização para criar painéis de controlo ou configurar alertas com base nas métricas, consulte Métricas de monitorização na nuvem.
Use atribuições de funcionalidades para detetar desvio ou distorção de dados
Pode usar atribuições de funcionalidades na Vertex Explainable AI para detetar a deriva ou a assimetria dos dados como um indicador precoce de que o desempenho do modelo pode estar a deteriorar-se. Por exemplo, se o seu modelo dependesse originalmente de cinco funcionalidades para fazer previsões nos dados de formação e de teste, mas o modelo começou a depender de funcionalidades totalmente diferentes quando entrou em produção, as atribuições de funcionalidades ajudariam a detetar esta degradação no desempenho do modelo.
Isto é particularmente útil para tipos de funcionalidades complexos, como incorporações e séries temporais, que são difíceis de comparar através de métodos tradicionais de desvio e variação. Com a Vertex Explainable AI, as atribuições de funcionalidades podem indicar quando o desempenho do modelo está a diminuir.
Use o BigQuery para suportar a monitorização de modelos
A monitorização de modelos do BigQuery ML é um conjunto de ferramentas e funcionalidades que ajudam a acompanhar e avaliar o desempenho dos seus modelos de ML ao longo do tempo. A monitorização de modelos é essencial para manter a precisão e a fiabilidade dos modelos em aplicações do mundo real. Recomendamos que monitorize os seguintes problemas:
- Desvio de dados: este problema ocorre quando as distribuições de valores das caraterísticas diferem entre os dados de preparação e de publicação. As estatísticas de preparação, que são guardadas durante a preparação do modelo, permitem a deteção de desvios sem precisar dos dados originais.
- Desvio de dados: os dados do mundo real mudam frequentemente ao longo do tempo. A monitorização de modelos ajuda a identificar quando os dados de entrada que o modelo vê na produção (dados de publicação) começam a diferir significativamente dos dados com os quais foi preparado (dados de preparação). Esta variação pode levar a uma diminuição do desempenho.
- Desvio ou variação dos dados avançados: quando quiser estatísticas detalhadas de desvio ou variação, monitorize o desvio ou a variação dos dados avançados.
O que se segue?
- Documentação da Vertex AI
- Guia prático para operações de aprendizagem automática (MLOps): uma estrutura para a entrega contínua e a automatização da ML
- Para uma vista geral dos princípios e recomendações de arquitetura específicos das cargas de trabalho de IA e ML no Google Cloud, consulte aperspetiva de IA e ML no Well-Architected Framework.
- Para ver mais arquiteturas de referência, diagramas e práticas recomendadas, explore o Centro de arquitetura na nuvem.