Perspectiva de IA e ML: confiabilidade

Last reviewed 2026-10-29 UTC

Este documento no Framework de arquitetura doGoogle Cloud : 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 mostra como integrar práticas avançadas de confiabilidade e observabilidade aos seus blueprints arquitetônicos. As recomendações neste documento estão alinhadas com o pilar de confiabilidade do Well-Architected Framework.

No cenário de IA e ML em rápida evolução, sistemas confiáveis são essenciais para garantir a satisfação do cliente e atingir as metas de negócios. Para atender às demandas exclusivas de ML preditivo e IA generativa, você precisa de sistemas de IA e ML que sejam robustos, confiáveis e adaptáveis. Para lidar com as complexidades das MLOps, do desenvolvimento à implantação e à melhoria contínua, é preciso usar uma abordagem que priorize a confiabilidade. O Google Cloud oferece uma infraestrutura de IA criada para esse fim, alinhada aos princípios de engenharia de confiabilidade do site (SRE) e que fornece uma base poderosa 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 confiáveis de IA e ML na nuvem exigem uma infraestrutura escalonável e altamente disponível. Esses sistemas têm demandas dinâmicas, necessidades de recursos diversas 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 nas 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 de alta disponibilidade, 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 às flutuações de demanda. Escalonar as cargas de trabalho de maneira eficaz ajuda a evitar tempo de inatividade, manter o desempenho e otimizar os custos.

Para escalonar automaticamente suas cargas de trabalho de IA e ML, use os seguintes produtos e recursos no 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 no uso da CPU, no paralelismo do pipeline e nos dados pendentes. É possível configurar parâmetros de escalonamento automático por meio de opções de pipeline ao iniciar jobs.
  • Jobs de treinamento: automatize o escalonamento de jobs de treinamento usando o treinamento personalizado da Gemini Enterprise Agent Platform. É possível definir especificações do 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 pontos de verificação, é possível reduzir os custos usando VMs spot.
  • Inferência on-line: para inferência on-line, use os endpoints da Agent Platform. Para ativar o escalonamento automático, configure a contagem mínima e máxima de réplicas. Especifique pelo menos duas réplicas para alta disponibilidade. A plataforma de agentes 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 de 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 clusters e o provisionamento automático de nós para ajustar a contagem de nós com base nas solicitações de recursos de pod pendentes, como CPU, memória, GPU e Cloud TPU. Use o Autoescalonador Horizontal de Pods (HPA) para implantações para definir políticas de escalonamento com base em métricas como uso 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 Cloud 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 as práticas recomendadas para escalonar automaticamente instâncias com 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 é escalonado 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 e cargas de trabalho de terceiros, como modelos quantizados usando o Ollama e inferência de LLM usando o vLLM.

Projetar para alta disponibilidade e tolerância a falhas

Para cargas de trabalho de IA e ML de nível de produção, é crucial garantir a operação contínua e a resiliência contra falhas. Para implementar a alta disponibilidade e a 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.

Implementar redundância para componentes críticos de IA e ML no Google Cloud. Veja 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 globalmente consistente e altamente disponível.
  • Configure réplicas de leitura do Cloud SQL para bancos de dados operacionais.
  • Verifique se os bancos de dados vetoriais para geração aumentada de 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, desempenho 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 Cloud TPU. Portanto, é crucial que você aplique o gerenciamento proativo de recursos e garanta a disponibilidade deles.

