Well-Architected Framework: perspectiva de IA e ML

Last reviewed 2025-02-14 UTC

Este documento no Google Cloud Well-Architected Framework descreve princípios e recomendações para ajudar você a projetar, criar e gerenciar cargas de trabalho de IA e ML no Google Cloud que atendam às suas metas operacionais, de segurança, confiabilidade, custo e performance.

O público-alvo deste documento inclui tomadores de decisões, arquitetos, administradores, desenvolvedores e operadores que projetam, criam, implantam e mantêm cargas de trabalho de IA e ML no Google Cloud.

As páginas a seguir descrevem princípios e recomendações específicos para IA e ML em cada pilar do framework bem arquitetado:

Colaboradores

Autores:

Outros colaboradores:

Perspectiva de IA e ML: excelência operacional

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

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 robusta 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 do modelo atendam aos 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 diversificadas, 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 a performance 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 de treinamento/serviç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, relevância, segurança e aderência à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 às 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.

Promova 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 justiça, 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 o aumento dos volumes de dados e das demandas dos usuários 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 doGoogle 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 a 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:

Outros colaboradores:

Perspectiva de IA e ML: segurança

Este documento no Framework bem arquitetado: perspectiva de IA e ML oferece uma visão geral dos princípios e recomendações para garantir que suas implantações de IA e ML atendam aos requisitos de segurança e compliance da sua organização. As recomendações neste documento estão alinhadas ao pilar de segurança do Google Cloud Well-Architected Framework.

A implantação segura de cargas de trabalho de IA e ML é um requisito essencial, principalmente em ambientes empresariais. Para atender a esse requisito, é necessário adotar uma abordagem de segurança holística que começa na conceituação inicial das soluções de IA e ML e se estende ao desenvolvimento, à implantação e às operações contínuas.O Google Cloud oferece ferramentas e serviços robustos projetados para ajudar a proteger suas cargas de trabalho de IA e ML.

Definir metas e requisitos claros

É mais fácil integrar os controles de segurança e compliance necessários no início do processo de design e desenvolvimento do que adicioná-los depois. Desde o início do processo de design e desenvolvimento, tome decisões adequadas ao seu ambiente de risco e às prioridades específicas da sua empresa.

Considere as seguintes recomendações:

  • Identifique possíveis vetores de ataque e adote uma perspectiva de segurança e compliance desde o início. Ao projetar e desenvolver seus sistemas de IA, acompanhe a superfície de ataque, os riscos potenciais e as obrigações que você pode enfrentar.
  • Alinhe seus esforços de segurança de IA e ML com as metas de negócios e garanta que a segurança seja uma parte integrante da sua estratégia geral. Entenda os efeitos das suas escolhas de segurança nas principais metas de negócios.

Manter os dados seguros e evitar perdas ou mau uso

Os dados são um recurso valioso e sensível que precisa ser mantido em segurança. A segurança de dados ajuda você a manter a confiança dos usuários, apoiar seus objetivos de negócios e atender aos requisitos de compliance.

Considere as seguintes recomendações:

  • Não colete, mantenha ou use dados que não sejam estritamente necessários para seus objetivos de negócios. Se possível, use dados sintéticos ou totalmente anonimizados.
  • Monitore a coleta, o armazenamento e a transformação de dados. Mantenha registros de todas as atividades de acesso e manipulação de dados. Os registros ajudam a auditar o acesso aos dados, detectar tentativas de acesso não autorizado e evitar acessos indesejados.
  • Implemente diferentes níveis de acesso (por exemplo, sem acesso, somente leitura ou gravação) com base nas funções do usuário. Verifique se as permissões foram atribuídas com base no princípio do menor privilégio. Os usuários precisam ter apenas as permissões mínimas necessárias para realizar as atividades da função.
  • Implemente medidas como criptografia, perímetros seguros e restrições à movimentação de dados. Essas medidas ajudam a evitar a exfiltração e a perda de dados.
  • Proteja seus sistemas de treinamento de ML contra envenenamento de dados.

Mantenha os pipelines de IA seguros e robustos contra adulteração

Seu código de IA e ML e os pipelines definidos por código são ativos essenciais. Um código não protegido pode ser adulterado, o que pode levar a vazamentos de dados, falha de compliance e interrupção de atividades comerciais críticas. Manter seu código de IA e ML seguro ajuda a garantir a integridade e o valor dos seus modelos e saídas de modelos.

Considere as seguintes recomendações:

  • Use práticas de programação segura, como gerenciamento de dependências ou validação e sanitização de entradas, durante o desenvolvimento do modelo para evitar vulnerabilidades.
  • Proteja o código do pipeline e os artefatos do modelo, como arquivos, pesos do modelo e especificações de implantação, contra acesso não autorizado. Implemente diferentes níveis de acesso para cada artefato com base nas funções e necessidades do usuário.
  • Aplique a linhagem e o rastreamento dos seus recursos e execuções de pipeline. Essa aplicação ajuda você a atender aos requisitos de compliance e evitar comprometer os sistemas de produção.

Implante em sistemas seguros com ferramentas e artefatos seguros

Verifique se o código e os modelos são executados em um ambiente seguro com um sistema de controle de acesso robusto e garantias de segurança para as ferramentas e os artefatos implantados no ambiente.

Considere as seguintes recomendações:

  • Treine e implante seus modelos em um ambiente seguro com controles de acesso adequados e proteção contra uso ou manipulação não autorizados.
  • Siga as diretrizes padrão dos Níveis da cadeia de suprimentos para artefatos de software (SLSA) (em inglês) para seus artefatos específicos de IA, como modelos e pacotes de software.
  • Prefira usar imagens de contêiner pré-criadas validadas e projetadas especificamente para cargas de trabalho de IA.

Proteger e monitorar entradas

Os sistemas de IA precisam de entradas para fazer previsões, gerar conteúdo ou automatizar ações. Algumas entradas podem representar riscos ou ser usadas como vetores de ataque que precisam ser detectados e corrigidos. Detectar possíveis entradas maliciosas cedo ajuda a manter seus sistemas de IA seguros e funcionando como esperado.

Considere as seguintes recomendações:

  • Implemente práticas seguras para desenvolver e gerenciar comandos para sistemas de IA generativa e garanta que eles sejam verificados para identificar intenções maliciosas.
  • Monitore as entradas de sistemas preditivos ou generativos para evitar problemas como endpoints sobrecarregados ou comandos que os sistemas não foram projetados para processar.
  • Verifique se apenas os usuários pretendidos de um sistema implantado podem usá-lo.

Monitorar, avaliar e se preparar para responder a resultados

Os sistemas de IA geram valor porque produzem resultados que aumentam, otimizam ou automatizam a tomada de decisões humanas. Para manter a integridade e a confiabilidade dos sistemas e aplicativos de IA, é necessário garantir que as saídas sejam seguras e estejam dentro dos parâmetros esperados. Você também precisa de um plano para responder a incidentes.

Considere as seguintes recomendações:

  • Monitore as saídas dos seus modelos de IA e ML em produção e identifique problemas de performance, segurança e compliance.
  • Avalie o desempenho do modelo implementando métricas robustas e medidas de segurança, como identificar respostas generativas fora do escopo ou resultados extremos em modelos preditivos. Colete feedback dos usuários sobre a performance do modelo.
  • Implemente procedimentos robustos de alerta e resposta a incidentes para resolver possíveis problemas.

Colaboradores

Autores:

Outros colaboradores:

Perspectiva de IA e ML: confiabilidade

Este documento do Google Cloud Framework bem arquitetado: perspectiva de IA e ML oferece uma visão geral dos princípios e recomendações para projetar e operar sistemas confiáveis de IA e ML no Google Cloud. Ele explica como integrar práticas avançadas de confiabilidade e observabilidade aos seus projetos arquitetônicos. As recomendações neste documento estão alinhadas ao pilar de confiabilidade do Google Cloud Well-Architected Framework.

No cenário de rápida evolução da IA e do ML, sistemas confiáveis são essenciais para garantir a satisfação do cliente e alcançar metas de negócios. Para atender às demandas exclusivas do ML preditivo e da IA generativa, você precisa de sistemas de IA e ML robustos, confiáveis e adaptáveis. Para lidar com as complexidades do MLOps, desde o desenvolvimento até a implantação e a melhoria contínua, é necessário usar uma abordagem de confiabilidade em primeiro lugar.O Google Cloud oferece uma infraestrutura de IA criada especificamente para isso, alinhada aos princípios da engenharia de confiabilidade do site (SRE) e que oferece uma base sólida para sistemas confiáveis de IA e ML.

As recomendações neste documento são mapeadas para os seguintes princípios básicos:

Garantir que a infraestrutura de ML seja escalonável e altamente disponível

Sistemas de IA e ML confiáveis na nuvem exigem infraestrutura escalonável e altamente disponível. Esses sistemas têm demandas dinâmicas, diversas necessidades de recursos e dependências críticas da disponibilidade do modelo. As arquiteturas escalonáveis se adaptam a cargas flutuantes e variações no volume de dados ou solicitações de inferência. A alta disponibilidade (HA) ajuda a garantir a resiliência contra falhas no nível do componente, da zona ou da região.

Para criar uma infraestrutura de ML escalonável e altamente disponível, considere as seguintes recomendações.

Implementar recursos de escalonamento automático e dinâmico

As cargas de trabalho de IA e ML são dinâmicas, com demanda que varia de acordo com as taxas de chegada de dados, a frequência de treinamento e o volume de tráfego de inferência. O escalonamento automático e dinâmico adapta os recursos de infraestrutura sem problemas às flutuações de demanda. Escalonar as cargas de trabalho de maneira eficaz ajuda a evitar tempos de inatividade, manter o desempenho e otimizar os custos.

Para fazer o escalonamento automático das suas cargas de trabalho de IA e ML, use os seguintes produtos e recursos em Google Cloud:

  • Pipelines de processamento de dados: crie pipelines de dados no Dataflow. Configure os pipelines para usar o recurso de escalonamento automático horizontal do Dataflow, que ajusta dinamicamente o número de instâncias de worker com base na utilização da CPU, no paralelismo do pipeline e nos dados pendentes. É possível configurar parâmetros de escalonamento automático usando opções de pipeline ao iniciar jobs.
  • Jobs de treinamento: automatize o escalonamento de jobs de treinamento usando o treinamento personalizado da Vertex AI. É possível definir especificações de pool de workers, como o tipo de máquina, o tipo e o número de aceleradores e o número de pools de workers. Para jobs que podem tolerar interrupções e para jobs em que o código de treinamento implementa o checkpointing, é possível reduzir os custos usando VMs spot.
  • Inferência on-line: para inferência on-line, use os endpoints da Vertex AI. Para ativar o escalonamento automático, configure a contagem mínima e máxima de réplicas. Especifique um mínimo de duas réplicas para alta disponibilidade. A Vertex AI ajusta automaticamente o número de réplicas com base no tráfego e nas métricas de escalonamento automático configuradas, como utilização da CPU e de réplicas.
  • Cargas de trabalho conteinerizadas no Google Kubernetes Engine: configure o escalonamento automático nos níveis de nó e pod. Configure o escalonador automático de cluster e o provisionamento automático de nós para ajustar a contagem de nós com base em solicitações de recursos de pods pendentes, como CPU, memória, GPU e TPU. Use o escalonador automático de pod horizontal (HPA) para implantações e defina políticas de escalonamento com base em métricas como utilização de CPU e memória. Também é possível escalonar com base em métricas personalizadas de IA e ML, como utilização de GPU ou TPU e solicitações de previsão por segundo.
  • Serviços conteinerizados sem servidor: implante os serviços no Cloud Run e configure o escalonamento automático especificando o número mínimo e máximo de instâncias de contêiner. Use práticas recomendadas para escalonar automaticamente instâncias habilitadas para GPU especificando o tipo de acelerador. O Cloud Run escalona automaticamente as instâncias entre os limites mínimo e máximo configurados com base nas solicitações recebidas. Quando não há solicitações, ele é dimensionado de maneira eficiente para zero instâncias. É possível aproveitar o escalonamento automático e orientado por solicitações do Cloud Run para implantar agentes da Vertex AI e cargas de trabalho de terceiros, como modelos quantizados usando o Ollama, inferência de modelo de LLM usando o vLLM e inferência de geração de texto (TGI) da Hugging Face.

Projetar para alta disponibilidade e tolerância a falhas

Para cargas de trabalho de IA e ML de nível de produção, é fundamental garantir operação contínua e resiliência contra falhas. Para implementar alta disponibilidade e tolerância a falhas, é necessário criar redundância e replicação na arquitetura no Google Cloud. Essa abordagem ajuda a garantir que uma falha de um componente individual não cause uma falha do sistema completo.

Implemente redundância para componentes essenciais de IA e ML em Google Cloud. Confira a seguir exemplos de produtos e recursos que permitem implementar a redundância de recursos:

  • Implante clusters regionais do GKE em várias zonas.
  • Garanta a redundância de dados para conjuntos de dados e checkpoints usando buckets multirregionais ou birregionais do Cloud Storage.
  • Use o Spanner para armazenamento de metadados altamente disponível e consistente em todo o mundo.
  • Configure réplicas de leitura do Cloud SQL para bancos de dados operacionais.
  • Verifique se os bancos de dados de vetores para geração aumentada por recuperação (RAG) têm alta disponibilidade e são multizonais ou multirregionais.

Gerenciar recursos de forma proativa e antecipar requisitos

O gerenciamento eficaz de recursos é importante para otimizar custos, performance e confiabilidade. As cargas de trabalho de IA e ML são dinâmicas, e há uma alta demanda por hardware especializado, como GPUs e TPUs. Portanto, é fundamental aplicar o gerenciamento proativo de recursos e garantir a disponibilidade deles.

Planeje a capacidade com base em dados históricos de monitoramento, como taxas de utilização e de transferência de GPUs ou TPUs, do Cloud Monitoring e registros no Cloud Logging. Analise esses dados de telemetria usando o BigQuery ou o Looker Studio e preveja a demanda futura de GPUs com base no crescimento ou em novos modelos. A análise dos padrões e tendências de uso de recursos ajuda a prever quando e onde você precisa de aceleradores especializados críticos.

  • Valide as estimativas de capacidade com testes de carga rigorosos. Simule o tráfego em serviços de IA e ML, como veiculação e pipelines, usando ferramentas como Apache JMeter ou LoadView.
  • Analisar o comportamento do sistema sob estresse.
    • Para antecipar e atender às demandas de carga de trabalho aumentadas na produção, identifique proativamente os requisitos de recursos. Monitore a latência, a capacidade de processamento, os erros e o uso de recursos, especialmente o uso de GPU e TPU. Aumente as cotas de recursos conforme necessário.
    • Para a disponibilização de IA generativa, teste em cargas simultâneas altas e identifique o nível em que a disponibilidade do acelerador limita o desempenho.
  • Faça o monitoramento contínuo das consultas de modelo e configure alertas proativos para agentes.
    • Use o painel de observabilidade do modelo para conferir métricas coletadas pelo Cloud Monitoring, como consultas por segundo (QPS) do modelo, taxa de transferência de tokens e latências do primeiro token.

