Perspectiva de IA e ML: confiabilidade

Last reviewed 2025-08-07 UTC

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 de maneira integrada à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 tipo de máquina, tipo e número de aceleradores e 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 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.

Implemente a redundância para componentes críticos 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 capacidade de transferência de GPU ou TPU, 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.
  • Realize 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 de início flexível do DWS.
      • 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 e ajuda 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 gateway de inferência do GKE 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.

Implemente módulos ou componentes pequenos e 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 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 do cliente. 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, para 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, performance 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 normal.

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 Pathways.

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 de 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 e a reprodutibilidade, além de permitir a integração e a 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 e faça a integração com os 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 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 sua 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 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 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.
  • 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 deve 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 um rastreamento de auditoria, armazene arquivos de configuração validados e com controle de versão 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 programaticamente as configurações de divisão de tráfego e implantação 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ão: 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 disponibilizaçã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 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 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 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 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 alto desempenho. 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 capacidade de observação 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 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 streaming 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 menor que 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 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 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 confiáveis de IA generativa 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 Dataplex Universal Catalog:
    • 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 com 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 taxa de transferência 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 acompanhar 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 de programa, Google Cloud Well-Architected Framework