Planeje a capacidade com base em dados de monitoramento históricos, como taxas de utilização e capacidade de GPU ou Cloud TPU, do Cloud Monitoring e registros no Cloud Logging. Analise esses dados de telemetria usando o BigQuery ou o Data Studio e preveja a demanda futura de GPUs com base no crescimento ou em novos modelos. A análise de 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 ao aumento das demandas de carga de trabalho 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 Cloud TPU. Aumente as cotas de recursos conforme necessário.
    • Para a exibição de IA generativa, teste sob altas cargas simultâneas e identifique o nível em que a disponibilidade do acelerador limita o desempenho.
  • Realize o monitoramento contínuo de consultas de modelo e configure alertas proativos para agentes.
    • Use o painel de observabilidade do modelo para conferir as métricas coletadas pelo Monitoring, como consultas por segundo (QPS) do modelo, capacidade 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 os 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 os recursos de VMs spot e do Dynamic Workload Scheduler (DWS):

    • Para tarefas tolerantes a falhas, como cargas de trabalho de avaliação e experimentação, use VMs spot. As VMs spot podem ser interrompidas, mas ajudam a reduzir os custos gerais.
    • Para gerenciar o risco de preempção de aceleradores de alta demanda, use o DWS para garantir uma melhor capacidade de obtenção.
      • Para treinamentos em lote complexos que precisam de GPUs sofisticadas para serem executados por até sete dias, use o modo de início flexível do DWS.
      • Para cargas de trabalho de execução mais longa, que duram até três meses, use o modo calendário para reservar GPUs específicas (H100 e H200) e Cloud TPU (Trillium).
  • Para otimizar a inferência de IA no GKE, execute um mecanismo vLLM que use dinamicamente o Cloud TPU e as GPUs para lidar com as necessidades de capacidade e desempenho flutuantes. Para mais informações, consulte Fungibilidade de GPU/TPU do 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 Gemini Enterprise Agent Platform abstrai a infraestrutura de computação distribuída. Ele permite que os aplicativos solicitem recursos para treinamento e disponibilizaçã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 que têm demandas variáveis. O balanceamento de carga distribui o tráfego, otimiza o uso de recursos, oferece alta disponibilidade e baixa latência e ajuda a garantir uma experiência do usuário perfeita.

  • Inferência com necessidades de recursos variadas: 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 que reconhece o modelo. O gateway prioriza instâncias com aceleradores de GPU e Cloud 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 exibição como vLLM ou Triton para métricas de LLM e integre as métricas ao Monitoring usando o Serviço Gerenciado do Google Cloud para Prometheus.
  • Cargas de trabalho de inferência que precisam de GPUs ou Cloud TPU: para garantir que as cargas de trabalho críticas de inferência de IA e ML sejam executadas de forma consistente em máquinas adequadas aos requisitos das cargas de trabalho, especialmente quando a disponibilidade de GPU e Cloud TPU é limitada, use classes de computação personalizadas do GKE. É possível definir perfis de computação específicos com políticas de fallback para escalonamento automático. Por exemplo, é possível definir um perfil que especifique uma prioridade mais alta para instâncias reservadas de GPU ou Cloud TPU. O perfil pode incluir um substituto 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 encaminhar solicitações com baixa necessidade de GPU para o Cloud Run e encaminhar 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. Garanta a consistência de registros e monitoramento usando o Logging e o Monitoring.
  • Distribuição de carga global: para balancear a carga do tráfego de usuários globais que precisam de baixa latência, use um balanceador de carga de aplicativo externo global. Configurar o roteamento de geolocalização para a região mais próxima e implementar o failover. Estabeleça a replicação de endpoints regionais na Agent Platform ou no GKE. Configurar o Cloud CDN para recursos estáticos. Monitorar o tráfego global e a latência usando o Monitoring.
  • Gerenciamento granular de tráfego: para solicitações com diversos tipos de dados ou complexidade e solicitações de longa duração, implemente o gerenciamento granular de tráfego.
    • Configure o roteamento com base em conteúdo para direcionar solicitações a back-ends especializados com base em atributos como caminhos de URL e cabeçalhos. Por exemplo, direcione solicitações para back-ends com GPU para modelos de imagem ou vídeo e para back-ends otimizados para CPU para modelos baseados em texto.
    • Para solicitações de IA generativa de longa duração ou cargas de trabalho em lote, use WebSockets ou gRPC. Implementar o gerenciamento de tráfego para lidar com tempos limite e armazenamento em buffer. Configurar tempos limite e novas tentativas de solicitação e implementar limitação de taxa e cotas usando o gateway de API ou a Apigee.