Otimizar a disponibilidade e a obtenção de recursos

Otimize os custos e garanta a disponibilidade de recursos selecionando estrategicamente recursos de computação adequados com base nos requisitos da carga de trabalho.

  • Para inferência estável 24 horas por dia, 7 dias por semana ou para cargas de trabalho de treinamento com requisitos de capacidade fixos ou previsíveis, use descontos por compromisso de uso (CUDs) para VMs e aceleradores.
  • Para nós do GKE e VMs do Compute Engine, use VMs spot e recursos do Dynamic Workload Scheduler (DWS):

    • Para tarefas tolerantes a falhas, como cargas de trabalho de avaliação e experimentação, use VMs do Spot. As VMs spot podem ser preemptivas, mas ajudam a reduzir os custos gerais.
    • Para gerenciar o risco de remoção de aceleradores de alta demanda, use o DWS e garanta uma melhor capacidade de obtenção.
      • Para treinamento em lote complexo que precisa de GPUs de alta qualidade para ser executado por até sete dias, use o modo DWS Flex-Start.
      • Para cargas de trabalho mais longas, que duram até três meses, use o modo de calendário para reservar GPUs específicas (H100 e H200) e TPUs (Trillium).
  • Para otimizar a inferência de IA no GKE, execute um mecanismo vLLM que usa dinamicamente TPUs e GPUs para atender às necessidades de capacidade e desempenho variáveis. Para mais informações, consulte Fungibilidade de GPU/TPU vLLM.

  • Para cenários avançados com necessidades complexas de recursos e topologia que envolvem aceleradores, use ferramentas para abstrair o gerenciamento de recursos.

    • O Cluster Director permite implantar e gerenciar grupos de aceleradores com colocalização e programação para treinamento com várias GPUs (A3 Ultra H200 e A4 B200). O Cluster Director é compatível com clusters do GKE e do Slurm.
    • O Ray na Vertex AI abstrai a infraestrutura de computação distribuída. Ele permite que os aplicativos solicitem recursos para treinamento e veiculação sem a necessidade de gerenciamento direto de VMs e contêineres.

Distribuir o tráfego de entrada entre várias instâncias

O balanceamento de carga eficaz é crucial para aplicativos de IA com demandas variáveis. O balanceamento de carga distribui o tráfego, otimiza a utilização de recursos, oferece alta disponibilidade e baixa latência, além de ajudar a garantir uma experiência do usuário sem problemas.

  • Inferência com necessidades de recursos variáveis: implemente o balanceamento de carga com base nas métricas do modelo. O GKE Inference Gateway permite implantar modelos por trás de um balanceador de carga com roteamento compatível com modelos. O gateway prioriza instâncias com aceleradores de GPU e TPU para tarefas com uso intensivo de computação, como IA generativa e inferência de LLM. Configure verificações de integridade detalhadas para avaliar o status do modelo. Use frameworks de veiculação como vLLM ou Triton para métricas de LLM e integre as métricas ao Cloud Monitoring usando o Google Cloud Managed Service para Prometheus.
  • Cargas de trabalho de inferência que precisam de GPUs ou TPUs: para garantir que as cargas de trabalho de inferência de IA e ML críticas sejam executadas de maneira consistente em máquinas adequadas aos requisitos delas, principalmente quando a disponibilidade de GPU e TPU é limitada, use classes de computação personalizadas do GKE. É possível definir perfis de computação específicos com políticas de substituição para escalonamento automático. Por exemplo, é possível definir um perfil que especifica uma prioridade maior para instâncias reservadas de GPU ou TPU. O perfil pode incluir um fallback para usar VMs spot econômicas se os recursos reservados estiverem temporariamente indisponíveis.
  • IA generativa em diversas plataformas de orquestração: use um balanceador de carga centralizado. Por exemplo, para eficiência de custo e gerenciamento, é possível direcionar solicitações com pouca necessidade de GPU para o Cloud Run e tarefas mais complexas e com uso intensivo de GPU para o GKE. Para comunicação entre serviços e gerenciamento de políticas, implemente uma malha de serviço usando o Cloud Service Mesh. Use o Cloud Logging e o Cloud Monitoring para garantir a consistência da geração de registros e do monitoramento.
  • Distribuição global de carga: para balancear o tráfego de usuários globais que precisam de baixa latência, use um balanceador de carga de aplicativo externo global. Configure o roteamento de geolocalização para a região mais próxima e implemente o failover. Estabeleça a replicação regional de endpoints na Vertex AI ou no GKE. Configure o Cloud CDN para recursos estáticos. Monitore o tráfego global e a latência usando o Cloud Monitoring.
  • Gerenciamento granular de tráfego: para solicitações que têm diversos tipos de dados ou complexidade e solicitações de longa duração, implemente o gerenciamento granular de tráfego.
    • Configure o roteamento baseado em conteúdo para direcionar solicitações a back-ends especializados com base em atributos como caminhos e cabeçalhos de URL. Por exemplo, solicitações diretas para back-ends ativados para GPU de modelos de imagem ou vídeo e para back-ends otimizados para CPU de modelos baseados em texto.
    • Para solicitações de IA generativa de longa duração ou cargas de trabalho em lote, use WebSockets ou gRPC. Implemente o gerenciamento de tráfego para lidar com tempos limite e buffer. Configure tempos limite e novas tentativas de solicitação e implemente cotas e limitação de taxa usando o gateway de API ou o Apigee.

Usar uma arquitetura modular e acoplado com flexibilidade

Em uma arquitetura modular e acoplado com flexibilidade de IA e ML, sistemas complexos são divididos em componentes menores e independentes que interagem por interfaces bem definidas. Essa arquitetura minimiza as dependências de módulos, simplifica o desenvolvimento e os testes, aumenta a capacidade de reprodução e melhora a tolerância a falhas ao conter falhas. A abordagem modular é crucial para gerenciar a complexidade, acelerar a inovação e garantir a capacidade de manutenção a longo prazo.

Para projetar uma arquitetura modular e acoplado com flexibilidade para cargas de trabalho de IA e ML, considere as seguintes recomendações.

Implementar pequenos módulos ou componentes independentes

Separe seu sistema completo de IA e ML em módulos ou componentes pequenos e independentes. Cada módulo ou componente é responsável por uma função específica, como ingestão de dados, transformação de recursos, treinamento de modelo, disponibilização de inferências ou avaliação. Um design modular oferece vários benefícios importantes para sistemas de IA e ML: melhor capacidade de manutenção, maior escalonabilidade, reutilização e mais flexibilidade e agilidade.

As seções a seguir descrevem produtos, recursos e ferramentas Google Cloud que podem ser usados para projetar uma arquitetura modular para seus sistemas de IA e ML.

Microsserviços conteinerizados no GKE

Para sistemas complexos de IA e ML ou pipelines intrincados de IA generativa que precisam de orquestração refinada, implemente módulos como microsserviços que são orquestrados usando o GKE. Empacote cada estágio distinto como um microsserviço individual em contêineres do Docker. Essas etapas distintas incluem ingestão de dados adaptada para diversos formatos, pré-processamento de dados ou engenharia de recursos especializados, treinamento de modelo distribuídos ou ajuste fino de modelos de base grandes, avaliação ou veiculação.

Implante os microsserviços em contêineres no GKE e aproveite o escalonamento automático com base na utilização de CPU e memória ou em métricas personalizadas, como utilização de GPU, atualizações rotativas e configurações reproduzíveis em manifestos YAML. Garanta uma comunicação eficiente entre os microsserviços usando a descoberta de serviços do GKE. Para padrões assíncronos, use filas de mensagens como Pub/Sub.

A abordagem de microsserviços no GKE ajuda a criar plataformas escalonáveis e resilientes para tarefas como aplicativos RAG complexos, em que os estágios podem ser projetados como serviços distintos.

Serviços sem servidor orientados a eventos

Para tarefas orientadas a eventos que podem se beneficiar do escalonamento automático sem servidor, use o Cloud Run ou as funções do Cloud Run. Esses serviços são ideais para tarefas assíncronas, como pré-processamento ou jobs de inferência menores. Acione funções do Cloud Run em eventos, como um novo arquivo de dados criado no Cloud Storage ou atualizações de modelo no Artifact Registry. Para tarefas ou serviços de webhook que precisam de um ambiente de contêiner, use o Cloud Run.

Os serviços e as funções do Cloud Run podem escalonar verticalmente rapidamente e reduzir escala vertical até zero, o que ajuda a garantir a eficiência de custos para cargas de trabalho variáveis. Esses serviços são adequados para componentes modulares em fluxos de trabalho de agentes da Vertex AI. É possível orquestrar sequências de componentes com Workflows ou Application Integration.

Serviços gerenciados da Vertex AI

Os serviços da Vertex AI oferecem suporte à modularidade e ajudam a simplificar o desenvolvimento e a implantação dos seus sistemas de IA e ML. Os serviços abstraem as complexidades da infraestrutura para que você possa se concentrar na lógica do aplicativo.

  • Para orquestrar fluxos de trabalho criados com etapas modulares, use o Vertex AI Pipelines.
  • Para executar código personalizado de IA e ML, empacote o código em contêineres do Docker que podem ser executados em serviços gerenciados, como treinamento personalizado da Vertex AI e previsão da Vertex AI.
  • Para pipelines modulares de engenharia de atributos, use o Vertex AI Feature Store.
  • Para exploração e criação de protótipos modulares, use ambientes de notebook como o Vertex AI Workbench ou o Colab Enterprise. Organize seu código em funções, classes e scripts reutilizáveis.

Aplicativos agênticos

Para agentes de IA, o Agent Development Kit (ADK) oferece recursos modulares, como Ferramentas e Estado. Para ativar a interoperabilidade entre frameworks como LangChain, LangGraph, LlamaIndex, e a Vertex AI, combine o ADK com o protocolo Agent2Agent (A2A) e o protocolo de contexto do modelo (MCP). Essa interoperabilidade permite criar fluxos de trabalho de agentes usando diversos componentes.

É possível implantar agentes no Vertex AI Agent Engine, um ambiente de execução gerenciado otimizado para implantação escalonável de agentes. Para executar agentes em contêineres, use os recursos de escalonamento automático do Cloud Run.

Projetar interfaces bem definidas

Para criar sistemas de software robustos e fáceis de manter, é fundamental garantir que os componentes de um sistema sejam acoplado com flexibilidade e modularizados. Essa abordagem oferece vantagens significativas porque minimiza as dependências entre diferentes partes do sistema. Quando os módulos têm acoplado com flexibilidade, as mudanças em um módulo têm impacto mínimo em outros. Esse isolamento permite atualizações e fluxos de trabalho de desenvolvimento independentes para módulos individuais.

As seções a seguir fornecem orientações para garantir uma comunicação e integração perfeitas entre os módulos dos seus sistemas de IA e ML.

Escolha do protocolo

  • Para acesso universal, use APIs HTTP, siga os princípios RESTful e use JSON para troca de dados independente de linguagem. Projete os endpoints da API para representar ações em recursos.
  • Para comunicação interna de alto desempenho entre microsserviços, use o gRPC com buffers de protocolo (ProtoBuf) para serialização eficiente e tipagem estrita. Defina estruturas de dados como ModelInput, PredictionResult ou dados da ferramenta ADK usando arquivos .proto e gere vinculações de linguagem.
  • Para casos de uso em que o desempenho é essencial, use o streaming gRPC para grandes conjuntos de dados ou fluxos contínuos, como aplicativos de conversão de texto em voz ou vídeo em tempo real. Implante os serviços do gRPC no GKE.

Documentação padronizada e abrangente

Independente do protocolo de interface escolhido, a documentação padronizada é fundamental. A especificação OpenAPI descreve APIs RESTful. Use o OpenAPI para documentar suas APIs de IA e ML: caminhos, métodos, parâmetros, formatos de solicitação-resposta vinculados a esquemas JSON e segurança. A documentação abrangente da API ajuda a melhorar a capacidade de descoberta e a integração do cliente. Para criação e visualização de APIs, use ferramentas UI, como o Swagger Editor. Para acelerar o desenvolvimento e garantir a consistência, gere SDKs de cliente e stubs de servidor usando ferramentas de programação com assistência de IA, como o Gemini Code Assist. Integre a documentação da OpenAPI ao seu fluxo de CI/CD.

Interação com serviços gerenciados do Google Cloud , como a Vertex AI

Escolha entre a abstração mais alta do SDK da Vertex AI, que é preferível para a produtividade do desenvolvimento, e o controle granular que a API REST oferece.

  • O SDK da Vertex AI simplifica tarefas e autenticação. Use o SDK quando precisar interagir com a Vertex AI.
  • A API REST é uma alternativa eficiente, principalmente quando a interoperabilidade é necessária entre as camadas do sistema. É útil para ferramentas em linguagens que não têm um SDK ou quando você precisa de controle refinado.

Use APIs para isolar módulos e abstrair detalhes de implementação

Para segurança, escalonabilidade e visibilidade, é crucial implementar um gerenciamento de API robusto para seus serviços de IA e ML. Para implementar o gerenciamento de API nas interfaces definidas, use os seguintes produtos:

  • Gateway de API: para APIs expostas e gerenciadas externamente, o gateway de API fornece um ponto de entrada centralizado e seguro. Ele simplifica o acesso a serviços de back-end sem servidor, como APIs de previsão, treinamento e dados. O API Gateway ajuda a consolidar pontos de acesso, aplicar contratos de API e gerenciar recursos de segurança, como chaves de API e OAuth 2.0. Para proteger os back-ends contra sobrecarga e garantir a confiabilidade, implemente a limitação de taxa e as cotas de uso no API Gateway.
  • Cloud Endpoints: para simplificar o desenvolvimento e a implantação de APIs no GKE e no Cloud Run, use o Cloud Endpoints, que oferece uma solução fácil de usar para desenvolvedores para gerar chaves de API. Ele também oferece monitoramento e rastreamento integrados para chamadas de API e automatiza a geração de especificações OpenAPI, o que simplifica a documentação e a integração de clientes. Você pode usar o Cloud Endpoints para gerenciar o acesso a APIs internas ou controladas de IA e ML, como para acionar o treinamento e gerenciar repositórios de recursos.
  • Apigee: para IA e ML em escala empresarial, especialmente APIs de IA generativa sofisticadas, a Apigee oferece gerenciamento de APIs avançado e abrangente. Use a Apigee para segurança avançada, como proteção contra ameaças e OAuth 2.0, gerenciamento de tráfego, como armazenamento em cache, cotas e mediação, e para análise de dados. A Apigee ajuda você a ter insights detalhados sobre padrões de uso, desempenho e engajamento de APIs, que são cruciais para entender o uso de APIs de IA generativa.

