Este documento do Well-Architected Framework: perspectiva de IA e ML fornece uma visão geral dos princípios e recomendações para criar e operar sistemas robustos de IA e ML no Google Cloud. Essas recomendações ajudam você a configurar elementos básicos, como observabilidade, automação e escalonabilidade. As recomendações neste documento estão alinhadas ao pilar de excelência operacional do Google Cloud Well-Architected Framework.
A excelência operacional no domínio da IA e do ML é a capacidade de implantar, gerenciar e controlar de maneira integrada os sistemas e pipelines de IA e ML que ajudam a impulsionar os objetivos estratégicos da sua organização. Com a excelência operacional, você responde com eficiência às mudanças, reduz a complexidade operacional e garante que suas operações permaneçam alinhadas às metas de negócios.
As recomendações neste documento são mapeadas para os seguintes princípios básicos:
- Crie uma base robusta para o desenvolvimento de modelos
- Automatizar o ciclo de vida de desenvolvimento de modelos
- Implementar a observabilidade
- Crie uma cultura de excelência operacional
- Projetar para escalonabilidade
Crie uma base robusta para o desenvolvimento de modelos
Para desenvolver e implantar sistemas de IA escalonáveis e confiáveis que ajudem você a alcançar suas metas de negócios, é essencial ter uma base sólida de desenvolvimento de modelos. Essa base permite fluxos de trabalho consistentes, automatiza etapas críticas para reduzir erros e garante que os modelos possam ser escalonados com a demanda. Uma base sólida de desenvolvimento de modelos garante que seus sistemas de ML possam ser atualizados, aprimorados e retreinados sem problemas. A base também ajuda você a alinhar a performance dos modelos às necessidades de negócios, implantar soluções de IA impactantes rapidamente e se adaptar às mudanças nos requisitos.
Para criar uma base sólida para desenvolver seus modelos de IA, considere as seguintes recomendações.
Defina os problemas e os resultados necessários
Antes de iniciar qualquer projeto de IA ou ML, é preciso entender claramente os problemas de negócios a serem resolvidos e os resultados necessários. Comece com um esboço dos objetivos de negócios e divida-os em indicadores principais de performance (KPIs) mensuráveis. Para organizar e documentar suas definições e hipóteses de problemas em um ambiente de notebook Jupyter, use ferramentas como o Vertex AI Workbench. Para implementar o controle de versões de código e documentos e documentar seus projetos, metas e proposições, use ferramentas como o Git. Para desenvolver e gerenciar comandos para aplicativos de IA generativa, use o Vertex AI Studio.
Coletar e pré-processar os dados necessários
Para implementar o pré-processamento e a transformação de dados, use o Dataflow (para Apache Beam), o Dataproc (para Apache Spark) ou o BigQuery se um processo baseado em SQL for adequado. Para validar esquemas e detectar anomalias, use a TensorFlow Data Validation (TFDV) e aproveite as verificações automatizadas de qualidade de dados no BigQuery, quando aplicável.
Para a IA generativa, a qualidade dos dados inclui precisão, relevância, diversidade e alinhamento com as características de saída necessárias. Nos casos em que os dados do mundo real são insuficientes ou desequilibrados, é possível gerar dados sintéticos para melhorar a robustez e a generalização do modelo. Para criar conjuntos de dados sintéticos com base em padrões atuais ou aumentar os dados de treinamento para melhorar a performance do modelo, use o BigQuery DataFrames e o Gemini. Os dados sintéticos são especialmente valiosos para a IA generativa porque ajudam a melhorar a diversidade de comandos e a robustez geral do modelo. Ao criar conjuntos de dados para ajuste fino de modelos de IA generativa, considere usar os recursos de geração de dados sintéticos na Vertex AI.
Para tarefas de IA generativa, como ajuste ou aprendizado por reforço com feedback humano (RLHF), verifique se os rótulos refletem com precisão a qualidade, a relevância e a segurança das saídas geradas.
Selecionar uma abordagem de ML adequada
Ao criar o modelo e os parâmetros, considere a complexidade e as necessidades computacionais dele. Dependendo da tarefa (como classificação, regressão ou geração), considere usar o treinamento personalizado da Vertex AI para a criação de modelos personalizados ou o AutoML para tarefas de ML mais simples. Para aplicações comuns, também é possível acessar modelos pré-treinados no Model Garden da Vertex AI. Você pode testar vários modelos de fundação de última geração para vários casos de uso, como gerar texto, imagens e código.
Talvez você queira ajustar um modelo de fundação pré-treinado para alcançar o desempenho ideal no seu caso de uso específico. Para requisitos de alta performance no treinamento personalizado, configure as unidades de processamento de tensor do Cloud (TPUs) ou os recursos de GPU para acelerar o treinamento e a inferência de modelos de aprendizado profundo, como modelos de linguagem grandes (LLMs) e modelos de difusão.
Configurar o controle de versões para código, modelos e dados
Para gerenciar e implantar versões de código de maneira eficaz, use ferramentas como GitHub ou GitLab. Essas ferramentas oferecem recursos de colaboração robustos, estratégias de ramificação e integração com pipelines de CI/CD para garantir um processo de desenvolvimento simplificado.
Use soluções adequadas para gerenciar cada artefato do seu sistema de ML, como os exemplos a seguir:
- Para artefatos de código, como imagens de contêiner e componentes de pipeline, o Artifact Registry oferece uma solução de armazenamento escalonável que pode ajudar a melhorar a segurança. O Artifact Registry também inclui controle de versão e pode ser integrado ao Cloud Build e ao Cloud Deploy.
- Para gerenciar artefatos de dados, como conjuntos de dados usados para treinamento e avaliação, use soluções como o BigQuery ou o Cloud Storage para armazenamento e controle de versões.
- Para armazenar metadados e indicadores de locais de dados, use seu sistema de controle de versão ou um catálogo de dados separado.
Para manter a consistência e o controle de versões dos dados de atributos, use o Feature Store da Vertex AI. Para rastrear e gerenciar artefatos de modelo, incluindo binários e metadados, use o Vertex AI Model Registry, que permite armazenar, organizar e implantar versões de modelos sem problemas.
Para garantir a confiabilidade do modelo, implemente o Vertex AI Model Monitoring. Detecte desvios de dados, acompanhe o desempenho e identifique anomalias na produção. Para sistemas de IA generativa, monitore as mudanças na qualidade da saída e na conformidade com a segurança.
Automatizar o ciclo de vida de desenvolvimento de modelos
Automation ajuda a simplificar todas as etapas do ciclo de vida da IA e do ML. Automation reduz o esforço manual e padroniza os processos, o que leva a uma maior eficiência operacional e a um menor risco de erros. Os fluxos de trabalho automatizados permitem iterações mais rápidas, implantação consistente em todos os ambientes e resultados mais confiáveis, para que seus sistemas possam ser escalonados e adaptados sem problemas.
Para automatizar o ciclo de vida de desenvolvimento dos seus sistemas de IA e ML, considere as recomendações a seguir.
Usar um sistema gerenciado de orquestração de pipeline
Use o Vertex AI Pipelines para automatizar todas as etapas do ciclo de vida do ML, desde a preparação de dados até o treinamento, a avaliação e a implantação de modelos. Para acelerar a implantação e promover a consistência entre projetos, automatize tarefas recorrentes com execuções programadas de pipelines, monitore fluxos de trabalho com métricas de execução e desenvolva modelos de pipeline reutilizáveis para fluxos de trabalho padronizados. Esses recursos se estendem aos modelos de IA generativa, que geralmente exigem etapas especializadas, como engenharia de comandos, filtragem de respostas e avaliação human-in-the-loop. Para a IA generativa, o Vertex AI Pipelines pode automatizar essas etapas, incluindo a avaliação das saídas geradas em relação a métricas de qualidade e diretrizes de segurança. Para melhorar a diversidade de comandos e a robustez do modelo, os fluxos de trabalho automatizados também podem incluir técnicas de aumento de dados.
Implementar pipelines de CI/CD
Para automatizar a criação, o teste e a implantação de modelos de ML, use o Cloud Build. Esse serviço é particularmente eficaz quando você executa conjuntos de testes para código de aplicativo, o que garante que a infraestrutura, as dependências e o pacote de modelo atendam aos seus requisitos de implantação.
Os sistemas de ML geralmente precisam de etapas adicionais além do teste de código. Por exemplo, é necessário testar a capacidade dos modelos em cargas variadas, realizar avaliações em massa para avaliar a performance em diversos conjuntos de dados e validar a integridade dos dados antes de um novo treinamento. Para simular cargas de trabalho realistas em testes de estresse, use ferramentas como Locust, Grafana k6 ou Apache JMeter. Para identificar gargalos, monitore as principais métricas, como latência, taxa de erros e utilização de recursos, usando o Cloud Monitoring. Para a IA generativa, o teste também precisa incluir avaliações específicas para o tipo de conteúdo gerado, como qualidade do texto, fidelidade da imagem ou funcionalidade do código. Essas avaliações podem envolver métricas automatizadas, como perplexidade para modelos de linguagem ou avaliação humana em loop para aspectos mais sutis, como criatividade e segurança.
Para implementar tarefas de teste e avaliação, é possível integrar o Cloud Build a outros serviços do Google Cloud . Por exemplo, é possível usar o Vertex AI Pipelines para avaliação automatizada de modelos, o BigQuery para análise de dados em grande escala e a validação de pipeline do Dataflow para validação de recursos.
Você pode melhorar ainda mais seu pipeline de CI/CD usando a Vertex AI para treinamento contínuo e ativar o retreinamento automatizado de modelos com novos dados. Especificamente para a IA generativa, para manter as saídas geradas relevantes e diversas, o retreinamento pode envolver a atualização automática dos modelos com novos dados ou comandos de treinamento. Use o Model Garden da Vertex AI para selecionar os modelos de base mais recentes disponíveis para ajuste. Essa prática garante que os modelos permaneçam atuais e otimizados para as necessidades em evolução da sua empresa.
Implementar versões de modelos seguras e controladas
Para minimizar os riscos e garantir implantações confiáveis, implemente uma abordagem de lançamento de modelo que permita detectar problemas antecipadamente, validar o desempenho e reverter rapidamente quando necessário.
Para empacotar e implantar seus modelos e aplicativos de ML em imagens de contêiner, use o Cloud Deploy. É possível implantar seus modelos em endpoints da Vertex AI.
Implemente lançamentos controlados para seus aplicativos e sistemas de IA usando estratégias como lançamentos canários. Para aplicativos que usam modelos gerenciados, como o Gemini, recomendamos que você lance gradualmente novas versões para um subconjunto de usuários antes da implantação completa. Essa abordagem permite detectar possíveis problemas com antecedência, especialmente quando você usa modelos de IA generativa em que as saídas podem variar.
Para lançar modelos refinados, use o Cloud Deploy para gerenciar a implantação das versões do modelo e a estratégia de lançamento canário para minimizar os riscos. Com modelos gerenciados e refinados, o objetivo dos lançamentos controlados é testar mudanças com um público limitado antes de lançar os aplicativos e modelos para todos os usuários.
Para uma validação robusta, use os Experimentos da Vertex AI para comparar modelos novos com os atuais e a avaliação de modelos da Vertex AI para avaliar o desempenho do modelo. Especificamente para IA generativa, defina métricas de avaliação que se alinhem ao caso de uso pretendido e aos possíveis riscos. Você pode usar o serviço de avaliação de IA generativa na Vertex AI para avaliar métricas como toxicidade, coerência, acurácia factual e adesão às diretrizes de segurança.
Para garantir a confiabilidade da implantação, você precisa de um plano de reversão robusto. Para sistemas de ML tradicionais, use o monitoramento de modelos com a Vertex AI para detectar desvios de dados e degradação de desempenho. Para modelos de IA generativa, é possível acompanhar métricas relevantes e configurar alertas para mudanças na qualidade da saída ou o surgimento de conteúdo prejudicial usando a avaliação de modelos da Vertex AI com o Cloud Logging e o Cloud Monitoring. Configure alertas com base em métricas específicas da IA generativa para acionar procedimentos de rollback quando necessário. Para rastrear a linhagem do modelo e reverter para a versão estável mais recente, use insights do Registro de modelos da Vertex AI.
Implementar a observabilidade
O comportamento dos sistemas de IA e ML pode mudar com o tempo devido a alterações nos dados ou no ambiente e atualizações nos modelos. Essa natureza dinâmica torna a capacidade de observação crucial para detectar problemas de desempenho, vieses ou comportamentos inesperados. Isso é especialmente verdadeiro para modelos de IA generativa, porque as saídas podem ser altamente variáveis e subjetivas. A capacidade de observação permite que você resolva de forma proativa comportamentos inesperados e garanta que seus sistemas de IA e ML permaneçam confiáveis, precisos e justos.
Para implementar a capacidade de observação nos seus sistemas de IA e ML, considere as seguintes recomendações.
Monitorar o desempenho continuamente
Use métricas e critérios de sucesso para avaliar continuamente os modelos após a implantação.
Use o Vertex AI Model Monitoring para acompanhar de forma proativa a performance do modelo, identificar o desvio entre treinamento e veiculação e o deslocamento de previsão, além de receber alertas para acionar o retreinamento necessário do modelo ou outras intervenções. Para monitorar de maneira eficaz o desvio de treinamento/disponibilização, crie um conjunto de dados de referência que represente a distribuição ideal de dados e use o TFDV para analisar seus dados de treinamento e estabelecer um esquema de referência.
Configure o Model Monitoring para comparar a distribuição dos dados de entrada com o conjunto de dados de referência para detecção automática de distorção. Para modelos tradicionais de ML, concentre-se em métricas como acurácia, precisão, recall, pontuação F1, AUC-ROC e perda logarítmica. Defina limites personalizados para alertas no Model Monitoring. Para IA generativa, use o serviço de avaliação de IA generativa para monitorar continuamente a saída do modelo em produção. Também é possível ativar métricas de avaliação automática para qualidade, segurança, obediência às instruções, embasamento, estilo de escrita e nível de detalhes da resposta. Para avaliar a qualidade, a relevância, a segurança e a adesão às diretrizes das saídas geradas, você pode incorporar uma avaliação human-in-the-loop.
Crie loops de feedback para treinar novamente os modelos automaticamente com a Vertex AI Pipelines quando o Model Monitoring acionar um alerta. Use esses insights para melhorar seus modelos continuamente.
Avaliar modelos durante o desenvolvimento
Antes de implantar seus LLMs e outros modelos de IA generativa, avalie-os completamente durante a fase de desenvolvimento. Use a avaliação de modelos da Vertex AI para alcançar o desempenho ideal e reduzir os riscos. Use a avaliação rápida da Vertex AI para permitir que o Google Cloud execute automaticamente avaliações com base no conjunto de dados e nos comandos que você fornece.
Também é possível definir e integrar métricas personalizadas específicas para seu caso de uso. Para feedback sobre o conteúdo gerado, integre fluxos de trabalho de humanos no loop usando a avaliação de modelos da Vertex AI.
Use testes adversários para identificar vulnerabilidades e possíveis modos de falha. Para identificar e reduzir possíveis vieses, use técnicas como análise de subgrupo e geração contrafactual. Use os insights coletados nas avaliações concluídas durante a fase de desenvolvimento para definir sua estratégia de monitoramento de modelo em produção. Prepare sua solução para monitoramento contínuo, conforme descrito na seção Monitorar o desempenho continuamente deste documento.
Monitorar a disponibilidade
Para ter visibilidade da integridade e do desempenho dos endpoints e da infraestrutura implantados, use o Cloud Monitoring. Para seus endpoints da Vertex AI, acompanhe métricas importantes, como taxa de solicitação, taxa de erro, latência e utilização de recursos, e configure alertas para anomalias. Para mais informações, consulte Métricas do Cloud Monitoring para a Vertex AI.
Monitore a integridade da infraestrutura subjacente, que pode incluir instâncias do Compute Engine, clusters do Google Kubernetes Engine (GKE) e TPUs e GPUs. Receba recomendações de otimização automatizadas do Active Assist. Se você usa o escalonamento automático, monitore o comportamento de escalonamento para garantir que ele responda adequadamente a mudanças nos padrões de tráfego.
Acompanhe o status das implantações de modelos, incluindo lançamentos canários e rollbacks, integrando o Cloud Deploy ao Cloud Monitoring. Além disso, monitore possíveis ameaças e vulnerabilidades de segurança usando o Security Command Center.
Configurar alertas personalizados para limites específicos da empresa
Para identificar e corrigir anomalias e problemas a tempo, configure alertas personalizados com base em limites específicos para seus objetivos de negócios. Exemplos de produtos do Google Cloud que você pode usar para implementar um sistema de alertas personalizado:
- Cloud Logging: colete, armazene e analise registros de todos os componentes do seu sistema de IA e ML.
- Cloud Monitoring: crie painéis personalizados para visualizar métricas e tendências importantes e defina métricas personalizadas com base nas suas necessidades. Configure alertas para receber notificações sobre problemas críticos e integre os alertas com suas ferramentas de gerenciamento de incidentes, como PagerDuty ou Slack.
- Error Reporting: capture e analise automaticamente erros e exceções.
- Cloud Trace: analise o desempenho de sistemas distribuídos e identifique gargalos. O rastreamento é particularmente útil para entender a latência entre diferentes componentes do pipeline de IA e ML.
- Cloud Profiler: analise continuamente o desempenho do seu código em produção e identifique gargalos de desempenho no uso de CPU ou memória.
Crie uma cultura de excelência operacional
Mude o foco de apenas criar modelos para criar soluções de IA sustentáveis, confiáveis e impactantes. Capacite as equipes a aprender, inovar e melhorar continuamente, o que leva a ciclos de desenvolvimento mais rápidos, redução de erros e aumento da eficiência. Ao priorizar a automação, a padronização e as considerações éticas, você garante que suas iniciativas de IA e ML ofereçam valor de forma consistente, reduzam os riscos e promovam o desenvolvimento IA responsável.
Para criar uma cultura de excelência operacional para seus sistemas de IA e ML, considere as seguintes recomendações.
Promover a automação e a padronização
Para enfatizar a eficiência e a consistência, incorpore a automação e as práticas padronizadas em todas as etapas do ciclo de vida da IA e do ML. Automation reduz erros manuais e libera as equipes para se concentrarem na inovação. A padronização garante que os processos sejam repetíveis e escalonáveis em equipes e projetos.
Priorizar o aprendizado e a melhoria contínuos
Promova um ambiente em que a educação e a experimentação contínuas sejam princípios fundamentais. Incentive as equipes a ficar por dentro dos avanços da IA e do ML e ofereça oportunidades para aprender com projetos anteriores. Uma cultura de curiosidade e adaptação impulsiona a inovação e garante que as equipes estejam preparadas para enfrentar novos desafios.
Cultivar a responsabilidade e a propriedade
Crie confiança e alinhamento com funções, responsabilidades e métricas de sucesso claramente definidas. Dê autonomia às equipes para tomar decisões fundamentadas dentro desses limites e estabeleça maneiras transparentes de medir o progresso. Um senso de propriedade motiva as equipes e garante a responsabilidade coletiva pelos resultados.
Incorporar considerações de ética e segurança da IA
Priorize considerações éticas em todas as etapas do desenvolvimento. Incentive as equipes a pensar de forma crítica sobre o impacto das soluções de IA e promova discussões sobre imparcialidade, viés e impacto social. Princípios claros e mecanismos de responsabilização garantem que seus sistemas de IA estejam alinhados aos valores organizacionais e promovam a confiança.
Design para escalonabilidade
Para acomodar volumes de dados e demandas de usuários cada vez maiores e maximizar o valor dos investimentos em IA, seus sistemas de IA e ML precisam ser escalonáveis. Os sistemas precisam se adaptar e funcionar de maneira ideal para evitar gargalos de desempenho que prejudiquem a eficácia. Ao projetar para escalabilidade, você garante que a infraestrutura de IA possa lidar com o crescimento e manter a capacidade de resposta. Use infraestrutura escalonável, planeje a capacidade e empregue estratégias como escalonamento horizontal e serviços gerenciados.
Para projetar seus sistemas de IA e ML para escalonabilidade, considere as seguintes recomendações.
Planejar capacidade e cotas
Avalie o crescimento futuro e planeje a capacidade da infraestrutura e as cotas de recursos de acordo. Trabalhe com as partes interessadas da empresa para entender o crescimento projetado e defina os requisitos de infraestrutura de acordo.
Use o Cloud Monitoring para analisar a utilização histórica de recursos, identificar tendências e projetar necessidades futuras. Realize testes de carga regulares para simular cargas de trabalho e identificar gargalos.
Conheça as cotas deGoogle Cloud dos serviços que você usa, como Compute Engine, Vertex AI e Cloud Storage. Solicite proativamente aumentos de cota no console do Google Cloud e justifique os aumentos com dados de previsão e teste de carga. Monitore o uso de cotas e configure alertas para receber notificações quando o uso se aproximar dos limites de cota.
Para otimizar o uso de recursos com base na demanda, redimensione os recursos, use VMs spot para cargas de trabalho em lote tolerantes a falhas e implemente o escalonamento automático.
Prepare-se para eventos de pico
Verifique se o sistema consegue lidar com picos repentinos de tráfego ou carga de trabalho durante eventos de pico. Documente sua estratégia de eventos de pico e faça simulações regulares para testar a capacidade do sistema de lidar com o aumento da carga.
Para escalonar verticalmente agressivamente os recursos quando a demanda aumenta, configure políticas de escalonamento automático no Compute Engine e no GKE. Para padrões de pico previsíveis, considere usar o escalonamento automático preditivo. Para acionar o escalonamento automático com base em indicadores específicos do aplicativo, use métricas personalizadas no Cloud Monitoring.
Distribua o tráfego entre várias instâncias de aplicativos usando o Cloud Load Balancing. Escolha um tipo de balanceador de carga adequado com base nas necessidades do seu aplicativo. Para usuários distribuídos geograficamente, use o balanceamento de carga global para encaminhar o tráfego para a instância disponível mais próxima. Para arquiteturas complexas baseadas em microsserviços, considere usar o Cloud Service Mesh.
Armazene conteúdo estático em cache na borda da rede do Google usando o Cloud CDN. Para armazenar em cache dados acessados com frequência, use o Memorystore, que oferece um serviço na memória totalmente gerenciado para Redis, Valkey ou Memcached.
Desacople os componentes do sistema usando o Pub/Sub para mensagens em tempo real e o Cloud Tasks para execução assíncrona de tarefas.
Escalonar aplicativos para produção
Para garantir o atendimento escalonável em produção, use serviços gerenciados como o treinamento distribuído da Vertex AI e a inferência da Vertex AI. Com a Inferência da Vertex AI, é possível configurar os tipos de máquina para os nós de previsão ao implantar um modelo em um endpoint ou solicitar previsões em lote. Em algumas configurações, é possível adicionar GPUs. Escolha o tipo de máquina e os aceleradores adequados para otimizar a latência, a capacidade de processamento e o custo.
Para escalonar aplicativos complexos de IA e Python e cargas de trabalho personalizadas em recursos de computação distribuídos, use o Ray na Vertex AI. Esse recurso ajuda a otimizar a performance e permite uma integração perfeita com os serviços do Google Cloud . O Ray na Vertex AI simplifica a computação distribuída ao processar o gerenciamento de clusters, o agendamento de tarefas e a transferência de dados. Ele se integra a outros serviços da Vertex AI, como treinamento, previsão e pipelines. O Ray oferece tolerância a falhas e escalonamento automático, além de ajudar você a adaptar a infraestrutura às mudanças nas cargas de trabalho. Ele oferece um framework unificado para treinamento distribuído, ajuste de hiperparâmetros, aprendizado por reforço e disponibilização de modelos. Use o Ray para pré-processamento de dados distribuídos com o Dataflow ou o Dataproc, treinamento acelerado de modelos, ajuste escalonável de hiperparâmetros, aprendizado por reforço e previsão em lote paralelizada.
Colaboradores
Autores:
- Charlotte Gistelinck, PhD | Engenheiro de parceiros
- Sannya Dang | Arquiteta de soluções de IA
- Filipe Gracio, PhD | Engenheiro de clientes
Outros colaboradores:
- Gary Harmson | Arquiteto principal
- Kumar Dhanagopal | Desenvolvedor de soluções para vários produtos
- Marwan Al Shawi | Engenheiro de clientes do parceiro
- Ryan Cox | Arquiteto principal
- Stef Ruinard | Arquiteto de soluções de campo de IA generativa