Usar uma arquitetura modular e acoplado com flexibilidade

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

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

Implementar pequenos módulos ou componentes independentes

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

As seções a seguir descrevem os produtos, recursos e ferramentas do 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 de IA generativa complexos que precisam de orquestração detalhada, implemente módulos como microsserviços que são orquestrados usando o GKE. Empacote cada estágio como um microsserviço individual em contêineres do Docker. Essas etapas distintas incluem a ingestão de dados adaptada para diversos formatos, o pré-processamento de dados especializado ou a engenharia de atributos, o treinamento de modelo distribuídos ou o ajuste fino de modelos de fundação grandes, a avaliação ou a disponibilização.

Implante os microsserviços conteinerizados no GKE e aproveite o escalonamento automático com base no uso de CPU e memória ou em métricas personalizadas, como uso de GPU, atualizações graduais 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 o 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 as etapas podem ser projetadas 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 para jobs de inferência menores. Acione as 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 de webhook ou serviços que precisam de um ambiente de contêiner, use o Cloud Run.

Os serviços do Cloud Run e as funções do Cloud Run podem ser escalonar verticalmente verticalmente com rapidez e reduzir escala vertical a 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 conversação do agente. É possível orquestrar sequências de componentes com o Workflows ou o Application Integration.

Serviços gerenciados da Agent Platform

Os serviços da Agent Platform são compatíveis com a 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 base em etapas modulares, use os pipelines da Gemini Enterprise Agent Platform.
  • Para executar código personalizado de IA e ML, empacote o código em contêineres do Docker que possam ser executados em serviços gerenciados, como o treinamento personalizado e a previsão da Agent Platform.
  • Para pipelines de engenharia de atributos modulares, use o Feature Store da Agent Platform.
  • Para exploração e prototipagem modular, use ambientes de notebook como o Gemini Enterprise Agent Platform 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 Kit de Desenvolvimento de Agente (ADK) oferece recursos modulares, como Ferramentas e Estado. Para permitir a interoperabilidade entre frameworks como LangChain, LangGraph, LlamaIndex e a Plataforma de Agentes, combine o ADK com o protocolo Agent2Agent (A2A) e o Protocolo de Contexto de Modelo (MCP). Essa interoperabilidade permite compor Agentic Workflows usando diversos componentes.

É possível implantar agentes no Agent Runtime na Gemini Enterprise Agent Platform, que é um ambiente de execução gerenciado otimizado para implantação escalonável de agentes. Para executar agentes conteinerizados, use os recursos de escalonamento automático no 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 nos 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 ajudar a 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 de 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, em seguida, gere vinculações de linguagem.
  • Para casos de uso em que o desempenho é essencial, use o streaming do gRPC para grandes conjuntos de dados ou para fluxos contínuos, como aplicativos de conversão de texto em voz ou vídeo ao vivo. Implantar os serviços do gRPC no GKE.

Documentação padronizada e abrangente