Planejar a degradação suave

Em sistemas de IA e ML de produção, as falhas de componentes são inevitáveis, assim como em outros sistemas. A degradação gradual garante que as funções essenciais continuem operando, talvez com desempenho reduzido. Essa abordagem evita interrupções completas e melhora a disponibilidade geral. A degradação gradual é essencial para inferência sensível à latência, treinamento distribuído e IA generativa.

As seções a seguir descrevem técnicas usadas para planejar e implementar a degradação gradual.

Isolamento de falhas

  • Para isolar componentes com falha em arquiteturas distribuídas, implemente o padrão de disjuntor usando bibliotecas de capacidade de recuperação, como Resilience4j em Java e CircuitBreaker em Python.
  • Para evitar falhas em cascata, configure limites com base em métricas de carga de trabalho de IA e ML, como taxas de erro e latência, e defina substitutos, como modelos mais simples e dados armazenados em cache.

Redundância de componentes

Para componentes críticos, implemente redundância e failover automático. Por exemplo, use clusters multizona ou regionais do GKE e implante serviços do Cloud Run de maneira redundante em diferentes regiões. Para encaminhar o tráfego para instâncias íntegras quando instâncias não íntegras são detectadas, use o Cloud Load Balancing.

Garanta a redundância de dados usando buckets multirregionais do Cloud Storage. Para treinamento distribuído, implemente o checkpointing assíncrono para retomar após falhas. Para um treinamento resiliente e elástico, use os Programas.

Monitoramento proativo

A degradação gradual ajuda a garantir a disponibilidade do sistema durante uma falha, mas também é necessário implementar medidas proativas para verificações de integridade contínuas e monitoramento abrangente. Colete métricas específicas para IA e ML, como latência, capacidade de processamento e utilização da GPU. Além disso, colete métricas de degradação de desempenho do modelo, como desvio de modelo e de dados, usando o Cloud Monitoring e o Vertex AI Model Monitoring.

As verificações de integridade podem acionar a necessidade de substituir nós com falha, implantar mais capacidade ou acionar automaticamente o treinamento contínuo ou o ajuste fino de pipelines que usam dados atualizados. Essa abordagem proativa ajuda a evitar a degradação gradual baseada na acurácia e no sistema, além de melhorar a confiabilidade geral.

Práticas de SRE

Para monitorar a integridade dos seus sistemas, considere adotar práticas de SRE para implementar objetivos de nível de serviço (SLOs). Alertas sobre perda de margem de erro e taxa de consumo podem ser indicadores precoces de problemas de confiabilidade com o sistema. Para mais informações sobre práticas de SRE, consulte o livro do Google sobre SRE.

Criar uma plataforma de MLOps automatizada de ponta a ponta

Um sistema de IA e ML robusto, escalonável e confiável no Google Cloud requer uma plataforma de MLOps completa e automatizada para o ciclo de vida do desenvolvimento de modelos. O ciclo de vida de desenvolvimento inclui o tratamento inicial de dados, o treinamento contínuo de modelos, a implantação e o monitoramento em produção. Ao automatizar essas etapas no Google Cloud, você estabelece processos repetíveis, reduz o trabalho manual, minimiza erros e acelera o ritmo da inovação.

Uma plataforma de MLOps automatizada é essencial para estabelecer confiabilidade de nível de produção para seus aplicativos. Automation ajuda a garantir a qualidade do modelo, a reprodutibilidade e a integração e entrega contínuas de artefatos de IA e ML.

Para criar uma plataforma de MLOps automatizada de ponta a ponta, considere as seguintes recomendações.

Automatizar o ciclo de vida de desenvolvimento de modelos

Um elemento essencial de uma plataforma de MLOps automatizada é a orquestração de todo o fluxo de trabalho de IA e ML como uma série de etapas conectadas e automatizadas: desde a preparação e validação de dados até o treinamento, avaliação, implantação e monitoramento de modelos.

  • Use o Vertex AI Pipelines como seu orquestrador central:
    • Defina fluxos de trabalho completos com componentes modulares para processamento, treinamento, avaliação e implantação de dados.
    • Automatize as execuções de pipeline usando programações ou gatilhos, como novos dados ou mudanças de código.
    • Implemente a parametrização e o controle de versões automatizados para cada execução de pipeline e crie um histórico de versões.
    • Monitore o progresso do pipeline e o uso de recursos usando o registro e o rastreamento integrados, além de se integrar aos alertas do Cloud Monitoring.
  • Defina seus pipelines de ML de maneira programática usando o SDK do Kubeflow Pipelines (KFP) ou o SDK do TensorFlow Extended. Para mais informações, consulte Interfaces para o Vertex AI Pipelines.
  • Orquestre operações usando serviços do Google Cloud como Dataflow, treinamento personalizado da Vertex AI, Vertex AI Model Registry e endpoints da Vertex AI.
  • Para fluxos de trabalho de IA generativa, orquestre as etapas de gerenciamento de comandos, inferência em lote, avaliação de human-in-the-loop (HITL) e coordenação de componentes do ADK.

Gerenciar a infraestrutura como código

A infraestrutura como código (IaC) é essencial para gerenciar a infraestrutura de sistemas de IA e ML e para permitir implantações reproduzíveis, escalonáveis e fáceis de manter. As necessidades de infraestrutura dos sistemas de IA e ML são dinâmicas e complexas. Os sistemas geralmente exigem hardware especializado, como GPUs e TPUs. A IaC ajuda a reduzir os riscos do gerenciamento manual de infraestrutura, garantindo consistência, permitindo rollbacks e tornando as implantações repetíveis.

Para gerenciar seus recursos de infraestrutura como código de maneira eficaz, use as seguintes técnicas.

Automatizar o provisionamento de recursos.

Para gerenciar a IaC de maneira eficaz no Google Cloud, defina e provisione os recursos de infraestrutura de IA e ML usando o Terraform. A infraestrutura pode incluir recursos como os seguintes:

  • Clusters do GKE configurados com pools de nós. Os pools de nós podem ser otimizados com base nos requisitos da carga de trabalho. Por exemplo, é possível usar GPUs A100, H100, H200 ou B200 para treinamento e GPUs L4 para inferência.
  • Endpoints da Vertex AI configurados para veiculação de modelos, com tipos de máquinas e políticas de escalonamento definidos.
  • Buckets do Cloud Storage para dados e artefatos.

Usar modelos de configuração

Organize suas configurações do Terraform como modelos modulares. Para acelerar o provisionamento de recursos de IA e ML, use o Cluster Toolkit. O kit de ferramentas oferece projetos de exemplo, que são modelos do Terraform selecionados pelo Google que podem ser usados para implantar clusters de HPC, IA e ML prontos para uso no Slurm ou no GKE. É possível personalizar o código do Terraform e gerenciá-lo no seu sistema de controle de versões. Para automatizar o fluxo de trabalho de provisionamento e atualização de recursos, integre o código aos seus pipelines de CI/CD usando o Cloud Build.

Automatizar mudanças de configuração

Depois de provisionar sua infraestrutura, gerencie as mudanças de configuração em andamento de maneira declarativa:

  • Em ambientes centrados no Kubernetes, gerencie seus recursos do Google Cloud como objetos do Kubernetes usando o Config Connector.
  • Defina e gerencie recursos da Vertex AI, como conjuntos de dados, modelos e endpoints, instâncias do Cloud SQL, tópicos do Pub/Sub e buckets do Cloud Storage usando manifestos YAML.
  • Implante os manifestos no cluster do GKE para integrar a configuração do aplicativo e da infraestrutura.
  • Automatize as atualizações de configuração usando pipelines de CI/CD e use modelos para lidar com diferenças de ambiente.
  • Implemente configurações para políticas do Identity and Access Management (IAM) e contas de serviço usando IaC.

Integrar com CI/CD

  • Automatize o ciclo de vida dos recursos de infraestrutura Google Cloud integrando a IaC aos pipelines de CI/CD usando ferramentas como o Cloud Build e o Infrastructure Manager.
  • Defina acionadores para atualizações automáticas em commits de código.
  • Implemente testes e validações automatizados no pipeline. Por exemplo, é possível criar um script para executar automaticamente os comandos do Terraform validate e plan.
  • Armazene as configurações como artefatos e ative o controle de versões.
  • Defina ambientes separados, como desenvolvimento, preparo e produção, com configurações distintas no controle de versão e automatize a promoção de ambientes.

Validar o comportamento do modelo

Para manter a acurácia e a relevância do modelo ao longo do tempo, automatize o processo de treinamento e avaliação na plataforma de MLOps. Essa automação, aliada a uma validação rigorosa, ajuda a garantir que os modelos se comportem como esperado com dados relevantes antes de serem implantados na produção.

  • Configure pipelines de treinamento contínuo, que são acionados por novos dados e sinais de monitoramento, como a deriva de dados, ou que são executados de acordo com uma programação.
    • Para gerenciar jobs de treinamento automatizados, como testes de ajuste de hiperparâmetros e configurações de treinamento distribuído para modelos maiores, use o treinamento personalizado da Vertex AI.
    • Para ajustar modelos de fundação, automatize o processo de ajuste e integre os jobs aos seus pipelines.
  • Implemente o controle de versões automatizado de modelos e armazene com segurança os artefatos de modelos treinados após cada execução de treinamento bem-sucedida. É possível armazenar os artefatos no Cloud Storage ou registrá-los no Model Registry.
  • Defina métricas de avaliação e limites claros, como acurácia mínima, taxa de erro máxima e pontuação F1 mínima.
    • Verifique se um modelo atende aos limites para passar automaticamente na avaliação e ser considerado para implantação.
    • Automatize a avaliação usando serviços como a avaliação de modelos na Vertex AI.
    • Verifique se a avaliação inclui métricas específicas para a qualidade da saída gerada, acurácia factual, atributos de segurança e adesão ao estilo ou formato especificado.
  • Para registrar e rastrear automaticamente os parâmetros, as versões de código, as versões do conjunto de dados e os resultados de cada execução de treinamento e avaliação, use os Experimentos da Vertex AI. Essa abordagem fornece um histórico útil para comparação, depuração e reprodutibilidade.
  • Para otimizar o ajuste de hiperparâmetros e automatizar a pesquisa de configurações ideais de modelo com base no objetivo definido, use o Vertex AI Vizier.
  • Para visualizar métricas de treinamento e depurar durante o desenvolvimento, use o TensorBoard da Vertex AI.

Validar entradas e saídas de pipelines de IA e ML

Para garantir a confiabilidade e a integridade dos seus sistemas de IA e ML, valide os dados quando eles entram nos sistemas e passam pelos pipelines. Você também precisa verificar as entradas e saídas nos limites do componente. A validação robusta de todas as entradas e saídas (dados brutos, dados processados, configurações, argumentos e arquivos) ajuda a evitar comportamentos inesperados e manter a qualidade do modelo durante todo o ciclo de vida do MLOps. Ao integrar essa abordagem proativa à sua plataforma de MLOps, é possível detectar erros antes que eles sejam propagados por todo o sistema, economizando tempo e recursos.

Para validar de maneira eficaz as entradas e saídas dos seus pipelines de IA e ML, use as seguintes técnicas.

Automatizar a validação de dados

  • Implemente a validação de dados automatizada nos pipelines de ingestão e pré-processamento de dados usando o TensorFlow Data Validation (TFDV).
    • Para verificações de qualidade de dados em grande escala baseadas em SQL, use serviços de processamento escalonáveis, como o BigQuery.
    • Para validação programática complexa em dados de streaming ou em lote, use o Dataflow.
  • Monitore as distribuições de dados ao longo do tempo com os recursos do TFDV.
    • Visualize tendências usando ferramentas integradas ao Cloud Monitoring para detectar a deriva de dados. É possível acionar automaticamente pipelines de retreinamento de modelo quando os padrões de dados mudam significativamente.
  • Armazene resultados e métricas de validação no BigQuery para análise, acompanhamento histórico e arquivamento de artefatos de validação no Cloud Storage.

Validar configurações de pipeline e dados de entrada

Para evitar falhas no pipeline ou comportamento inesperado causado por configurações incorretas, implemente uma validação rigorosa para todas as configurações de pipeline e argumentos de linha de comando:

  • Defina esquemas claros para seus arquivos de configuração, como YAML ou JSON, usando bibliotecas de validação de esquema, como jsonschema para Python. Valide os objetos de configuração com esses esquemas antes de iniciar uma execução de pipeline e antes da execução de um componente.
  • Implemente a validação de entrada para todos os argumentos de linha de comando e parâmetros de pipeline usando bibliotecas de análise de argumentos, como argparse. A validação precisa verificar se os tipos de dados estão corretos, se os valores são válidos e se os argumentos necessários foram fornecidos.
  • No Vertex AI Pipelines, defina os tipos e propriedades esperados dos parâmetros de componentes usando os recursos integrados de validação de entrada de componentes.
  • Para garantir a capacidade de reprodução das execuções de pipeline e manter uma trilha de auditoria, armazene arquivos de configuração validados e versionados no Cloud Storage ou no Artifact Registry.

Validar arquivos de entrada e saída

Valide arquivos de entrada e saída, como conjuntos de dados, artefatos de modelo e relatórios de avaliação, para verificar a integridade e a correção do formato:

  • Valide formatos de arquivo como CSV, Parquet e tipos de imagem usando bibliotecas.
  • Para arquivos grandes ou artefatos críticos, valide os tamanhos de arquivo e os checksums para detectar corrupção ou transferências incompletas usando a validação de dados e detecção de mudanças do Cloud Storage.
  • Faça a validação de arquivos usando funções do Cloud Run (por exemplo, com base em eventos de upload de arquivos) ou em pipelines do Dataflow.
  • Armazene os resultados da validação no BigQuery para facilitar a recuperação e a análise.