Independentemente do protocolo de interface escolhido, a documentação padronizada é crucial. A especificação OpenAPI descreve APIs RESTful. Use a 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. Uma documentação abrangente da API ajuda a melhorar a facilidade 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, é possível gerar SDKs de cliente e stubs de servidor usando ferramentas de programação assistidas por 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 Agent Platform

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

  • O SDK da plataforma de agentes simplifica as tarefas e a autenticação. Use o SDK quando precisar interagir com a Agent Platform.
  • A API REST é uma alternativa poderosa, especialmente 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 um controle refinado.

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

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

  • Gateway de API: para APIs expostas e gerenciadas externamente, o gateway de API oferece um ponto de entrada centralizado e seguro. Ele simplifica o acesso a serviços de back-end sem servidor, como APIs Data de previsão, treinamento e dados. O gateway de API 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 gateway de API.
  • Cloud Endpoints: para simplificar o desenvolvimento e a implantação de APIs no GKE e no Cloud Run, use o Endpoints, que oferece uma solução fácil 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 do cliente. É possível usar o Endpoints para gerenciar o acesso a APIs de IA e ML internas ou controladas, como para acionar o treinamento e gerenciar Feature Stores.
  • 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, para gerenciamento de tráfego, como armazenamento em cache, cotas e mediação, e para análise de dados. A Apigee pode ajudar você a ter insights detalhados sobre os padrões de uso, o desempenho e o engajamento da API, que são cruciais para entender o uso da API 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 funcionando, possivelmente com desempenho reduzido. Essa abordagem evita interrupções completas e melhora a disponibilidade geral. A degradação suave é fundamental para inferência sensível à latência, treinamento distribuído e IA generativa.

As seções a seguir descrevem as 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 resiliência, 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 alternativas, como modelos mais simples e dados 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 forem detectadas, use o Cloud Load Balancing.

Garanta a redundância de dados usando buckets multirregionais do Cloud Storage. Para treinamento distribuído, implemente a criação de checkpoints assíncrona para retomar após falhas. Para treinamento resiliente e elástico, use o Pathways.

Monitoramento proativo

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

As verificações de integridade podem acionar a necessidade de substituir nós com falha, implantar mais capacidade ou acionar automaticamente o retreinamento contínuo ou o ajuste de pipelines que usam dados atualizados. Essa abordagem proativa ajuda a evitar a degradação baseada em acurácia e a degradação gradual no nível do 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). Os alertas sobre perda de margem de erro e taxa de consumo podem ser indicadores iniciais de problemas de confiabilidade com o sistema. Para mais informações sobre as práticas de SRE, consulte o livro sobre SRE do Google.

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 automatizada de ponta a ponta para o ciclo de vida de desenvolvimento do modelo. O ciclo de vida de desenvolvimento inclui o processamento inicial de dados, o treinamento contínuo de modelos, a implantação e o monitoramento na 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 central 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: da preparação e validação de dados ao treinamento, avaliação, implantação e monitoramento de modelos.

  • Use os Pipelines da Agent Platform 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 alterações 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 a geração de registros e o rastreamento integrados e integre-os aos alertas do Monitoring.
  • Defina os 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 pipelines da plataforma de agentes.
  • Orquestre operações usando serviços do Google Cloud , como Dataflow, treinamento personalizado da Agent Platform, Model Registry na Gemini Enterprise Agent Platform e endpoints da Agent Platform.
  • Para fluxos de trabalho de IA generativa, orquestre as etapas de gerenciamento de comandos, inferência em lote, avaliação human-in-the-loop (HITL) e coordenação de componentes do ADK.

Gerenciar a infraestrutura como código

A infraestrutura como código (IaC) é crucial 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 Cloud TPU. A IaC ajuda a reduzir os riscos do gerenciamento manual de infraestrutura, garantindo consistência, permitindo reversões e tornando as implantações repetíveis.

Para gerenciar de maneira eficaz os recursos de infraestrutura como código, use as técnicas a seguir.

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:

  • 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 plataforma de agente configurados para disponibilização de modelos, com tipos de máquina 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 blueprints 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 sistema de controle de versões. Para automatizar o provisionamento de recursos e atualizar o fluxo de trabalho, integre o código aos pipelines de CI/CD usando o Cloud Build.

Automatizar mudanças de configuração

Depois de provisionar a infraestrutura, gerencie as mudanças de configuração em andamento de forma 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 Agent Platform, 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.
  • Implementar 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 do Google Cloud integrando a IaC aos pipelines de CI/CD usando ferramentas como o Cloud Build e o Infrastructure Manager.
  • Defina gatilhos para atualizações automáticas em commits de código.
  • Implementar testes e validações automatizados no pipeline. Por exemplo, é possível criar um script para executar automaticamente os comandos validate e plan do Terraform.
  • Armazenar as configurações como artefatos e ativar o controle de versões.
  • Defina ambientes separados, como dev, staging e prod, com configurações distintas no controle de versões 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, combinada com uma validação rigorosa, ajuda a garantir que os modelos se comportem conforme o 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 desvio 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 Agent Platform.
    • Para ajustar modelos de fundação, automatize o processo de ajuste e integre os jobs aos pipelines.
  • Implementar o controle de versões automatizado de modelos e armazenar 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 Agent Platform.
    • Verifique se a avaliação inclui métricas específicas para a qualidade da saída gerada, a acurácia factual, os atributos de segurança e a adesão ao estilo ou formato especificado.
  • Para registrar e acompanhar automaticamente os parâmetros, as versões de código, as versões de conjunto de dados e os resultados de cada execução de treinamento e avaliação, use os Experimentos na Gemini Enterprise Agent Platform. Essa abordagem fornece um histórico útil para comparação, depuração e reprodutibilidade.
  • Para otimizar o ajuste de hiperparâmetros e automatizar a busca pelas configurações ideais do modelo com base no objetivo definido, use o Agent Platform Vizier.
  • Para visualizar as métricas de treinamento e depurar durante o desenvolvimento, use o TensorBoard da plataforma de agentes.

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, é preciso validar os dados quando eles entram nos sistemas e se movem pelos pipelines. Também é necessário 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 de MLOps. Ao integrar essa abordagem proativa à sua plataforma de MLOps, você ajuda a detectar erros antes que eles sejam propagados por um sistema, além de economizar tempo e recursos.

Para validar de forma eficaz as entradas e saídas dos pipelines de IA e ML, use as técnicas a seguir.

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.
  • Monitorar as distribuições de dados ao longo do tempo com os recursos do TFDV.
    • Visualize tendências usando ferramentas integradas ao Monitoring para detectar desvios 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 e rastreamento histórico e arquive artefatos de validação no Cloud Storage.

Validar as configurações do pipeline e os dados de entrada