Automatizar a implantação e implementar o monitoramento contínuo

A implantação automatizada e o monitoramento contínuo de modelos em produção ajudam a garantir a confiabilidade, realizar atualizações rápidas e detectar problemas imediatamente. Isso envolve o gerenciamento de versões de modelos, a implantação controlada, a implantação automatizada usando CI/CD e o monitoramento abrangente, conforme descrito nas seções a seguir.

Gerenciar versões de modelo

Gerencie iterações de modelo e artefatos associados usando ferramentas de controle de versão:

  • Para rastrear versões e metadados de modelos e vincular aos artefatos de modelo subjacentes, use o Model Registry.
  • Implemente um esquema de controle de versões claro, como o controle de versões semântico. Para cada versão do modelo, anexe metadados abrangentes, como parâmetros de treinamento, métricas de avaliação de pipelines de validação e versão do conjunto de dados.
  • Armazene artefatos do modelo, como arquivos de modelo, pesos pré-treinados e imagens de contêiner de serviço no Artifact Registry e use os recursos de controle de versão e inclusão de tags.
  • Para atender aos requisitos de segurança e governança, defina políticas de controle de acesso rigorosas para o Model Registry e o Artifact Registry.
  • Para registrar e gerenciar versões de maneira programática e integrar versões em pipelines de CI/CD automatizados, use o SDK ou a API da Vertex AI.

Realizar uma implantação controlada

Controle a implantação de versões do modelo em endpoints usando os recursos de gerenciamento de tráfego da plataforma de serviço.

  • Implemente uma implantação gradual usando o recurso de divisão de tráfego dos endpoints da Vertex AI.
  • Se você implantar seu modelo no GKE, use técnicas avançadas de gerenciamento de tráfego, como implantação canário:
    1. Encaminhe um pequeno subconjunto do tráfego de produção para uma nova versão do modelo.
    2. Monitore continuamente a performance e as taxas de erro usando métricas.
    3. Estabeleça que o modelo é confiável.
    4. Distribua a versão para todo o tráfego.
  • Realize testes A/B de agentes de IA:
    1. Implante duas versões diferentes de modelo-agente ou modelos completamente diferentes no mesmo endpoint.
    2. Divida o tráfego entre as implantações.
    3. Analise os resultados em relação aos objetivos de negócios.
  • Implemente mecanismos de reversão automatizados que podem reverter rapidamente o tráfego do endpoint para uma versão de modelo estável anterior se alertas de monitoramento forem acionados ou se os limites de desempenho não forem atingidos.
  • Configure as configurações de divisão de tráfego e implantação de maneira programática usando o SDK ou a API da Vertex AI.
  • Use o Cloud Monitoring para acompanhar a performance e o tráfego em várias versões.
  • Automatizar a implantação com pipelines de CI/CD. É possível usar o Cloud Build para criar contêineres, artefatos de versão e acionar a implantação em endpoints da Vertex AI.
  • Verifique se os pipelines de CI/CD gerenciam versões e extraem do Artifact Registry.
  • Antes de transferir o tráfego, faça testes automatizados de endpoints para verificar a correção da previsão, a latência, a taxa de transferência e a função da API.
  • Armazene todas as configurações no controle de versão.

Monitoramento contínuo

  • Use o Model Monitoring para detectar automaticamente a degradação da performance, o desvio de dados (mudanças na distribuição de entrada em comparação com o treinamento) e o desvio de previsão (mudanças nas saídas do modelo).
    • Configure jobs de detecção de deriva com limites e alertas.
    • Monitore o desempenho em tempo real: latência de previsão, capacidade, taxas de erro.
  • Defina métricas personalizadas no Cloud Monitoring para KPIs de negócios.
  • Integre os resultados do Model Monitoring e as métricas personalizadas ao Cloud Monitoring para alertas e painéis.
  • Configure canais de notificação, como e-mail, Slack ou PagerDuty, e a correção automatizada.
  • Para depurar registros de previsão, use o Cloud Logging.
  • Integre o monitoramento ao gerenciamento de incidentes.

Para endpoints de IA generativa, monitore características de saída como toxicidade e coerência:

  • Monitore o serviço de recursos para detectar desvios.
  • Implemente a validação granular de previsões: valide as saídas em relação aos intervalos e formatos esperados usando uma lógica personalizada.
  • Monitore as distribuições de previsão para detectar mudanças.
  • Valide o esquema de saída.
  • Configure alertas para saídas e mudanças inesperadas.
  • Rastreie e responda a eventos de validação em tempo real usando o Pub/Sub.

Verifique se a saída do monitoramento abrangente é enviada para o treinamento contínuo.

Mantenha a confiança e o controle com a governança de dados e modelos

A confiabilidade da IA e do ML vai além do tempo de atividade técnica. Isso inclui confiança e governança robusta de dados e modelos. As respostas da IA podem ser imprecisas, tendenciosas ou desatualizadas. Esses problemas prejudicam a confiança e podem causar danos. A rastreabilidade abrangente, o controle de acesso forte, a validação automatizada e as práticas transparentes ajudam a garantir que as saídas de IA sejam confiáveis, seguras e atendam aos padrões de ética.

Para manter a confiança e o controle com a governança de dados e modelos, considere as seguintes recomendações.

Estabelecer catálogos de dados e modelos para rastreabilidade

Para facilitar o rastreamento, a auditoria e a compreensão abrangentes da linhagem dos seus recursos de IA e ML, mantenha um registro robusto e centralizado de dados e versões de modelos durante todo o ciclo de vida. Um catálogo confiável de dados e modelos serve como a única fonte de verdade para todos os artefatos usados e produzidos pelos seus pipelines de IA e ML, desde fontes de dados brutos e conjuntos de dados processados até versões de modelos treinados e endpoints implantados.

Use os seguintes produtos, ferramentas e técnicas para criar e manter catálogos de recursos de dados:

  • Crie um catálogo empresarial de recursos de dados usando o Dataplex Universal Catalog. Para descobrir e criar automaticamente inventários dos recursos de dados, integre o Universal Catalog do Dataplex aos seus sistemas de armazenamento, como BigQuery, Cloud Storage e Pub/Sub.
  • Armazene seus dados em buckets birregionais ou multirregionais do Cloud Storage para garantir alta disponibilidade e durabilidade. Os dados enviados para esses buckets são armazenados de maneira redundante em pelo menos dois locais geográficos diferentes. Essa redundância oferece resiliência integrada contra interrupções regionais e ajuda a garantir a integridade dos dados.
  • Marque e anote seus conjuntos de dados com metadados comerciais relevantes, informações de propriedade, níveis de sensibilidade e detalhes de linhagem. Por exemplo, vincule um conjunto de dados processado à origem bruta e ao pipeline que o criou.
  • Crie um repositório central para versões de modelos usando o Model Registry. Registre cada versão do modelo treinado e vincule aos metadados associados. Os metadados podem incluir o seguinte:
    • Parâmetros de treinamento.
    • Métricas de avaliação de pipelines de validação.
    • Versão do conjunto de dados usada para treinamento, com linhagem rastreada até a entrada relevante do Dataplex Universal Catalog.
    • Versão do código que gerou o conjunto de dados.
    • Detalhes sobre o framework ou modelo de fundação usado.
  • Antes de importar um modelo para o Model Registry, armazene artefatos de modelo, como arquivos de modelo e pesos pré-treinados, em um serviço como o Cloud Storage. Armazene imagens de contêiner personalizadas para veiculação ou jobs de treinamento personalizados em um repositório seguro como o Artifact Registry.
  • Para garantir que os recursos de dados e modelos sejam registrados e atualizados automaticamente nos respectivos catálogos após a criação ou modificação, implemente processos automatizados nos seus pipelines de MLOps. Essa catalogação abrangente oferece rastreabilidade de ponta a ponta, desde dados brutos até a previsão, permitindo auditar as entradas e os processos que levaram a uma versão ou previsão específica do modelo. A capacidade de auditoria é essencial para depurar comportamentos inesperados, garantir a conformidade com as políticas de uso de dados e entender o impacto das mudanças de dados ou modelos ao longo do tempo.
  • Para IA generativa e modelos de fundação, seu catálogo também precisa rastrear detalhes sobre o modelo de fundação específico usado, parâmetros de ajuste fino e resultados de avaliação específicos para a qualidade e a segurança da saída gerada.

Implemente controles de acesso e trilhas de auditoria robustos

Para manter a confiança e o controle nos seus sistemas de IA e ML, é essencial proteger dados e modelos sensíveis contra acesso não autorizado e garantir a responsabilidade por todas as mudanças.

  • Implemente controles de acesso rigorosos e mantenha trilhas de auditoria detalhadas em todos os componentes dos seus sistemas de IA e ML em Google Cloud.
  • Defina permissões granulares no IAM para usuários, grupos e contas de serviço que interagem com seus recursos de IA e ML.
  • Siga rigorosamente o princípio de privilégio mínimo.
  • Conceda apenas as permissões mínimas necessárias para tarefas específicas. Por exemplo, uma conta de serviço de treinamento precisa de acesso de leitura aos dados de treinamento e de gravação aos artefatos do modelo, mas talvez não precise de acesso de gravação aos endpoints de serviço de produção.

Aplique políticas do IAM de maneira consistente em todos os recursos e ativos relevantes nos seus sistemas de IA e ML, incluindo:

  • Buckets do Cloud Storage que contêm dados sensíveis ou artefatos de modelo.
  • Conjuntos de dados do BigQuery.
  • Recursos da Vertex AI, como repositórios de modelos, endpoints, pipelines e recursos da Feature Store.
  • Recursos de computação, como clusters do GKE e serviços do Cloud Run.

Use auditorias e registros para capturar, monitorar e analisar a atividade de acesso:

  • Ative os registros de auditoria do Cloud para todos os serviços do Google Cloud usados pelo sistema de IA e ML.
  • Configure os registros de auditoria para capturar informações detalhadas sobre chamadas de API, eventos de acesso a dados e mudanças de configuração feitas nos seus recursos. Monitore os registros em busca de atividades suspeitas, tentativas de acesso não autorizado ou modificações inesperadas em dados críticos ou recursos do modelo.
  • Para análise, alertas e visualização em tempo real, transmita os registros de auditoria para o Cloud Logging.
  • Para armazenamento de longo prazo econômico e análise de segurança retrospectiva ou auditorias de compliance, exporte os registros para o BigQuery.
  • Para um monitoramento de segurança centralizado, integre os registros de auditoria aos seus sistemas de gerenciamento de eventos e informações de segurança (SIEM). Revise regularmente as políticas de acesso e os rastros de auditoria para garantir que estejam alinhados aos requisitos de governança e detectar possíveis violações de política.
  • Para aplicativos que processam dados sensíveis, como informações de identificação pessoal (PII) para treinamento ou inferência, use as verificações da Proteção de dados sensíveis em pipelines ou no armazenamento de dados.
  • Para soluções de IA generativa e de agentes, use trilhas de auditoria para ajudar a rastrear quem acessou modelos ou ferramentas específicas, quais dados foram usados para ajuste ou comandos e quais consultas foram enviadas para endpoints de produção. As trilhas de auditoria ajudam a garantir a responsabilidade e fornecem dados cruciais para investigar o uso indevido de dados ou violações de políticas.

Abordar viés, transparência e explicabilidade

Para criar sistemas de IA e ML confiáveis, é necessário abordar possíveis vieses inerentes aos dados e modelos, buscar a transparência no comportamento do sistema e fornecer explicabilidade para as saídas do modelo. É especialmente importante criar sistemas confiáveis em domínios sensíveis ou quando você usa modelos complexos, como os que são usados normalmente para aplicativos de IA generativa.

  • Implemente práticas proativas para identificar e reduzir o viés em todo o ciclo de vida do MLOps.
  • Analise os dados de treinamento para detectar viés usando ferramentas que identificam distorções nas distribuições de recursos em diferentes grupos demográficos ou atributos sensíveis.
  • Avalie o desempenho geral do modelo e o desempenho em segmentos predefinidos de dados. Essa avaliação ajuda a identificar desempenho ou viés discrepantes que afetam subgrupos específicos.

Para transparência e capacidade de explicação do modelo, use ferramentas que ajudem usuários e desenvolvedores a entender por que um modelo fez uma previsão específica ou produziu uma saída específica.

  • Para modelos tabulares implantados em endpoints da Vertex AI, gere atribuições de recursos usando a Vertex Explainable AI. As atribuições de recursos indicam os recursos de entrada que mais contribuíram para a previsão.
  • Analise interativamente o comportamento do modelo e possíveis vieses em um conjunto de dados usando ferramentas independentes de modelo, como a Ferramenta What-If, que se integra ao TensorBoard.
  • Integre a explicabilidade aos seus painéis de monitoramento. Em situações em que entender o raciocínio do modelo é importante para a confiança ou tomada de decisões, forneça dados de explicabilidade diretamente aos usuários finais pelas interfaces do aplicativo.
  • Para modelos complexos, como LLMs usados em modelos de IA generativa, explique o processo seguido por um agente, por exemplo, usando registros de rastreamento. A explicabilidade é relativamente desafiadora para esses modelos, mas ainda é vital.
  • Em aplicativos de RAG, forneça citações para as informações recuperadas. Você também pode usar técnicas como a engenharia de comandos para orientar o modelo a fornecer explicações ou mostrar as etapas de raciocínio.
  • Implemente o monitoramento contínuo na produção para detectar mudanças no comportamento ou nas saídas do modelo que possam indicar vieses ou injustiças emergentes. Documente as limitações, os casos de uso pretendidos e os possíveis vieses conhecidos do modelo como parte dos metadados dele no Registro de modelos.

Implementar práticas holísticas de observabilidade e confiabilidade de IA e ML

A capacidade de observação holística é essencial para gerenciar sistemas complexos de IA e ML em produção. Também é essencial para medir a confiabilidade de sistemas complexos de IA e ML, especialmente para IA generativa, devido à complexidade, à intensidade de recursos e ao potencial de saídas imprevisíveis. A capacidade de observação holística envolve a observação da infraestrutura, do código do aplicativo, dos dados e do comportamento do modelo para gerar insights para detecção, diagnóstico e resposta proativos a problemas. Essa capacidade de observação leva a sistemas confiáveis e de alta performance. Para alcançar a observabilidade holística, faça o seguinte:

  • Adote os princípios da SRE.
  • Defina metas de confiabilidade claras.
  • Acompanhe métricas em todas as camadas do sistema.
  • Use insights da observabilidade para melhoria contínua e gerenciamento proativo.

Para implementar práticas holísticas de observabilidade e confiabilidade para cargas de trabalho de IA e ML em Google Cloud, considere as seguintes recomendações.

Estabelecer metas de confiabilidade e métricas de negócios

Identifique os indicadores principais de desempenho (KPIs) que seu sistema de IA e ML afeta diretamente. Os KPIs podem incluir receita influenciada por recomendações de IA, rotatividade de clientes prevista ou reduzida pelos sistemas de IA e taxas de engajamento e conversão de usuários impulsionadas por recursos de IA generativa.

Para cada KPI, defina as métricas de confiabilidade técnica correspondentes que o afetam. Por exemplo, se o KPI for "satisfação do cliente com um assistente de IA conversacional", as métricas de confiabilidade correspondentes poderão incluir o seguinte:

  • A taxa de sucesso das solicitações do usuário.
  • A latência das respostas: tempo para o primeiro token (TTFT) e transmissão de tokens para LLMs.
  • A taxa de respostas irrelevantes ou nocivas.
  • A taxa de conclusão de tarefas bem-sucedidas pelo agente.

Para treinamento de IA e ML, as métricas de confiabilidade podem incluir utilização de FLOPS do modelo (MFU), iterações por segundo, tokens por segundo e tokens por dispositivo.

Para medir e melhorar a confiabilidade da IA e do ML de maneira eficaz, comece definindo metas claras de confiabilidade alinhadas aos objetivos gerais de negócios. Adote a abordagem de SRE definindo SLOs que quantificam níveis aceitáveis de confiabilidade e desempenho para seus serviços de IA e ML na perspectiva dos usuários. Quantifique essas métricas de confiabilidade técnica com metas específicas de SLO.

Confira alguns exemplos de metas de SLO:

  • 99,9% das chamadas de API precisam retornar uma resposta bem-sucedida.
  • A latência de inferência no 95º percentil precisa ser inferior a 300 ms.
  • O TTFT precisa ser inferior a 500 ms para 99% das solicitações.
  • A taxa de saída prejudicial precisa ser inferior a 0,1%.

Alinhar os SLOs diretamente às necessidades comerciais garante que os esforços de confiabilidade se concentrem no comportamento mais crítico do sistema que afeta os usuários e a empresa. Essa abordagem ajuda a transformar a confiabilidade em uma propriedade de engenharia mensurável e prática.

Monitorar a performance da infraestrutura e dos aplicativos

Acompanhe as métricas de infraestrutura em todos os recursos usados pelos seus sistemas de IA e ML. As métricas incluem uso do processador (CPU, GPU e TPU), uso de memória, capacidade de processamento e latência de rede e E/S de disco. Acompanhe as métricas de ambientes gerenciados, como treinamento e disponibilização da Vertex AI, e de recursos autogerenciados, como nós do GKE e instâncias do Cloud Run.

Monitore os quatro indicadores de ouro para seus aplicativos de IA e ML:

  • Latência: tempo para responder às solicitações.
  • Tráfego: volume de solicitações ou carga de trabalho.
  • Taxa de erro: taxa de solicitações ou operações com falha.
  • Saturação: utilização de recursos críticos, como CPU, memória e aceleradores de GPU ou TPU, que indica a proximidade do sistema aos limites de capacidade.

Faça o monitoramento usando as seguintes técnicas:

  • Colete, armazene e visualize as métricas de infraestrutura e aplicativos usando o Cloud Monitoring. É possível usar painéis pré-criados para serviços do Google Cloud e criar painéis personalizados adaptados aos indicadores de desempenho e à integridade da infraestrutura específicos da sua carga de trabalho.
  • Colete registros detalhados dos seus aplicativos de IA e ML e da infraestrutura subjacente usando o Cloud Logging. Esses registros são essenciais para a solução de problemas e a análise de desempenho. Eles fornecem contexto sobre eventos e erros.
  • Identifique problemas de latência e entenda os fluxos de solicitação em microsserviços distribuídos de IA e ML usando o Cloud Trace. Esse recurso é fundamental para depurar interações complexas de agentes da Vertex AI ou pipelines de inferência multicomponente.
  • Identifique gargalos de desempenho em blocos de funções no código do aplicativo usando o Cloud Profiler. Identificar gargalos de desempenho pode ajudar você a otimizar o uso de recursos e o tempo de execução.
  • Reúna métricas específicas relacionadas ao acelerador, como uso detalhado da GPU por processo, uso de memória por processo e temperatura, usando ferramentas como o NVIDIA Data Center GPU Manager (DCGM).

Implementar a observabilidade de dados e modelos

Sistemas de IA generativa confiáveis exigem dados e capacidade de observação de modelos robustos, que começam com o monitoramento de pipelines de ponta a ponta.

  • Acompanhe as taxas de ingestão de dados, os volumes processados e as latências de transformação usando serviços como o Dataflow.
  • Monitore as taxas de sucesso e falha de jobs nos seus pipelines de MLOps, incluindo os gerenciados pelo Vertex AI Pipelines.

A avaliação contínua da qualidade dos dados é crucial.

  • Gerencie e regule dados usando o Catálogo universal do Dataplex:
    • Avalie a precisão validando com informações empíricas ou rastreando taxas de detecção de outliers.
    • Monitore a atualização com base na idade dos dados e na frequência de atualizações em relação aos SLAs.
    • Avalie a integridade rastreando porcentagens de valores nulos e taxas de preenchimento de campos obrigatórios.
    • Garantir a validade e a consistência por meio de verificações de aderência ao esquema e duplicação.
  • Detecte anomalias de forma proativa usando alertas do Cloud Monitoring e uma linhagem de dados clara para rastreabilidade.
  • Para sistemas de RAG, examine a relevância do contexto recuperado e a fundamentação (atribuição à fonte) das respostas.
  • Monitore a capacidade de consultas do banco de dados de vetores.

As principais métricas de capacidade de observação do modelo incluem contagens de tokens de entrada/saída e taxas de erro específicas do modelo, como falhas de alucinação ou resolução de consultas. Para rastrear essas métricas, use o Model Monitoring.

  • Monitore continuamente as pontuações de toxicidade da saída e as classificações de feedback do usuário.
  • Automatize a avaliação das saídas do modelo em relação aos critérios definidos usando o serviço de avaliação de IA generativa.
  • Garanta um desempenho consistente monitorando sistematicamente o desvio de dados e conceitos com métricas abrangentes de taxa de erros.

Para rastrear as métricas do modelo, use o TensorBoard ou o MLflow. Para análise e criação de perfil detalhadas para resolver problemas de desempenho, use a criação de perfil do PyTorch XLA ou o NVIDIA Nsight.

Colaboradores

Autores:

Outros colaboradores:

  • Filipe Gracio, PhD | Engenheiro de clientes, especialista em IA/ML
  • Hossein Sarshar | Arquiteto de soluções de campo para infraestrutura de IA
  • Jose Andrade | Engenheiro de clientes, especialista em SRE
  • Kumar Dhanagopal | Desenvolvedor de soluções para vários produtos
  • Laura Hyatt | Engenheiro de clientes, FSI
  • Olivier Martin | Arquiteto de soluções de campo de infraestrutura de IA
  • Radhika Kanakam | Líder do programa, Google Cloud Well-Architected Framework

Perspectiva de IA e ML: otimização de custos

Este documento no Well-Architected Framework: perspectiva de IA e ML oferece uma visão geral dos princípios e recomendações para otimizar o custo dos seus sistemas de IA em todo o ciclo de vida de ML. Ao adotar uma abordagem proativa e informada de gerenciamento de custos, sua organização pode aproveitar todo o potencial dos sistemas de IA e ML e manter a disciplina financeira. As recomendações neste documento estão alinhadas ao pilar de otimização de custos do Google Cloud Well-Architected Framework.

Os sistemas de IA e ML podem ajudar você a descobrir insights valiosos e recursos preditivos com base em dados. Por exemplo, você pode reduzir o atrito nos processos internos, melhorar as experiências do usuário e conseguir insights mais profundos sobre os clientes. A nuvem oferece grandes quantidades de recursos e um tempo rápido para gerar valor sem grandes investimentos iniciais para cargas de trabalho de IA e ML. Para maximizar o valor comercial e alinhar os gastos com suas metas de negócios, é necessário entender os fatores de custo, otimizar os custos de forma proativa, configurar controles de gastos e adotar práticas de FinOps.

As recomendações neste documento são mapeadas para os seguintes princípios básicos:

Definir e medir custos e retornos

Para gerenciar com eficiência os custos de IA e ML no Google Cloud, é necessário definir e medir os custos de recursos de nuvem e o valor comercial das suas iniciativas de IA e ML. Para ajudar você a acompanhar os gastos de forma granular,o Google Cloud oferece ferramentas abrangentes de faturamento e gerenciamento de custos, como:

  • Relatórios e tabelas do Cloud Billing
  • Painéis, orçamentos e alertas do Looker Studio
  • Cloud Monitoring
  • Cloud Logging

Para tomar decisões fundamentadas sobre alocação e otimização de recursos, considere as seguintes recomendações.

Estabelecer metas de negócios e KPIs

Alinhe as escolhas técnicas nos seus projetos de IA e ML com as metas de negócios e os indicadores principais de performance (KPIs).

Defina objetivos estratégicos e KPIs focados no ROI

Verifique se os projetos de IA e ML estão alinhados a objetivos estratégicos, como crescimento da receita, redução de custos, satisfação do cliente e eficiência. Envolva as partes interessadas para entender as prioridades de negócios. Defina objetivos de IA e ML que sejam específicos, mensuráveis, alcançáveis, relevantes e temporais (SMART). Por exemplo, um objetivo SMART é: "Reduzir o tempo de atendimento por chat para suporte ao cliente em 15% em 6 meses usando um chatbot de IA".

Para avançar em direção às suas metas de negócios e medir o retorno do investimento (ROI), defina KPIs para as seguintes categorias de métricas:

  • Custos de treinamento, inferência, armazenamento e recursos de rede, incluindo custos unitários específicos (como o custo por inferência, ponto de dados ou tarefa). Essas métricas ajudam você a ter insights sobre oportunidades de eficiência e otimização de custos. É possível acompanhar esses custos usando os relatórios do Cloud Billing e os painéis do Cloud Monitoring.
  • Métricas de valor comercial, como crescimento da receita, economia de custos, satisfação do cliente, eficiência, precisão e adoção. É possível acompanhar essas métricas usando a análise do BigQuery e os painéis do Looker.
  • Métricas específicas do setor, como:

    • Setor de varejo: medir o aumento de receita e o churn
    • Setor de saúde: medir o tempo e os resultados dos pacientes
    • Setor financeiro: medir a redução de fraudes
  • Métricas específicas do projeto. É possível acompanhar essas métricas usando os Experimentos da Vertex AI e a avaliação.

    • IA preditiva: medir acurácia e precisão
    • IA generativa: medir a adoção, a satisfação e a qualidade do conteúdo
    • IA de visão computacional: medir a acurácia

Promover uma cultura de conscientização sobre custos e otimização contínua

Adote os princípios de FinOps para garantir que cada projeto de IA e ML tenha custos estimados e maneiras de medir e acompanhar os custos reais ao longo do ciclo de vida. Garanta que os custos e benefícios comerciais dos seus projetos tenham proprietários atribuídos e responsabilidade clara.

Para mais informações, consulte Promover uma cultura de conscientização de custos no pilar de otimização de custos do Google Cloud Well-Architected Framework.

Gerar valor e otimização contínua com iteração e feedback

Mapeie seus aplicativos de IA e ML diretamente para as metas de negócios e meça o ROI.

Para validar suas hipóteses de ROI, comece com projetos piloto e use o seguinte ciclo de otimização iterativa:

  1. Monitore continuamente e analise dados: acompanhe KPIs e custos para identificar desvios e oportunidades de otimização.
  2. Faça ajustes orientados por dados: otimize estratégias, modelos, infraestrutura e alocação de recursos com base em insights de dados.
  3. Refine de forma iterativa: adapte os objetivos de negócios e os KPIs com base no que você aprendeu e nas necessidades comerciais em evolução. Essa iteração ajuda você a manter a relevância e o alinhamento estratégico.
  4. Estabeleça um ciclo de feedback: analise a performance, os custos e o valor com as partes interessadas para informar a otimização contínua e o planejamento de projetos futuros.

Gerenciar dados de faturamento com o Cloud Billing e rótulos

Para otimizar os custos de maneira eficaz, é preciso ter visibilidade da origem de cada elemento. As recomendações nesta seção podem ajudar você a usar ferramentas do Google Cloud para receber insights detalhados sobre os custos de IA e ML. Também é possível atribuir custos a projetos, equipes e atividades específicas de IA e ML. Esses insights preparam o terreno para a otimização de custos.

Organizar e rotular recursos do Google Cloud

  • Estruture seus projetos e recursos em uma hierarquia que reflita sua estrutura organizacional e seus fluxos de trabalho de IA e ML. Para rastrear e analisar custos em diferentes níveis, organize seus recursos do Google Cloud usando organizações, pastas e projetos. Para mais informações, consulte Decidir uma hierarquia de recursos para sua Google Cloud zona de destino.
  • Aplique rótulos significativos aos recursos. É possível usar rótulos que indicam o projeto, a equipe, o ambiente, o nome do modelo, o conjunto de dados, o caso de uso e os requisitos de performance. Os rótulos oferecem um contexto valioso para seus dados de faturamento e permitem uma análise granular de custos.
  • Mantenha a consistência nas convenções de rotulagem em todos os seus projetos de IA e ML. Convenções de rotulagem consistentes garantem que os dados de faturamento sejam organizados e possam ser analisados com facilidade.
  • Para facilitar a análise e a geração de relatórios detalhados, exporte os dados de faturamento para o BigQuery. O BigQuery tem recursos de consulta avançados que permitem analisar os dados de faturamento para entender seus custos.
  • Para agregar custos por rótulos, projetos ou períodos específicos, você pode escrever consultas SQL personalizadas no BigQuery. Com essas consultas, é possível atribuir custos a atividades específicas de IA e ML, como treinamento de modelos, ajuste de hiperparâmetros ou inferência.
  • Para identificar anomalias de custo ou picos inesperados de gastos, use os recursos analíticos do BigQuery. Essa abordagem pode ajudar você a detectar possíveis problemas ou ineficiências nas suas cargas de trabalho de IA e ML.
  • Para identificar e gerenciar custos inesperados, use o painel de detecção de anomalias no Cloud Billing.
  • Para distribuir custos entre diferentes equipes ou departamentos com base no uso de recursos, use o recurso de alocação de custos do Google Cloud. A alocação de custos promove a responsabilidade e a transparência.
  • Para ter insights sobre padrões de gastos, analise os relatórios do Cloud Billing predefinidos. É possível filtrar e personalizar esses relatórios para se concentrar em projetos ou serviços específicos de IA e ML.