Para evitar falhas no pipeline ou comportamentos inesperados causados 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 em relação a esses esquemas antes que uma execução de pipeline seja iniciada e antes que um componente seja executado.
  • 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 obrigatórios estão presentes.
  • No Agent Platform Pipelines, defina os tipos e as propriedades esperados dos parâmetros de componente usando os recursos integrados de validação de entrada de componente.
  • Para garantir a reprodutibilidade das execuções de pipeline e manter uma trilha de auditoria, armazene arquivos de configuração validados e com controle de versões 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 garantir 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 as somas de verificação para detectar corrupção ou transferências incompletas usando a validação de dados e a detecção de alterações do Cloud Storage.
  • Realize a validação de arquivos usando o Cloud Run functions (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, implantação controlada, implantação automatizada usando CI/CD e monitoramento abrangente, conforme descrito nas seções a seguir.

Gerenciar versões de modelo

Gerencie as iterações de modelos e os artefatos associados usando ferramentas de controle de versões:

  • Para rastrear versões e metadados de modelos e vincular a 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 de modelo, como arquivos de modelo, pesos pré-treinados e imagens de contêiner de exibição no Artifact Registry e use os recursos de controle de versões e inclusão de tags.
  • Para atender aos requisitos de segurança e governança, defina políticas rigorosas de controle de acesso para o Model Registry e o Artifact Registry.
  • Para registrar e gerenciar versões de forma programática e integrá-las a pipelines de CI/CD automatizados, use o SDK ou a API da Agent Platform.

Realizar implantação controlada

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

  • Implemente uma implantação gradual usando o recurso de divisão de tráfego dos endpoints da Agent Platform.
  • Se você implantar o modelo no GKE, use técnicas avançadas de gerenciamento de tráfego, como implantação canário:
    1. Encaminhar um pequeno subconjunto do tráfego de produção para uma nova versão do modelo.
    2. Monitorar continuamente o desempenho e as taxas de erro usando métricas.
    3. Estabelecer que o modelo é confiável.
    4. Lançar a versão para todo o tráfego.
  • Realize testes A/B em agentes de IA:
    1. Implantar duas versões diferentes de agente de modelo ou modelos totalmente diferentes no mesmo endpoint.
    2. Divida o tráfego entre as implantações.
    3. Analisar os resultados em relação aos objetivos de negócios.
  • Implemente mecanismos de reversão automatizados que possam reverter rapidamente o tráfego do endpoint para uma versão estável anterior do modelo se os alertas de monitoramento forem acionados ou os limites de desempenho não forem atingidos.
  • Configure as definições de divisão de tráfego e implantação de forma programática usando o SDK ou a API da Agent Platform.
  • Use o Monitoring para acompanhar o desempenho e o tráfego entre as versões.
  • Automatize a implantação com pipelines de CI/CD. Use o Cloud Build para criar contêineres, artefatos de versão e acionar a implantação em endpoints da plataforma de agente.
  • Verifique se os pipelines de CI/CD gerenciam versões e extraem do Artifact Registry.
  • Antes de transferir o tráfego, realize testes automatizados de endpoint para verificar a precisão da previsão, a latência, a capacidade de processamento e a função da API.
  • Armazene todas as configurações no controle de versões.

Monitorar continuamente

  • Use o Monitoramento de Modelos na Agent Platform para detectar automaticamente a degradação de desempenho, 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).
    • Configurar jobs de detecção de desvios com limites e alertas.
    • Monitorar o desempenho em tempo real: latência de previsão, capacidade de processamento, taxas de erro.
  • Defina métricas personalizadas no Monitoring para KPIs de negócios.
  • Integre os resultados do Monitoramento de Modelos na Agent Platform e as métricas personalizadas ao Monitoring para alertas e painéis.
  • Configure canais de notificação, como e-mail, Slack ou PagerDuty, e configure a correção automatizada.
  • Para depurar registros de previsão, use o Logging.
  • Integrar o monitoramento ao gerenciamento de incidentes.

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

  • Monitorar a disponibilização de recursos para detectar desvios.
  • Implementar a validação granular de previsões: validar as saídas em relação aos intervalos e formatos esperados usando uma lógica personalizada.
  • Monitorar as distribuições de previsão para detectar mudanças.
  • Validar o esquema de saída.
  • Configurar 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 é usada no treinamento contínuo.

Manter 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écnico. Ele 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. Rastreabilidade abrangente, controle de acesso forte, validação automatizada e práticas transparentes ajudam a garantir que as saídas de IA sejam confiáveis e atendam aos padrões éticos.

Para manter a confiança e o controle por meio da governança de dados e modelos, considere as recomendações a seguir.

Estabelecer catálogos de dados e modelos para rastreabilidade

Para facilitar o rastreamento, a auditoria e a compreensão da linhagem dos 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 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 para seus recursos de dados:

  • Crie um catálogo de recursos de dados para toda a empresa usando o Knowledge Catalog. Para descobrir e criar inventários dos recursos de dados automaticamente, integre o Knowledge Catalog aos seus sistemas de armazenamento, como BigQuery, Cloud Storage e Pub/Sub.
  • Armazene seus dados em buckets multirregionais ou birregionais do Cloud Storage para garantir que eles sejam altamente disponíveis e duráveis. Os dados que você envia para esses buckets são armazenados de maneira redundante em pelo menos duas localizações geográficas separadas. Essa redundância oferece resiliência integrada contra interrupções regionais e ajuda a garantir a integridade de dados.
  • Marque e anote seus conjuntos de dados com metadados de negócios 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. Registrar cada versão de modelo treinado e vinculá-la 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 Knowledge Catalog.
    • Versão do código que produziu 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 disponibilizaçã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 pipelines de MLOps. Essa catalogação abrangente oferece rastreabilidade de ponta a ponta, desde os dados brutos até a previsão, o que permite 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 segurança da saída gerada.

Implementar 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 acessos não autorizados 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 no 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 o princípio de privilégio mínimo rigorosamente.
  • 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 para artefatos de modelo, mas o serviço pode não precisar de acesso de gravação aos endpoints de exibição de produção.

Aplique políticas do IAM de maneira consistente em todos os recursos 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 Agent Platform, como repositórios de modelos, endpoints, pipelines e recursos do 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 as atividades 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 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 de modelo.
  • Para análise, alertas e visualização em tempo real, transmita os registros de auditoria para o Logging.
  • Para armazenamento de longo prazo econômico e análise de segurança retrospectiva ou auditorias de conformidade, exporte os registros para o BigQuery.
  • Para 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 as trilhas de auditoria para garantir que elas estejam alinhadas com seus requisitos de governança e detectar possíveis violações da 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 repositório de dados.
  • Para IA generativa e soluções de agentes, use trilhas de auditoria para ajudar a rastrear quem acessou modelos ou ferramentas específicos, 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 você investigar o uso indevido de dados ou violações da política.

Abordar o viés, a transparência e a explicabilidade

Para criar sistemas de IA e ML confiáveis, é preciso lidar com possíveis vieses inerentes aos dados e modelos, buscar transparência no comportamento do sistema e fornecer explicabilidade para as saídas do modelo. É especialmente crucial criar sistemas confiáveis em domínios sensíveis ou ao usar modelos complexos, como os normalmente usados para aplicativos de IA generativa.

  • Implementar práticas proativas para identificar e reduzir o viés em todo o ciclo de vida das MLOps.
  • Analise os dados de treinamento em busca de vieses usando ferramentas que detectam distorções nas distribuições de atributos em diferentes grupos demográficos ou atributos sensíveis.
  • Avalie o desempenho geral do modelo e o desempenho em fatias de dados predefinidas. Essa avaliação ajuda a identificar desempenho discrepante ou viés que afeta subgrupos específicos.

Para transparência e explicabilidade do modelo, use ferramentas que ajudem os 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 Agent Platform, gere atribuições de atributos, que indicam os atributos de entrada que mais contribuíram para a previsão.
  • Analise de forma interativa o comportamento do modelo e os 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 a tomada de decisões, forneça dados de explicabilidade diretamente aos usuários finais pelas interfaces do aplicativo.
  • Para modelos complexos, como LLMs usados para modelos de IA generativa, explique o processo que um agente seguiu, por exemplo, usando registros de rastreamento. A explicabilidade é relativamente desafiadora para esses modelos, mas ainda é vital.
  • Em aplicativos RAG, forneça citações para as informações recuperadas. Você também pode usar técnicas como engenharia de comandos para orientar o modelo a fornecer explicações ou mostrar as etapas de raciocínio.
  • Detecte mudanças no comportamento ou nos resultados do modelo que possam indicar vieses ou injustiças emergentes implementando o monitoramento contínuo na produção. Documente as limitações do modelo, os casos de uso pretendidos e os possíveis vieses conhecidos como parte dos metadados do modelo no Model Registry.

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

A observabilidade 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 observabilidade 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 de problemas. Essa observabilidade leva a sistemas confiáveis e de alto desempenho. Para alcançar uma observabilidade holística, faça o seguinte:

  • Adote os princípios da SRE.
  • Defina metas de confiabilidade claras.
  • Acompanhe as métricas em todas as camadas do sistema.
  • Use insights de 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 no Google Cloud, considere as recomendações a seguir.

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 a receita influenciada pelas recomendações de IA, a desistência de clientes que os sistemas de IA previram ou mitigaram e as taxas de engajamento do usuário e conversão impulsionadas por recursos de IA generativa.

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

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

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