Monitore recursos continuamente com painéis, alertas e relatórios

Para criar uma maneira escalonável e resiliente de acompanhar os custos, você precisa de monitoramento e relatórios contínuos. Painéis, alertas e relatórios são a base para um acompanhamento de custos eficaz. Com essa base, você mantém acesso constante às informações de custo, identifica áreas de otimização e garante o alinhamento entre metas de negócios e custos.

Criar um sistema de relatórios

Crie relatórios programados e compartilhe-os com as partes interessadas relevantes.

Use o Cloud Monitoring para coletar métricas de várias fontes, incluindo seus aplicativos, infraestrutura e Google Cloud serviços como Compute Engine, Google Kubernetes Engine (GKE) e funções do Cloud Run. Para visualizar métricas e registros em tempo real, use o painel predefinido do Cloud Monitoring ou crie painéis personalizados. Com os painéis personalizados, você define e adiciona métricas para acompanhar aspectos específicos dos seus sistemas, como performance do modelo, chamadas de API ou KPIs de negócios.

Use o Cloud Logging para coleta e armazenamento centralizados de registros dos seus aplicativos, sistemas e Google Cloud serviços. Use os registros para as seguintes finalidades:

  • Acompanhe os custos e a utilização de recursos como CPU, memória, armazenamento e rede.
  • Identifique casos de provisionamento excessivo (em que os recursos não são totalmente utilizados) e insuficiente (em que há recursos insuficientes). O provisionamento em excesso resulta em custos desnecessários. O provisionamento insuficiente diminui os tempos de treinamento e pode causar problemas de desempenho.
  • Identifique recursos inativos ou subutilizados, como VMs e GPUs, e tome medidas para encerrá-los ou redimensioná-los e otimizar os custos.
  • Identifique picos de custo para detectar aumentos repentinos e inesperados no uso de recursos ou nos custos.

Use o Looker ou o Looker Studio para criar painéis e relatórios interativos. Conecte os painéis e relatórios a várias fontes de dados, incluindo o BigQuery e o Cloud Monitoring.

Definir limites de alerta com base nos principais KPIs

Para seus KPIs, determine os limites que devem acionar alertas. Limiares de alerta significativos podem ajudar a evitar a fadiga de alerta. Crie políticas de alertas no Cloud Monitoring para receber notificações relacionadas aos seus KPIs. Por exemplo, você pode receber notificações quando a acurácia cair abaixo de um determinado limite ou quando a latência exceder um limite definido. Os alertas baseados em dados de registros podem notificar você sobre possíveis problemas de custo em tempo real. Com esses alertas, você pode tomar medidas corretivas imediatamente e evitar mais perdas financeiras.

Otimizar a alocação de recursos

Para alcançar a eficiência de custos das cargas de trabalho de IA e ML no Google Cloud, é necessário otimizar a alocação de recursos. Para evitar despesas desnecessárias e garantir que as cargas de trabalho tenham os recursos necessários para um desempenho ideal, alinhe a alocação de recursos às necessidades delas.

Para otimizar a alocação de recursos de nuvem para cargas de trabalho de IA e ML, considere as seguintes recomendações.

Use o escalonamento automático para ajustar os recursos dinamicamente

Use serviços do Google Cloud que oferecem suporte ao escalonamento automático, que ajusta automaticamente a alocação de recursos para corresponder à demanda atual. O escalonamento automático oferece os seguintes benefícios:

  • Otimização de custos e desempenho: você evita pagar por recursos ociosos. Ao mesmo tempo, o escalonamento automático garante que seus sistemas tenham os recursos necessários para funcionar de maneira ideal, mesmo com carga máxima.
  • Mais eficiência: sua equipe fica livre para se concentrar em outras tarefas.
  • Maior agilidade: você pode responder rapidamente às mudanças na demanda e manter a alta disponibilidade dos seus aplicativos.

A tabela a seguir resume as técnicas que podem ser usadas para implementar o escalonamento automático em diferentes estágios dos seus projetos de IA.

Fase Técnicas de escalonamento automático
Treinamento
  • Use serviços gerenciados, como a Vertex AI ou o GKE, que oferecem recursos integrados de escalonamento automático para jobs de treinamento.
  • Configure políticas de escalonamento automático para escalonar o número de instâncias de treinamento com base em métricas como utilização da CPU, uso de memória e tamanho da fila de jobs.
  • Use métricas de escalonamento personalizadas para ajustar o comportamento do escalonamento automático das suas cargas de trabalho específicas.
Inferência
  • Implante seus modelos em plataformas escalonáveis, como Inferência da Vertex AI, GPUs no GKE ou TPUs no GKE.
  • Use recursos de escalonamento automático para ajustar o número de réplicas com base em métricas como taxa de solicitação, latência e utilização de recursos.
  • Implemente o balanceamento de carga para distribuir o tráfego de maneira uniforme entre as réplicas e garantir a alta disponibilidade.

Comece com modelos e conjuntos de dados pequenos

Para reduzir custos, teste hipóteses de ML em pequena escala sempre que possível e use uma abordagem iterativa. Essa abordagem, com modelos e conjuntos de dados menores, oferece os seguintes benefícios:

  • Redução de custos desde o início: menos poder de computação, armazenamento e tempo de processamento podem resultar em custos menores durante as fases iniciais de experimentação e desenvolvimento.
  • Iteração mais rápida: menos tempo de treinamento é necessário, o que permite iterar mais rápido, explorar abordagens alternativas e identificar direções promissoras com mais eficiência.
  • Complexidade reduzida: depuração, análise e interpretação mais simples dos resultados, o que leva a ciclos de desenvolvimento mais rápidos.
  • Uso eficiente de recursos: menor chance de provisionamento excessivo de recursos. Você provisiona apenas os recursos necessários para a carga de trabalho atual.

Considere as seguintes recomendações:

  • Use dados de amostra primeiro: treine seus modelos em um subconjunto representativo dos seus dados. Essa abordagem permite avaliar a performance do modelo e identificar possíveis problemas sem processar todo o conjunto de dados.
  • Experimente usando notebooks: comece com instâncias menores e dimensione conforme necessário. É possível usar o Vertex AI Workbench, um ambiente gerenciado de notebook do Jupyter adequado para experimentos com diferentes arquiteturas de modelos e conjuntos de dados.
  • Comece com modelos mais simples ou pré-treinados: use o Model Garden da Vertex AI para descobrir e conhecer os modelos pré-treinados. Esses modelos exigem menos recursos computacionais. Aumente gradualmente a complexidade conforme necessário com base nos requisitos de performance.

    • Use modelos pré-treinados para tarefas como classificação de imagens e processamento de linguagem natural. Para economizar nos custos de treinamento, ajuste os modelos em conjuntos de dados menores inicialmente.
    • Use o BigQuery ML para dados estruturados. Com o BigQuery ML, é possível criar e implantar modelos diretamente no BigQuery. Essa abordagem pode ser econômica para testes iniciais, porque você pode aproveitar o modelo de preços de pagamento por consulta do BigQuery.
  • Escalonar para otimizar recursos: use a infraestrutura flexível do Google Cloudpara escalonar recursos conforme necessário. Comece com instâncias menores e ajuste o tamanho ou o número delas quando necessário.

Descobrir requisitos de recursos com experimentos

Os requisitos de recursos para cargas de trabalho de IA e ML podem variar muito. Para otimizar a alocação de recursos e os custos, é necessário entender as necessidades específicas das cargas de trabalho por meio de testes sistemáticos. Para identificar a configuração mais eficiente para seus modelos, teste diferentes configurações e analise a performance delas. Em seguida, com base nos requisitos, dimensione os recursos usados para treinamento e disponibilização.

Recomendamos a seguinte abordagem para experimentos:

  1. Comece com um valor de referência: comece com uma configuração de referência com base nas estimativas iniciais dos requisitos de carga de trabalho. Para criar um valor de referência, use o estimador de custos para novas cargas de trabalho ou um relatório de faturamento atual. Para mais informações, consulte Descubra o custo real da IA empresarial no Google Cloud.
  2. Entenda suas cotas: antes de iniciar experimentos extensivos, familiarize-se com as cotas do Google Cloud projeto para os recursos e as APIs que você planeja usar. As cotas determinam o intervalo de configurações que você pode testar de forma realista. Ao se familiarizar com as cotas, você pode trabalhar dentro dos limites de recursos disponíveis durante a fase de experimentos.
  3. Teste de forma sistemática: ajuste parâmetros como o número de CPUs, a quantidade de memória, o número e o tipo de GPUs e TPUs e a capacidade de armazenamento. Com o treinamento da Vertex AI e as previsões da Vertex AI, você pode testar diferentes tipos e configurações de máquinas.
  4. Monitore a utilização, o custo e o desempenho: acompanhe a utilização de recursos, o custo e as principais métricas de desempenho, como tempo de treinamento, latência de inferência e acurácia do modelo, para cada configuração com que você faz testes.

    • Para acompanhar a utilização de recursos e as métricas de desempenho, use o console da Vertex AI.
    • Para coletar e analisar métricas de desempenho detalhadas, use o Cloud Monitoring.
    • Para conferir os custos, use os relatórios do Cloud Billing e os painéis do Cloud Monitoring.
    • Para identificar gargalos de desempenho nos seus modelos e otimizar a utilização de recursos, use ferramentas de criação de perfil como o Vertex AI TensorBoard.
  5. Analisar custos: compare o custo e o desempenho de cada configuração para identificar a opção mais econômica.

  6. Estabeleça metas de melhoria e limites de recursos com base nas cotas: defina limites para quando o escalonamento começa a gerar retornos decrescentes na performance, como redução mínima no tempo de treinamento ou latência para um aumento significativo de custo. Considere as cotas do projeto ao definir esses limites. Determine o ponto em que o custo e as possíveis implicações de cota de um escalonamento adicional não são mais justificados pelos ganhos de performance.

  7. Refine de forma iterativa: repita o processo de experimentação com configurações refinadas com base nas suas descobertas. Sempre verifique se o uso de recursos permanece dentro das cotas alocadas e está alinhado aos limites de custo-benefício estabelecidos.

Use o MLOps para reduzir ineficiências

À medida que as organizações usam cada vez mais o ML para impulsionar a inovação e a eficiência, gerenciar o ciclo de vida do ML de maneira eficaz se torna fundamental. As operações de ML (MLOps) são um conjunto de práticas que automatizam e simplificam o ciclo de vida de ML, desde o desenvolvimento de modelos até a implantação e o monitoramento.

Alinhar MLOps com fatores de custo

Para aproveitar o MLOps e ter eficiência de custos, identifique os principais fatores de custo no ciclo de vida de ML. Em seguida, adote e implemente práticas de MLOps alinhadas aos fatores de custo. Priorize e adote os recursos de MLOps que abordam os fatores de custo mais impactantes. Essa abordagem ajuda a garantir um caminho gerenciável e bem-sucedido para uma economia de custos significativa.

Implementar MLOps para otimização de custos

Confira a seguir algumas práticas comuns de MLOps que ajudam a reduzir custos:

  • Controle de versões: ferramentas como o Git ajudam a rastrear versões de código, dados e modelos. O controle de versões garante a reprodutibilidade, facilita a colaboração e evita retrabalhos dispendiosos que podem ser causados por problemas de controle de versões.
  • Integração e entrega contínua (CI/CD): o Cloud Build e o Artifact Registry permitem implementar pipelines de CI/CD para automatizar a criação, o teste e a implantação dos seus modelos de ML. Os pipelines de CI/CD garantem o uso eficiente de recursos e minimizam os custos associados a intervenções manuais.
  • Observabilidade: o Cloud Monitoring e o Cloud Logging permitem acompanhar o desempenho do modelo em produção, identificar problemas e acionar alertas para intervenção proativa. A capacidade de observação permite manter a acurácia do modelo, otimizar a alocação de recursos e evitar inatividade ou degradação de desempenho caras.
  • Retreinamento de modelos: o Vertex AI Pipelines simplifica os processos de retreinamento periódico ou quando o desempenho diminui. Ao usar o Vertex AI Pipelines para retreinamento, você garante que seus modelos permaneçam precisos e eficientes, o que pode evitar o consumo desnecessário de recursos e manter o desempenho ideal.
  • Teste e avaliação automatizados: a Vertex AI ajuda a acelerar e padronizar a avaliação de modelos. Implemente testes automatizados durante todo o ciclo de vida de ML para garantir a qualidade e a confiabilidade dos seus modelos. Esses testes ajudam a detectar erros no início, evitam problemas caros na produção e reduzem a necessidade de testes manuais extensivos.

Para mais informações, consulte MLOps: pipelines de entrega contínua e automação em machine learning.

Aplicar práticas de governança e gerenciamento de dados

Práticas eficazes de gerenciamento e governança de dados são essenciais para a otimização de custos. Dados bem organizados podem incentivar as equipes a reutilizar conjuntos de dados, evitar duplicações desnecessárias e reduzir o esforço para obter dados de alta qualidade. Ao gerenciar os dados de forma proativa, é possível reduzir os custos de armazenamento, melhorar a qualidade dos dados e garantir que seus modelos de ML sejam treinados com os dados mais relevantes e valiosos.

Para implementar práticas de gerenciamento e governança de dados, considere as seguintes recomendações.

Estabelecer e adotar uma estrutura de governança de dados

A crescente importância da IA e do ML transformou os dados no recurso mais valioso para organizações que estão passando por uma transformação digital. Uma estrutura robusta para governança de dados é um requisito crucial para gerenciar cargas de trabalho de IA e ML de maneira econômica em grande escala. Um framework de governança de dados com políticas, procedimentos e funções claramente definidos oferece uma abordagem estruturada para gerenciar dados durante todo o ciclo de vida. Essa estrutura ajuda a melhorar a qualidade dos dados, aumentar a segurança, melhorar a utilização e reduzir a redundância.

Estabelecer uma estrutura de governança de dados

Há muitos frameworks preexistentes para governança de dados, como os publicados pelo EDM Council (em inglês), com opções disponíveis para diferentes setores e tamanhos de organização. Escolha e adapte um framework que se alinhe às suas necessidades e prioridades específicas.

Implementar a estrutura de governança de dados

Google Cloud oferece os seguintes serviços e ferramentas para ajudar você a implementar um framework de governança de dados robusto:

  • O Dataplex Universal Catalog é uma malha de dados inteligente que ajuda a unificar dados distribuídos e automatizar a governança de dados sem precisar consolidar conjuntos de dados em um só lugar. Isso ajuda a reduzir o custo de distribuição e manutenção de dados, facilita a descoberta de dados e promove a reutilização.

  • O Dataplex Universal Catalog também é um serviço de gerenciamento de metadados totalmente gerenciado e escalonável. O catálogo oferece uma base que garante que os recursos de dados sejam acessíveis e reutilizáveis.

    • Os metadados das fontes Google Cloud compatíveis são ingeridos automaticamente no catálogo universal. Para fontes de dados fora do Google Cloud, crie entradas personalizadas.
    • Para melhorar a capacidade de descoberta e o gerenciamento de recursos de dados, enriqueça os metadados técnicos com metadados comerciais usando aspectos.
    • Verifique se os cientistas de dados e profissionais de ML têm permissões suficientes para acessar o Dataplex Universal Catalog e usar a função de pesquisa.
  • O compartilhamento do BigQuery permite trocar recursos de dados de maneira eficiente e segura entre suas organizações para enfrentar desafios de confiabilidade e custo de dados.

    • Configure trocas de dados e garanta que os recursos de dados selecionados possam ser vistos como listagens.
    • Use data clean rooms para gerenciar com segurança o acesso a dados sensíveis e fazer parcerias eficientes com equipes e organizações externas em projetos de IA e ML.
    • Verifique se os cientistas de dados e os profissionais de ML têm permissões suficientes para visualizar e publicar conjuntos de dados no compartilhamento do BigQuery.

Tornar conjuntos de dados e recursos reutilizáveis em todo o ciclo de vida de ML

Para ter eficiência e benefícios de custo significativos, reutilize conjuntos de dados e recursos em vários projetos de ML. Ao evitar esforços redundantes de engenharia de dados e desenvolvimento de recursos, sua organização pode acelerar o desenvolvimento de modelos, reduzir os custos de infraestrutura e liberar recursos valiosos para outras tarefas críticas.

OGoogle Cloud oferece os seguintes serviços e ferramentas para ajudar você a reutilizar conjuntos de dados e recursos:

  • Os profissionais de dados e ML podem publicar produtos de dados para maximizar a reutilização entre as equipes. Os produtos de dados podem ser descobertos e usados pelo Catálogo Universal do Dataplex e pelo compartilhamento do BigQuery.
  • Para conjuntos de dados tabulares e estruturados, use o Feature Store da Vertex AI para promover a reutilização e simplificar o gerenciamento de recursos pelo BigQuery.
  • É possível armazenar dados não estruturados no Cloud Storage e governar os dados usando tabelas de objetos e URLs assinados do BigQuery.
  • É possível gerenciar embeddings de vetor incluindo metadados nos índices da Pesquisa de vetor.

Automatizar e simplificar com MLOps

Um dos principais benefícios da adoção de práticas de MLOps é a redução dos custos de tecnologia e pessoal. Automation ajuda a evitar a duplicação de atividades de ML e reduz a carga de trabalho de cientistas de dados e engenheiros de ML.

Para automatizar e simplificar o desenvolvimento de ML com MLOps, considere as seguintes recomendações.

Automatizar e padronizar a coleta e o tratamento de dados

Para reduzir o esforço e o tempo de desenvolvimento de ML, automatize e padronize suas tecnologias de coleta e tratamento de dados.

Automatizar a coleta e o tratamento de dados

Esta seção resume os produtos, ferramentas e técnicas que podem ser usados para automatizar a coleta e o tratamento de dados.

Identifique e escolha as fontes de dados relevantes para suas tarefas de IA e ML:

Para cada uma das suas fontes de dados, escolha uma ferramenta de ingestão:

  • Dataflow: para processamento em lote e de stream de dados de várias fontes, com integração de componentes de ML. Para uma arquitetura orientada a eventos, é possível combinar o Dataflow com o Eventarc para processar dados de ML com eficiência. Para melhorar a eficiência dos jobs de MLOps e ML, use recursos de GPU e ajuste correto.
  • Funções do Cloud Run: para ingestão de dados baseada em eventos que é acionada por mudanças em fontes de dados para aplicativos em tempo real.
  • BigQuery: para ingestão de dados tabulares clássicos com acesso frequente.

Escolha ferramentas para transformação e carregamento de dados:

  • Use ferramentas como o Dataflow ou o Dataform para automatizar transformações de dados, como escalonamento de recursos, codificação de variáveis categóricas e criação de novos recursos em lote, streaming ou tempo real. As ferramentas selecionadas dependem dos seus requisitos e dos serviços escolhidos.
  • Use o Feature Store da Vertex AI para automatizar a criação e o gerenciamento de atributos. Você pode centralizar recursos para reutilização em diferentes modelos e projetos.

Padronizar a coleta e o tratamento de dados

Para descobrir, entender e gerenciar recursos de dados, use serviços de gerenciamento de metadados, como o Dataplex Universal Catalog. Isso ajuda a padronizar as definições de dados e garantir a consistência em toda a organização.

Para aplicar a padronização e evitar o custo de manter várias implementações personalizadas, use pipelines de treinamento e orquestração automatizados. Para mais informações, consulte a próxima seção.

Automatizar pipelines de treinamento e reutilizar recursos atuais

Para aumentar a eficiência e a produtividade em MLOps, os pipelines de treinamento automatizados são cruciais. Google Cloud oferece um conjunto robusto de ferramentas e serviços para criar e implantar pipelines de treinamento, com uma forte ênfase na reutilização de recursos existentes. Os pipelines de treinamento automatizados ajudam a acelerar o desenvolvimento de modelos, garantir a consistência e reduzir o esforço redundante.

Automatizar pipelines de treinamento

A tabela a seguir descreve os serviços e recursos do Google Cloud que podem ser usados para automatizar as diferentes funções de um pipeline de treinamento.

Função Serviços e recursos doGoogle Cloud
Orquestração: defina fluxos de trabalho complexos de ML com várias etapas e dependências. É possível definir cada etapa como uma tarefa em contêineres separada, o que ajuda a gerenciar e escalonar tarefas individuais com facilidade.
  • Para criar e orquestrar pipelines, use o Vertex AI Pipelines ou o Kubeflow Pipelines. Essas ferramentas oferecem suporte à transformação simples de dados, treinamento e implantação de modelos e controle de versões de pipelines. Eles permitem definir dependências entre etapas, gerenciar o fluxo de dados e automatizar a execução de todo o fluxo de trabalho.
  • Para tarefas operacionais complexas com requisitos pesados de CI/CD e extração, transformação e carregamento (ETL), use o Cloud Composer. Se você preferir o Airflow para orquestração de dados, o Cloud Composer é um serviço gerenciado compatível criado com base no Airflow.
  • Para pipelines gerenciados fora do Vertex AI Pipelines, use o Workflows para tarefas focadas em infraestrutura, como iniciar e interromper VMs ou integrar com sistemas externos.
  • Para automatizar seu processo de CI/CD, use o Cloud Build com o Pub/Sub. É possível configurar notificações e gatilhos automáticos para quando um novo código for enviado ou quando um novo modelo precisar ser treinado.
  • Para uma solução totalmente gerenciada e escalonável de gerenciamento de pipelines, use o Cloud Data Fusion.
Controle de versões: rastreie e controle diferentes versões de pipelines e componentes para garantir a reprodutibilidade e a capacidade de auditoria. Armazene modelos de pipeline do Kubeflow em um repositório do Kubeflow Pipelines no Artifact Registry.
Reutilização: reutilize componentes e artefatos de pipeline atuais, como conjuntos de dados preparados e modelos treinados, para acelerar o desenvolvimento. Armazene os modelos de pipeline no Cloud Storage e compartilhe-os com toda a organização.
Monitoramento: monitore a execução do pipeline para identificar e resolver problemas. Use o Cloud Logging e o Cloud Monitoring. Para mais informações, consulte Monitorar recursos continuamente com painéis, alertas e relatórios.

Ampliar a reutilização além dos pipelines

Procure oportunidades de expandir a reutilização além dos pipelines de treinamento. Confira a seguir exemplos de recursos do Google Cloud que permitem reutilizar recursos, conjuntos de dados, modelos e código de ML.

  • O Feature Store da Vertex AI oferece um repositório centralizado para organizar, armazenar e disponibilizar atributos de ML. Ele permite reutilizar recursos em diferentes projetos e modelos, o que pode melhorar a consistência e reduzir o esforço da engenharia de recursos. É possível armazenar, compartilhar e acessar recursos para casos de uso on-line e off-line.
  • Com os conjuntos de dados da Vertex AI, as equipes podem criar e gerenciar conjuntos de dados de forma centralizada. Assim, sua organização maximiza a reutilização e reduz a duplicação de dados. Suas equipes podem pesquisar e descobrir os conjuntos de dados usando o Dataplex Universal Catalog.
  • Com o Vertex AI Model Registry, é possível armazenar, gerenciar e implantar seus modelos treinados. Com o Model Registry, é possível reutilizar os modelos em pipelines subsequentes ou para previsão on-line, o que ajuda a aproveitar os esforços de treinamento anteriores.
  • Com os contêineres personalizados, é possível empacotar o código de treinamento e as dependências em contêineres e armazená-los no Artifact Registry. Com eles, é possível fornecer ambientes de treinamento consistentes e reproduzíveis em diferentes pipelines e projetos.

Usar serviços Google Cloud para avaliação e ajuste de modelos

OGoogle Cloud oferece um conjunto de ferramentas e serviços eficientes para simplificar e automatizar a avaliação e o ajuste de modelos. Essas ferramentas e serviços podem ajudar você a reduzir o tempo de produção e os recursos necessários para treinamento e monitoramento contínuos. Ao usar esses serviços, suas equipes de IA e ML podem melhorar a performance do modelo com menos iterações caras, alcançar resultados mais rápidos e minimizar o desperdício de recursos de computação.

Usar avaliação e experimentação de modelos eficientes em termos de recursos

Comece um projeto de IA com experimentos antes de escalonar verticalmente sua solução. Nos seus experimentos, rastreie vários metadados, como versão do conjunto de dados, parâmetros e tipo de modelo. Para mais reprodutibilidade e comparação dos resultados, use o rastreamento de metadados além do controle de versões do código, semelhante aos recursos do Git. Para evitar a perda de informações ou a implantação da versão errada em produção, use os Experimentos da Vertex AI antes de implementar implantações ou jobs de treinamento em grande escala.

Com os experimentos da Vertex AI, é possível fazer o seguinte:

  • Simplifique e automatize o rastreamento e a descoberta de metadados com uma UI e uma API fáceis de usar para cargas de trabalho prontas para produção.
  • Analise as métricas de desempenho do modelo e compare as métricas de vários modelos.

Depois que o modelo for treinado, monitore continuamente o desempenho e a deriva de dados ao longo do tempo para os dados recebidos. Para simplificar esse processo, use o Vertex AI Model Monitoring para acessar diretamente os modelos criados no Model Registry. O Model Monitoring também automatiza o monitoramento de dados e resultados com previsões on-line e em lote. É possível exportar os resultados para o BigQuery para análise e acompanhamento adicionais.

Escolher as estratégias ideais para automatizar o treinamento

Para o ajuste de hiperparâmetros, recomendamos as seguintes abordagens:

  • Para automatizar o processo de encontrar os hiperparâmetros ideais para seus modelos, use o ajuste de hiperparâmetros da Vertex AI. A Vertex AI usa algoritmos avançados para explorar o espaço de hiperparâmetros e identificar a melhor configuração.
  • Para um ajuste eficiente de hiperparâmetros, use técnicas de otimização bayesiana, principalmente quando você trabalha com modelos complexos e grandes conjuntos de dados.

Para treinamento distribuído, recomendamos as seguintes abordagens:

  • Para grandes conjuntos de dados e modelos complexos, use a infraestrutura de treinamento distribuído da Vertex AI. Essa abordagem permite treinar modelos em várias máquinas, o que ajuda a reduzir significativamente o tempo de treinamento e os custos associados. Use ferramentas como:

  • Escolha frameworks de ML otimizados, como Keras e PyTorch, que oferecem suporte ao treinamento distribuído e ao uso eficiente de recursos.

Usar a IA explicável

É fundamental entender por que um modelo toma determinadas decisões e identificar possíveis vieses ou áreas de melhoria. Use a Vertex Explainable AI para ter insights sobre as previsões do seu modelo. A Vertex Explainable AI oferece uma maneira de automatizar explicações baseadas em atributos e exemplos vinculadas aos seus experimentos da Vertex AI.

  • Baseadas em recursos: para entender quais recursos são mais influentes nas previsões do seu modelo, analise as atribuições de recursos. Essa compreensão pode orientar os esforços de engenharia de atributos e melhorar a capacidade de interpretação do modelo.
  • Baseada em exemplos: para retornar uma lista de exemplos, geralmente do conjunto de treinamento, que são mais semelhantes à entrada, a Vertex AI usa a pesquisa de vizinhos mais próximos. Como entradas semelhantes geralmente geram previsões semelhantes, é possível usar essas explicações para explorar e explicar o comportamento de um modelo.

Usar serviços gerenciados e modelos pré-treinados

Adote uma abordagem incremental para seleção e desenvolvimento de modelos. Essa abordagem ajuda a evitar custos excessivos associados a começar do zero a cada vez. Para controlar os custos, use frameworks de ML, serviços gerenciados e modelos pré-treinados.

Para aproveitar ao máximo os serviços gerenciados e os modelos pré-treinados, considere as recomendações a seguir.

Use notebooks para exploração e experimentos

Os ambientes de notebooks são cruciais para testes de ML econômicos. Um notebook oferece um espaço interativo e colaborativo para que cientistas de dados e engenheiros explorem dados, desenvolvam modelos, compartilhem conhecimento e iterem de maneira eficiente. A colaboração e o compartilhamento de conhecimento por meio de notebooks aceleram significativamente o desenvolvimento, as revisões de código e a transferência de conhecimento. Os notebooks ajudam a otimizar fluxos de trabalho e reduzir esforços duplicados.