Para medir e melhorar de forma eficaz a confiabilidade da IA e do ML, comece definindo metas de confiabilidade claras que estejam alinhadas com os objetivos de negócio gerais. 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 do ponto de vista dos usuários. Quantifique essas métricas de confiabilidade técnica com metas de SLO específicas.

Veja a seguir exemplos de metas de SLO:

  • 99,9% das chamadas de API precisam retornar uma resposta bem-sucedida.
  • A latência de inferência do 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 nociva precisa ser inferior a 0,1%.

Alinhar os SLOs diretamente às necessidades de negócios garante que os esforços de confiabilidade sejam focados no comportamento mais crítico do sistema que afeta os usuários e os negócios. Essa abordagem ajuda a transformar a confiabilidade em uma propriedade de engenharia mensurável e acionável.

Monitorar o desempenho 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 Cloud TPU), uso da memória, capacidade de processamento e latência da rede e E/S de disco. Acompanhe as métricas de ambientes gerenciados, como o treinamento e a disponibilização da Agent Platform, e de recursos autogerenciados, como nós do GKE e instâncias do Cloud Run.

Monitore os quatro sinais de ouro dos seus aplicativos de IA e ML:

  • Latência: tempo de resposta às solicitações.
  • Tráfego: volume de solicitações ou carga de trabalho.
  • Taxa de erros: 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 Cloud TPU, que indica o quão próximo o sistema está dos limites de capacidade.

Realize o monitoramento usando as seguintes técnicas:

  • Colete, armazene e visualize as métricas de infraestrutura e aplicativo usando o Monitoring. É possível usar painéis predefinidos para serviços do Google Cloud e criar painéis personalizados de acordo com os indicadores de desempenho específicos da carga de trabalho e a integridade da infraestrutura.
  • Colete registros detalhados dos seus aplicativos de IA e ML e da infraestrutura subjacente usando o Logging. Esses registros são essenciais para solução de problemas e 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 é crucial para depurar interações complexas da Conversa com o Agente ou pipelines de inferência com vários componentes.
  • Identifique gargalos de desempenho em blocos de função no código do aplicativo usando o Cloud Profiler. Identificar gargalos de desempenho pode ajudar a otimizar o uso de recursos e o tempo de execução.
  • Coletar métricas específicas relacionadas ao acelerador, como uso detalhado da GPU por processo, uso da 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 uma observabilidade robusta de dados e modelos, que começa com o monitoramento de pipeline 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 pipelines de MLOps, incluindo os gerenciados pelos Pipelines da Agent Platform.

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

  • Gerenciar e controlar dados usando o Knowledge Catalog:
    • Avalie a precisão validando as informações empíricas ou rastreando as 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 monitorando as porcentagens de valores nulos e as taxas de preenchimento de campos obrigatórios.
    • Garanta a validade e a consistência com verificações de aderência ao esquema e duplicação.
  • Detecte anomalias de forma proativa usando os alertas do Monitoring e uma linhagem de dados clara para rastreabilidade.
  • Para sistemas RAG, examine a relevância do contexto recuperado e o embasamento (atribuição à fonte) das respostas.
  • Monitorar a capacidade de processamento das consultas do banco de dados vetorial.

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

  • 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 a critérios definidos usando o serviço de avaliação de IA generativa.
  • Garanta um desempenho sustentado monitorando sistematicamente o desvio de dados e conceitos com métricas abrangentes de taxa de erro.

Para acompanhar as métricas do modelo, use o TensorBoard ou o MLflow. Para uma análise profunda e criação de perfil para resolver problemas de desempenho, é possível criar perfis de modelos em VMs do Cloud TPU ou usar 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 de 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 de programa, Google Cloud Well-Architected Framework