Em vez de adquirir e gerenciar hardware caro para seu ambiente de desenvolvimento, use a infraestrutura escalonável e sob demanda do Vertex AI Workbench e do Colab Enterprise.

  • O Vertex AI Workbench é um ambiente de desenvolvimento de notebook do Jupyter para todo o fluxo de trabalho de ciência de dados. É possível interagir com a Vertex AI e outros serviços do Google Cloud em um notebook Jupyter de uma instância. As integrações e os recursos do Vertex AI Workbench ajudam você a fazer o seguinte:

    • Acessar e analisar dados em um notebook do Jupyter usando integrações do BigQuery e do Cloud Storage.
    • Automatizar atualizações recorrentes de um modelo usando execuções programadas de código que são executadas na Vertex AI.
    • Processe dados rapidamente executando um notebook em um cluster do Dataproc.
    • executar um notebook como uma etapa em um pipeline usando o Vertex AI Pipelines.
  • O Colab Enterprise é um ambiente de notebook gerenciado e colaborativo com os recursos de segurança e compliance do Google Cloud. O Colab Enterprise é ideal se as prioridades do seu projeto incluem desenvolvimento colaborativo e redução do esforço para gerenciar a infraestrutura. O Colab Enterprise se integra aos serviços doGoogle Cloud e à assistência com tecnologia de IA que usa o Gemini. Com o Colab Enterprise, você pode:

    • Trabalhe em notebooks sem precisar gerenciar a infraestrutura.
    • Compartilhe um notebook com um único usuário, grupo do Google ou domínio do Google Workspace. É possível controlar o acesso aos notebooks usando o Identity and Access Management (IAM).
    • Interaja com recursos integrados à Vertex AI e ao BigQuery.

Para rastrear mudanças e reverter para versões anteriores quando necessário, você pode integrar seus notebooks a ferramentas de controle de versões como o Git.

Comece com modelos atuais e pré-treinados

Treinar modelos complexos do zero, especialmente modelos de aprendizado profundo, exige muitos recursos computacionais e tempo. Para acelerar a seleção e o desenvolvimento de modelos, comece com modelos atuais e pré-treinados. Esses modelos, treinados com grandes conjuntos de dados, eliminam a necessidade de treinar modelos do zero e reduzem significativamente o custo e o tempo de desenvolvimento.

Reduzir os custos de treinamento e desenvolvimento

Selecione um modelo ou API apropriada para cada tarefa de ML e combine-os para criar um processo de desenvolvimento de ML de ponta a ponta.

O Vertex AI Model Garden oferece uma vasta coleção de modelos pré-treinados para tarefas como classificação de imagens, detecção de objetos e processamento de linguagem natural. Os modelos são agrupados nas seguintes categorias:

OGoogle Cloud fornece APIs de IA e ML que permitem aos desenvolvedores integrar recursos avançados de IA aos aplicativos sem precisar criar modelos do zero.

  • A API Cloud Vision permite extrair insights de imagens. Essa API é útil para aplicativos como análise de imagens, moderação de conteúdo e entrada de dados automatizada.
  • A API Cloud Natural Language permite analisar textos para entender a estrutura e o significado deles. Essa API é útil para tarefas como análise de feedback dos clientes, categorização de conteúdo e compreensão das tendências das redes sociais.
  • A API Speech-to-Text converte áudio em texto. Essa API oferece suporte a vários idiomas e dialetos.
  • A API Video Intelligence analisa o conteúdo de vídeo para identificar objetos, cenas e ações. Use essa API para análise de conteúdo de vídeo, moderação de conteúdo e pesquisa de vídeo.
  • A API Document AI processa documentos para extrair, classificar e entender dados. Essa API ajuda a automatizar fluxos de trabalho de processamento de documentos.
  • A API Dialogflow permite a criação de interfaces de conversa, como chatbots e assistentes de voz. É possível usar essa API para criar bots de atendimento ao cliente e assistentes virtuais.
  • A API Gemini na Vertex AI oferece acesso ao modelo de IA mais eficiente e de uso geral do Google.

Reduzir os custos de ajuste

Para reduzir a necessidade de muitos dados e tempo de computação, ajuste seus modelos pré-treinados em conjuntos de dados específicos. Recomendamos as seguintes abordagens:

  • Aprendizado por transferência: use o conhecimento de um modelo pré-treinado para uma nova tarefa, em vez de começar do zero. Essa abordagem exige menos dados e tempo de computação, o que ajuda a reduzir os custos.
  • Ajuste de adaptadores (ajuste com eficiência de parâmetros): adapte modelos a novas tarefas ou domínios sem ajuste fino completo. Essa abordagem exige muito menos recursos computacionais e um conjunto de dados menor.
  • Ajuste supervisionado: adapta o comportamento do modelo com um conjunto de dados rotulado. Essa abordagem simplifica o gerenciamento da infraestrutura subjacente e o esforço de desenvolvimento necessário para um job de treinamento personalizado.

Conhecer e testar usando o Vertex AI Studio

O Vertex AI Studio permite testar, prototipar e implantar rapidamente aplicativos de IA generativa.

  • Integração com o Model Garden: oferece acesso rápido aos modelos mais recentes e permite implantá-los de maneira eficiente para economizar tempo e custos.
  • Acesso unificado a modelos especializados: consolida o acesso a uma ampla variedade de modelos e APIs pré-treinados, incluindo aqueles para chat, texto, mídia, tradução e fala. Esse acesso unificado pode ajudar você a reduzir o tempo gasto pesquisando e integrando serviços individuais.

Usar serviços gerenciados para treinar ou veicular modelos

Os serviços gerenciados podem ajudar a reduzir o custo do treinamento de modelo e simplificar o gerenciamento da infraestrutura, permitindo que você se concentre no desenvolvimento e na otimização de modelos. Essa abordagem pode resultar em benefícios de custo significativos e maior eficiência.

Redução da sobrecarga operacional

Para reduzir a complexidade e o custo do gerenciamento de infraestrutura, use serviços gerenciados, como:

  • O treinamento da Vertex AI oferece um ambiente totalmente gerenciado para treinar seus modelos em escala. É possível escolher entre vários contêineres pré-criados com frameworks de ML conhecidos ou usar seus próprios contêineres personalizados.O Google Cloud processa o provisionamento, o escalonamento e a manutenção da infraestrutura, reduzindo a sobrecarga operacional.
  • As previsões da Vertex AI processam o escalonamento da infraestrutura, o balanceamento de carga e o roteamento de solicitações. Você tem alta disponibilidade e desempenho sem intervenção manual.
  • O Ray na Vertex AI oferece um cluster do Ray totalmente gerenciado. É possível usar o cluster para executar cargas de trabalho de IA personalizadas complexas que realizam muitos cálculos (ajuste de hiperparâmetros, ajuste fino de modelos, treinamento de modelo distribuídos e aprendizado por reforço com feedback humano) sem precisar gerenciar sua própria infraestrutura.

Usar serviços gerenciados para otimizar a utilização de recursos

Para detalhes sobre o uso eficiente de recursos, consulte Otimizar a utilização de recursos.

Colaboradores

Autores:

  • Isaac Lo | Gerente de desenvolvimento comercial de IA
  • Anastasia Prokaeva | Arquiteta de soluções de campo, IA generativa
  • Amy Southwood | Consultora de soluções técnicas, análise de dados e IA

Outros colaboradores:

Perspectiva de IA e ML: otimização de performance

Este documento do Well-Architected Framework: perspectiva de IA e ML fornece uma visão geral dos princípios e recomendações para ajudar você a otimizar a performance das suas cargas de trabalho de IA e ML no Google Cloud. As recomendações neste documento estão alinhadas ao pilar de otimização de performance do Google Cloud Well-Architected Framework.

Os sistemas de IA e ML oferecem novas funcionalidades de automação e tomada de decisões para sua organização. O desempenho desses sistemas pode afetar diretamente os indicadores de negócios, como receita, custos e satisfação do cliente. Para aproveitar todo o potencial dos seus sistemas de IA e ML, é necessário otimizar a performance deles com base nas metas de negócios e nos requisitos técnicos. O processo de otimização de desempenho geralmente envolve algumas compensações. Por exemplo, uma escolha de design que oferece o desempenho necessário pode gerar custos mais altos. As recomendações neste documento priorizam a performance em vez de outras considerações, como custos.

Para otimizar a performance de IA e ML, é preciso tomar decisões sobre fatores como arquitetura, parâmetros e estratégia de treinamento do modelo. Ao tomar essas decisões, considere todo o ciclo de vida dos sistemas de IA e ML e o ambiente de implantação deles. Por exemplo, LLMs muito grandes podem ter alta performance em infraestruturas de treinamento massivas, mas podem não funcionar bem em ambientes com restrição de capacidade, como dispositivos móveis.

Transformar metas de negócios em objetivos de performance

Para tomar decisões arquitetônicas que otimizam a performance, comece com um conjunto claro de metas de negócios. Projete sistemas de IA e ML que ofereçam a performance técnica necessária para apoiar suas metas e prioridades de negócios. Suas equipes técnicas precisam entender o mapeamento entre os objetivos de performance e as metas de negócios.

Considere as seguintes recomendações:

  • Transforme objetivos de negócios em requisitos técnicos: transforme os objetivos de negócios dos seus sistemas de IA e ML em requisitos específicos de performance técnica e avalie os efeitos de não atender aos requisitos. Por exemplo, para um aplicativo que prevê o cancelamento de clientes, o modelo de ML precisa ter um bom desempenho em métricas padrão, como acurácia e recall, e o aplicativo precisa atender a requisitos operacionais, como baixa latência.
  • Monitore o desempenho em todas as etapas do ciclo de vida do modelo: durante a experimentação e o treinamento após a implantação do modelo, monitore seus indicadores principais de desempenho (KPIs) e observe desvios dos objetivos de negócios.
  • Automatize a avaliação para torná-la reproduzível e padronizada: com uma plataforma e uma metodologia padronizadas e comparáveis para avaliação de experimentos, seus engenheiros podem aumentar o ritmo de melhoria de performance.

Executar e acompanhar experimentos frequentes

Para transformar inovação e criatividade em melhorias de performance, você precisa de uma cultura e uma plataforma que apoiem a experimentação. A melhoria de performance é um processo contínuo porque as tecnologias de IA e ML estão em desenvolvimento constante e rápido. Para manter um processo rápido e iterativo, é necessário separar o espaço de experimentos das plataformas de treinamento e veiculação. É importante ter um processo de experimentação padronizado e eficiente.

Considere as seguintes recomendações:

  • Crie um ambiente de experimentação: as melhorias de performance exigem um ambiente dedicado, potente e interativo que ofereça suporte à experimentação e ao desenvolvimento colaborativo de pipelines de ML.
  • Incorpore a experimentação como uma cultura: faça experimentos antes de qualquer implantação de produção. Lance novas versões de forma iterativa e sempre colete dados de desempenho. Teste diferentes tipos de dados, transformações de recursos, algoritmos e hiperparâmetros.

Criar e automatizar serviços de treinamento e disponibilização

O treinamento e a disponibilização de modelos de IA são componentes principais dos seus serviços de IA. Você precisa de plataformas e práticas robustas que ofereçam suporte à criação, implantação e exibição rápidas e confiáveis de modelos de IA. Invista tempo e esforço para criar plataformas fundamentais para suas principais tarefas de treinamento e veiculação de IA. Essas plataformas fundamentais ajudam a reduzir o tempo e o esforço das equipes e a melhorar a qualidade dos resultados a médio e longo prazo.

Considere as seguintes recomendações:

  • Usar componentes especializados em IA de um serviço de treinamento: esses componentes incluem computação de alto desempenho e componentes de MLOps, como repositórios de recursos, registros de modelos, repositórios de metadados e serviços de avaliação de desempenho de modelos.
  • Use componentes especializados em IA de um serviço de previsão: esses componentes oferecem recursos escalonáveis e de alta performance, dão suporte ao monitoramento de recursos e permitem o monitoramento de desempenho do modelo. Para evitar e gerenciar a degradação de performance, implemente estratégias confiáveis de implantação e rollback.

Correlacionar opções de design com requisitos de performance

Ao fazer escolhas de design para melhorar a performance, avalie cuidadosamente se elas atendem aos requisitos da sua empresa ou são inúteis e contraproducentes. Para escolher a infraestrutura, os modelos ou as configurações adequadas, identifique os gargalos de desempenho e avalie como eles estão vinculados às suas medidas de performance. Por exemplo, mesmo em aceleradores de GPU muito potentes, as tarefas de treinamento podem ter gargalos de desempenho devido a problemas de E/S de dados da camada de armazenamento ou limitações de desempenho do próprio modelo.

Considere as seguintes recomendações:

  • Otimize o consumo de hardware com base nas metas de desempenho: para treinar e veicular modelos de ML que atendam aos seus requisitos de desempenho, é necessário otimizar a infraestrutura nas camadas de computação, armazenamento e rede. Você precisa medir e entender as variáveis que afetam suas metas de performance. Essas variáveis são diferentes para treinamento e inferência.
  • Foco em requisitos específicos da carga de trabalho: concentre seus esforços de otimização de desempenho nos requisitos exclusivos das cargas de trabalho de IA e ML. Confie em serviços gerenciados para o desempenho da infraestrutura subjacente.
  • Escolha estratégias de treinamento adequadas: vários modelos pré-treinados e de base estão disponíveis, e mais modelos desse tipo são lançados com frequência. Escolha uma estratégia de treinamento que possa oferecer a performance ideal para sua tarefa. Decida se você precisa criar seu próprio modelo, ajustar um modelo pré-treinado com seus dados ou usar uma API de modelo pré-treinado.
  • Reconheça que as estratégias de otimização de performance podem ter retornos decrescentes: quando uma estratégia específica de otimização de performance não oferece um valor comercial incremental mensurável, pare de usar essa estratégia.

Para inovar, resolver problemas e investigar questões de desempenho, estabeleça uma conexão clara entre as escolhas de design e os resultados de desempenho. Além da experimentação, é necessário registrar de forma confiável a linhagem dos seus recursos, implantações, saídas de modelo e as configurações e entradas que produziram as saídas.

Considere as seguintes recomendações:

  • Crie um sistema de linhagem de dados e modelos: todos os recursos implantados e as métricas de performance precisam ser vinculados aos dados, às configurações, ao código e às escolhas que resultaram nos sistemas implantados. Além disso, as saídas do modelo precisam estar vinculadas a versões específicas do modelo e a como elas foram produzidas.
  • Use ferramentas de explicabilidade para melhorar a performance do modelo: adote e padronize ferramentas e comparativos de mercado para exploração e explicabilidade do modelo. Essas ferramentas ajudam os engenheiros de ML a entender o comportamento do modelo e melhorar o desempenho ou remover vieses.

Colaboradores

Autores:

Outros colaboradores: