Este documento no Google Cloud Well-Architected Framework: perspetiva de IA e ML oferece uma vista geral dos princípios e das recomendações para criar e operar sistemas de IA e ML fiáveis no Google Cloud. Explora como integrar práticas de fiabilidade avançadas e observabilidade nos seus projetos arquitetónicos. As recomendações neste documento estão alinhadas com o pilar de fiabilidade da Google Cloud estrutura bem arquitetada.
No panorama da IA e da AA em rápida evolução, os sistemas fiáveis são essenciais para garantir a satisfação do cliente e alcançar os objetivos empresariais. Para satisfazer as exigências únicas da AA preditiva e da IA generativa, precisa de sistemas de IA e AA robustos, fiáveis e adaptáveis. Para lidar com as complexidades das MLOps, desde o desenvolvimento à implementação e à melhoria contínua, tem de usar uma abordagem de prioridade da fiabilidade. Google Cloud oferece uma infraestrutura de IA especialmente concebida que está alinhada com os princípios de engenharia de fiabilidade do site (SRE) e que oferece uma base poderosa para sistemas de IA e ML fiáveis.
As recomendações neste documento estão mapeadas para os seguintes princípios fundamentais:
- Certifique-se de que a infraestrutura é escalável e altamente disponível
- Use uma arquitetura modular e pouco acoplada
- Crie uma plataforma de MLOps automatizada de extremo a extremo
- Mantenha a confiança e o controlo através da governação de dados e modelos
- Implemente práticas de fiabilidade e observabilidade holísticas
Certifique-se de que a infraestrutura de ML é escalável e altamente disponível
Os sistemas de IA e ML fiáveis na nuvem requerem uma infraestrutura escalável e altamente disponível. Estes sistemas têm exigências dinâmicas, diversas necessidades de recursos e dependências críticas da disponibilidade do modelo. As arquiteturas escaláveis adaptam-se a cargas flutuantes e variações no volume de dados ou nos pedidos de inferência. A alta disponibilidade (HA) ajuda a garantir a resiliência contra falhas ao nível do componente, da zona ou da região.
Para criar uma infraestrutura de ML escalável e altamente disponível, considere as seguintes recomendações.
Implemente capacidades de escalabilidade automática e dinâmica
As cargas de trabalho de IA e ML são dinâmicas, com uma procura que flutua com base nas taxas de chegada de dados, na frequência de formação e no volume de tráfego de inferência. A escalabilidade automática e dinâmica adapta os recursos de infraestrutura de forma integrada às flutuações da procura. Aumentar a escala das cargas de trabalho de forma eficaz ajuda a evitar tempos de inatividade, manter o desempenho e otimizar os custos.
Para ajustar automaticamente a escala das suas cargas de trabalho de IA e ML, use os seguintes produtos e funcionalidades em Google Cloud:
- Pipelines de processamento de dados: crie pipelines de dados no Dataflow. Configure os pipelines para usar a funcionalidade de escala automática horizontal do Dataflow, que ajusta dinamicamente o número de instâncias de trabalho com base na utilização da CPU, no paralelismo do pipeline e nos dados pendentes. Pode configurar parâmetros de escalamento automático através de opções de pipeline quando inicia tarefas.
- Tarefas de preparação: automatize o dimensionamento das tarefas de preparação através da preparação personalizada do Vertex AI. Pode definir especificações do worker pool, como o tipo de máquina, o tipo e o número de aceleradores, e o número de worker pools. Para tarefas que podem tolerar interrupções e tarefas em que o código de preparação implementa a criação de pontos de verificação, pode reduzir os custos através das VMs do Spot.
- Inferência online: para a inferência online, use os pontos finais do Vertex AI. Para ativar o dimensionamento automático, configure a quantidade mínima e máxima de réplicas. Especifique um mínimo de duas réplicas para a HA. A Vertex AI ajusta automaticamente o número de réplicas com base no tráfego e nas métricas de escalamento automático configuradas, como a utilização da CPU e a utilização de réplicas.
- Cargas de trabalho em contentores no Google Kubernetes Engine: configure a escala automática ao nível do nó e do pod. Configure o redimensionador automático de cluster e a administração de contas automática de nós para ajustar a contagem de nós com base em pedidos de recursos de pods pendentes, como CPU, memória, GPU e TPU. Use o redimensionador automático horizontal de pods (HPA) para implementações de modo a definir políticas de escalabilidade com base em métricas como a utilização da CPU e da memória. Também pode dimensionar com base em métricas personalizadas de IA e ML, como a utilização de GPUs ou TPUs e os pedidos de previsão por segundo.
- Serviços contentorizados sem servidor: implemente os serviços no Cloud Run e configure a escala automática especificando o número mínimo e máximo de instâncias de contentores. Use as práticas recomendadas para dimensionar automaticamente as instâncias com GPU especificando o tipo de acelerador. O Cloud Run dimensiona automaticamente as instâncias entre os limites mínimo e máximo configurados com base nos pedidos recebidos. Quando não existem pedidos, é dimensionado de forma eficiente para zero instâncias. Pode tirar partido do escalamento automático e orientado por pedidos do Cloud Run para implementar agentes da Vertex AI e implementar cargas de trabalho de terceiros, como modelos quantizados com o Ollama, inferência de modelos LLM com o vLLM e inferência de geração de texto (TGI) do Huggingface.
Crie em função da AD e tolerância a falhas
Para cargas de trabalho de IA e ML de nível de produção, é fundamental garantir o funcionamento contínuo e a resiliência contra falhas. Para implementar a HA e a tolerância a falhas, tem de criar redundância e replicação na sua arquitetura no Google Cloud. Esta abordagem ajuda a garantir que uma falha de um componente individual não causa uma falha do sistema completo.
- Para ter HA e baixa latência na publicação de modelos, especialmente para a inferência em tempo real e os modelos de IA generativa, distribua as suas implementações por várias localizações.
- Para disponibilidade e resiliência globais, implemente os modelos em vários pontos finais da Vertex AI em várias Google Cloud regiões ou use o ponto final global.
- Use o balanceamento de carga global para encaminhar o tráfego.
- Para a preparação em GKEs ou MIGs do Compute Engine, implemente a monitorização de erros Xid. Quando identificar erros Xid, tome as medidas corretivas adequadas. Por exemplo, pode repôr GPUs, repôr instâncias do Compute Engine ou acionar a substituição de hardware através do comando gcloud CLI report faulty host.
- Explore soluções de preparação tolerantes a falhas ou elásticas e resilientes, como receitas para usar a biblioteca de resiliência da Google ou a integração da lógica de preparação resiliente com caminhos para cargas de trabalho de TPU.
Implemente a redundância para componentes críticos de IA e AA no Google Cloud. Seguem-se exemplos de produtos e funcionalidades que lhe permitem implementar a redundância de recursos:
- Implemente clusters regionais do GKE em várias zonas.
- Garanta a redundância de dados para conjuntos de dados e pontos de verificação através de contentores multirregionais ou de dupla região do Cloud Storage.
- Use o Spanner para um armazenamento de metadados altamente disponível e consistente a nível global.
- Configure réplicas de leitura do Cloud SQL para bases de dados operacionais.
- Certifique-se de que as bases de dados vetoriais para a geração aumentada de recuperação (RAG) estão altamente disponíveis e são multizonais ou multirregionais.
Faça a gestão dos recursos de forma proativa e antecipe os requisitos
A gestão eficaz dos recursos é importante para ajudar a otimizar os custos, o desempenho e a fiabilidade. As cargas de trabalho de IA e ML são dinâmicas e existe uma elevada procura de hardware especializado, como GPUs e TPUs. Por conseguinte, é fundamental que aplique uma gestão de recursos proativa e garanta a disponibilidade dos recursos.
Planeie a capacidade com base nos dados de monitorização do histórico, como a utilização de GPUs ou TPUs e as taxas de débito, a partir do Cloud Monitoring e dos registos no Cloud Logging. Analise estes dados de telemetria através do BigQuery ou do Looker Studio e preveja a procura futura de GPUs com base no crescimento ou em novos modelos. A análise dos padrões e das tendências de utilização de recursos ajuda a prever quando e onde precisa de aceleradores especializados críticos.
- Valide as estimativas de capacidade através de testes de carga rigorosos. Simule o tráfego em serviços de IA e ML, como a apresentação e os pipelines, através de ferramentas como o Apache JMeter ou o LoadView.
- Analisar o comportamento do sistema sob stress.
- Para antecipar e satisfazer as exigências de cargas de trabalho aumentadas na produção, identifique proativamente os requisitos de recursos. Monitorize a latência, o débito, os erros e a utilização de recursos, especialmente a utilização de GPUs e TPUs. Aumente as quotas de recursos conforme necessário.
- Para o serviço de IA generativa, teste em cargas concorrentes elevadas e identifique o nível em que a disponibilidade do acelerador limita o desempenho.
- Realize uma monitorização contínua das consultas de modelos e configure alertas proativos para os agentes.
- Use o painel de controlo de observabilidade do modelo para ver as métricas recolhidas pelo Cloud Monitoring, como consultas de modelos por segundo (QPS), débito de tokens e latências do primeiro token.
Otimize 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 preparação com requisitos de capacidade fixos ou previsíveis, use descontos de fidelidade (CUDs) para VMs e aceleradores.
Para nós do GKE e VMs do Compute Engine, use as seguintes capacidades: VMs de capacidade instantânea e Dynamic Workload Scheduler (DWS):
- Para tarefas com tolerância a falhas, como cargas de trabalho de avaliação e experimentação, use VMs do Spot. As VMs de capacidade instantânea podem ser interrompidas, mas podem ajudar a reduzir os custos gerais.
- Para gerir o risco de preemptividade para aceleradores de elevada procura, pode
garantir uma melhor obtenção através do
DWS.
- Para a preparação em lote complexa que precisa de GPUs de alta qualidade para ser executada durante um máximo de 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 de calendário para reservar GPUs específicas (H100 e H200) e TPUs (Trillium).
Para otimizar a inferência de IA no GKE, pode executar um motor vLLM que usa dinamicamente TPUs e GPUs para responder às necessidades de capacidade e desempenho flutuantes. Para mais informações, consulte o artigo Fungibilidade de GPU/TPU de vLLM.
Para cenários avançados com necessidades complexas de recursos e topologia que envolvem aceleradores, use ferramentas para abstrair a gestão de recursos.
- O Cluster Director permite-lhe implementar e gerir grupos de aceleradores com colocação e agendamento para preparação com várias GPUs (A3 Ultra H200 e A4 B200). O Cluster Director suporta clusters do GKE e do Slurm.
- O Ray no Vertex AI abstrai a infraestrutura de computação distribuída. Permite que as aplicações peçam recursos para preparação e publicação sem necessidade de gestão direta de VMs e contentores.
Distribua o tráfego recebido por várias instâncias
O equilíbrio de carga eficaz é crucial para as aplicações de IA que têm exigências flutuantes. O equilíbrio de carga distribui o tráfego, otimiza a utilização de recursos, oferece HA e baixa latência, e ajuda a garantir uma experiência do utilizador perfeita.
- Inferência com necessidades de recursos variáveis: implemente o equilíbrio de carga com base nas métricas do modelo. O GKE Inference Gateway permite implementar modelos atrás de um balanceador de carga com encaminhamento consciente do modelo. 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 LLMs. Configure verificações de funcionamento detalhadas para avaliar o estado do modelo. Use frameworks de publicação, como o vLLM ou o Triton, para métricas de MDIs e integre as métricas no Cloud Monitoring usando o serviço gerido do Google Cloud para o 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 são executadas de forma consistente em máquinas adequadas aos requisitos das cargas de trabalho, particularmente quando a disponibilidade de GPUs e TPUs é limitada, use classes de computação personalizadas do GKE. Pode definir perfis de computação específicos com políticas alternativas para o dimensionamento automático. Por exemplo, pode definir um perfil que especifique uma prioridade mais elevada para instâncias de GPU ou TPU reservadas. O perfil pode incluir um recurso alternativo para usar VMs do Spot económicas se os recursos reservados estiverem temporariamente indisponíveis.
- IA generativa em diversas plataformas de orquestração: use um equilibrador de carga centralizado. Por exemplo, para eficiência de custos e gestão, pode encaminhar pedidos com necessidades de GPU baixas para o Cloud Run e encaminhar tarefas mais complexas e com utilização intensiva de GPU para o GKE. Para a comunicação entre serviços e a gestão de políticas, implemente uma malha de serviço através do Cloud Service Mesh. Garanta o registo e a monitorização consistentes através do Cloud Logging e do Cloud Monitoring.
- Distribuição de carga global: para equilibrar a carga do tráfego de utilizadores globais que precisam de baixa latência, use um balanceador de carga de aplicações externo global. Configure o encaminhamento de geolocalização para a região mais próxima e implemente a comutação por falha. Estabeleça a replicação de pontos finais regionais no Vertex AI ou no GKE. Configure o Cloud CDN para recursos estáticos. Monitorize o tráfego global e a latência através do Cloud Monitoring.
- Gestão de tráfego detalhada: para pedidos com diversos tipos de dados ou complexidade e pedidos de longa duração, implemente a gestão de tráfego detalhada.
- Configure o encaminhamento baseado em conteúdo para direcionar pedidos para backends especializados com base em atributos como caminhos e cabeçalhos de URLs. Por exemplo, pedidos diretos a backends com GPU para modelos de imagens ou vídeos e a backends otimizados para CPU para modelos baseados em texto.
- Para pedidos de IA generativa de longa duração ou cargas de trabalho em lote, use WebSockets ou gRPC. Implemente a gestão de tráfego para processar os limites de tempo e o armazenamento em buffer. Configure os limites de tempo e as repetições de pedidos, e implemente limites de taxa e quotas através do API Gateway ou do Apigee.
Use uma arquitetura modular e pouco acoplada
Numa arquitetura de IA e ML modular e pouco acoplada, os sistemas complexos são divididos em componentes mais pequenos e autónomos que interagem através de interfaces bem definidas. Esta arquitetura minimiza as dependências dos módulos, simplifica o desenvolvimento e os testes, melhora a reprodutibilidade e melhora a tolerância a falhas, contendo as falhas. A abordagem modular é crucial para gerir a complexidade, acelerar a inovação e garantir a capacidade de manutenção a longo prazo.
Para criar uma arquitetura modular e pouco acoplada para cargas de trabalho de IA e ML, considere as seguintes recomendações.
Implemente módulos ou componentes pequenos e autónomos
Separe o seu sistema de IA e ML ponto a ponto em módulos ou componentes pequenos e autónomos. Cada módulo ou componente é responsável por uma função específica, como o carregamento de dados, a transformação de funcionalidades, a preparação de modelos, a publicação de inferências ou a avaliação. Um design modular oferece várias vantagens importantes para os sistemas de IA e ML: manutenção melhorada, escalabilidade aumentada, reutilização e maior flexibilidade e agilidade.
As secções seguintes descrevem os Google Cloud produtos, as funcionalidades e as ferramentas que pode usar para criar uma arquitetura modular para os seus sistemas de IA e ML.
Microsserviços contentorizados 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 através do GKE. Empacote cada fase distinta como um microserviço individual em contentores Docker. Estas fases distintas incluem a incorporação de dados adaptada a diversos formatos, pré-processamento de dados especializados ou engenharia de funcionalidades, preparação ou ajuste fino de modelos de base grandes, avaliação ou publicação de modelos distribuídos.
Implemente os microsserviços contentorizados no GKE e tire partido da escala automática com base na utilização da CPU e da memória ou em métricas personalizadas, como a utilização da GPU, as atualizações contínuas e as configurações reproduzíveis em manifestos YAML. Garantir uma comunicação eficiente entre os microsserviços através da deteção 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 escaláveis e resilientes para tarefas como aplicações RAG complexas, em que as fases podem ser concebidas como serviços distintos.
Serviços sem servidor orientados por eventos
Para tarefas orientadas por eventos que podem beneficiar da escalabilidade automática sem servidor, use o Cloud Run ou as funções do Cloud Run. Estes serviços são ideais para tarefas assíncronas, como o pré-processamento, ou para tarefas de inferência mais pequenas. Acionar funções do Cloud Run em eventos, como um novo ficheiro de dados criado no Cloud Storage ou atualizações de modelos no Artifact Registry. Para tarefas ou serviços de webhook que precisam de um ambiente de contentor, use o Cloud Run.
Os serviços do Cloud Run e as funções do Cloud Run podem ser dimensionados rapidamente e reduzidos a zero, o que ajuda a garantir a rentabilidade para cargas de trabalho flutuantes. Estes serviços são adequados para componentes modulares nos fluxos de trabalho dos agentes do Vertex AI. Pode orquestrar sequências de componentes com fluxos de trabalho ou integração de aplicações.
Serviços geridos do Vertex AI
Os serviços da Vertex AI suportam a modularidade e ajudam a simplificar o desenvolvimento e a implementação dos seus sistemas de IA e ML. Os serviços abstraem as complexidades da infraestrutura para que se possa concentrar na lógica da aplicação.
- Para orquestrar fluxos de trabalho criados a partir de passos modulares, use o Vertex AI Pipelines.
- Para executar código de IA e ML personalizado, agrupe o código em contentores Docker que podem ser executados em serviços geridos, como a preparação personalizada do Vertex AI e a previsão do Vertex AI.
- Para pipelines de engenharia de funcionalidades modulares, use o Vertex AI Feature Store.
- Para a exploração e a criação de protótipos modulares, use ambientes de blocos de notas como o Vertex AI Workbench ou o Colab Enterprise. Organize o seu código em funções, classes e scripts reutilizáveis.
Aplicações com agência
Para agentes de IA, o Agent Development Kit (ADK) oferece capacidades modulares, como ferramentas e estado. Para ativar a interoperabilidade entre frameworks como o LangChain, LangGraph, LlamaIndex> e o Vertex AI, pode combinar o ADK com o protocolo Agent2Agent (A2A) e o protocolo Model Context Protocol (MCP). Esta interoperabilidade permite-lhe compor fluxos de trabalho de agentes usando diversos componentes.
Pode implementar agentes no Vertex AI Agent Engine, que é um tempo de execução gerido otimizado para a implementação de agentes escalável. Para executar agentes em contentores, pode tirar partido das capacidades de dimensionamento automático no Cloud Run.
Crie interfaces bem definidas
Para criar sistemas de software robustos e de fácil manutenção, é fundamental garantir que os componentes de um sistema estão fracamente acoplados e modularizados. Esta abordagem oferece vantagens significativas, porque minimiza as dependências entre diferentes partes do sistema. Quando os módulos estão fracamente acoplados, as alterações num módulo têm um impacto mínimo noutros módulos. Este isolamento permite atualizações e fluxos de trabalho de desenvolvimento independentes para módulos individuais.
As secções seguintes fornecem orientações para ajudar a garantir uma comunicação e uma 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 a troca de dados independente da linguagem. Crie os pontos finais da API para representar ações em recursos.
- Para uma comunicação interna de alto desempenho entre microsserviços, use o
gRPC
com os buffers de protocolo (ProtoBuf)
para uma serialização eficiente e uma tipagem rigorosa. Defina estruturas de dados como ModelInput, PredictionResult ou dados da ferramenta ADK através de ficheiros
.proto
e, em seguida, gere associações de idiomas. - Para exemplos de utilização em que o desempenho é fundamental, tire partido do streaming gRPC para conjuntos de dados grandes ou fluxos contínuos, como aplicações de conversão de texto em voz ou vídeo em direto. Implemente os serviços gRPC no GKE.
Documentação padronizada e abrangente
Independentemente do protocolo de interface que escolher, a documentação padronizada é essencial. A especificação OpenAPI descreve as APIs RESTful. Use a OpenAPI para documentar as suas APIs de IA e ML: caminhos, métodos, parâmetros, formatos de pedido-resposta associados 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 a criação e visualização de APIs, use ferramentas de IU como o Swagger Editor. Para acelerar o desenvolvimento e garantir a consistência, pode gerar SDKs do cliente e stubs do servidor com ferramentas de programação assistida por IA, como o Gemini Code Assist. Integre a documentação da OpenAPI no seu fluxo de CI/CD.
Interação com Google Cloud serviços geridos, como o Vertex AI
Escolha entre a abstração mais elevada do SDK Vertex AI, que é preferível para a produtividade do desenvolvimento, e o controlo detalhado que a API REST oferece.
- O SDK da Vertex AI simplifica as tarefas e a autenticação. Use o SDK quando precisar de interagir com a Vertex AI.
- A API REST é uma alternativa poderosa, especialmente quando é necessária a interoperabilidade entre camadas do seu sistema. É útil para ferramentas em idiomas que não têm um SDK ou quando precisa de um controlo detalhado.
Use APIs para isolar módulos e abstrair detalhes de implementação
Para garantir a segurança, a escalabilidade e a visibilidade, é fundamental implementar uma gestão de APIs robusta para os seus serviços de IA e ML. Para implementar a gestão de APIs para as suas interfaces definidas, use os seguintes produtos:
- API Gateway: Para APIs expostas e geridas externamente, o API Gateway oferece um ponto de entrada centralizado e seguro. Simplifica o acesso aos serviços de back-end sem servidor, como APIs de previsão, formação e dados. O API Gateway ajuda a consolidar os pontos de acesso, aplicar contratos de API e gerir capacidades de segurança, como chaves de API e OAuth 2.0. Para proteger os back-ends contra sobrecarga e garantir a fiabilidade, implemente a limitação de taxa e as quotas de utilização no API Gateway.
- Cloud Endpoints: Para simplificar o desenvolvimento e a implementação de APIs no GKE e no Cloud Run, use o Cloud Endpoints, que oferece uma solução fácil de usar para os programadores para gerar chaves de API. Também oferece monitorização e rastreio integrados para chamadas API e automatiza a geração de especificações da OpenAPI, o que simplifica a documentação e a integração do cliente. Pode usar o Cloud Endpoints para gerir o acesso a APIs de IA e ML internas ou controladas, como para acionar a preparação e gerir repositórios de funcionalidades.
- Apigee: Para IA e ML à escala empresarial, especialmente APIs de IA generativa sofisticadas, o Apigee oferece gestão de APIs avançada e abrangente. Use o Apigee para segurança avançada, como proteção contra ameaças e OAuth 2.0, para gestão de tráfego, como colocação em cache, quotas e mediação, e para estatísticas. O Apigee pode ajudar a obter estatísticas detalhadas sobre os padrões de utilização, o desempenho e a interação da API, que são cruciais para compreender a utilização da API de IA generativa.
Planeie a degradação suave
Nos sistemas de IA e ML de produção, as falhas de componentes são inevitáveis, tal como noutros sistemas. A degradação gradual garante que as funções essenciais continuam a funcionar, potencialmente com um desempenho reduzido. Esta abordagem evita interrupções completas e melhora a disponibilidade geral. A degradação suave é fundamental para a inferência sensível à latência, a preparação distribuída e a IA generativa.
As secções seguintes descrevem as técnicas que usa para planear e implementar a degradação gradual.
Isolamento de falhas
- Para isolar componentes com falhas 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 nas 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 a redundância e a ativação pós-falha automática. Por exemplo, use clusters multizona ou clusters regionais do GKE e implemente serviços do Cloud Run de forma redundante em diferentes regiões. Para encaminhar o tráfego para instâncias em bom estado quando são detetadas instâncias em mau estado, use o Cloud Load Balancing.
Garanta a redundância de dados através de contentores multirregionais do Cloud Storage. Para a preparação distribuída, implemente a criação de pontos de verificação assíncronos para retomar após falhas. Para uma preparação resiliente e elástica, use os Pathways.
Monitorização proativa
A degradação gradual ajuda a garantir a disponibilidade do sistema durante uma falha, mas também tem de implementar medidas proativas para verificações de funcionamento contínuas e uma monitorização abrangente. Recolha métricas específicas da IA e da AA, como a latência, o débito e a utilização da GPU. Além disso, recolha métricas de degradação do desempenho do modelo, como a deriva do modelo e dos dados, através do Cloud Monitoring e do Vertex AI Model Monitoring.
As verificações de estado podem acionar a necessidade de substituir nós com falhas, implementar mais capacidade ou acionar automaticamente a reciclagem ou o ajuste fino contínuos de pipelines que usam dados atualizados. Esta abordagem proativa ajuda a evitar a degradação baseada na precisão e a degradação gradual ao nível do sistema, e ajuda a melhorar a fiabilidade geral.
Práticas de EFS
Para monitorizar o estado de funcionamento dos seus sistemas, pondere adotar práticas de SRE para implementar objetivos ao nível do serviço (SLOs). Os alertas sobre a perda da margem de erro e a velocidade de consumo podem ser indicadores precoces de problemas de fiabilidade com o sistema. Para mais informações sobre as práticas de SRE, consulte o livro SRE da Google.
Crie uma plataforma MLOps ponto a ponto automatizada
Um sistema de IA e ML robusto, escalável e fiável no Google Cloud requer uma plataforma de MLOps ponto a ponto automatizada para o ciclo de vida de desenvolvimento de modelos. O ciclo de vida de desenvolvimento inclui o processamento de dados inicial, a aprendizagem contínua do modelo, a implementação e a monitorização em produção. Ao automatizar estas fases no Google Cloud, estabelece processos repetíveis, reduz o trabalho manual, minimiza os erros e acelera o ritmo da inovação.
Uma plataforma de MLOps automatizada é essencial para estabelecer a fiabilidade de nível de produção para as suas aplicações. A automatização ajuda a garantir a qualidade dos modelos, a garantir a reprodutibilidade e a permitir a integração e a entrega contínuas de artefactos de IA e ML.
Para criar uma plataforma de MLOps automatizada de extremo a extremo, considere as seguintes recomendações.
Automatize o ciclo de vida do 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 passos automatizados e ligados: desde a preparação e validação de dados à preparação, avaliação, implementação e monitorização de modelos.
- Use os Vertex AI Pipelines como orquestrador central:
- Definir fluxos de trabalho completos com componentes modulares para o processamento de dados, a preparação, a avaliação e a implementação.
- Automatize as execuções de pipelines através de agendamentos ou acionadores, como novos dados ou alterações de código.
- Implemente a parametrização e o controlo de versões automatizados para cada execução do pipeline e crie um histórico de versões.
- Monitorize o progresso do pipeline e a utilização de recursos através do registo e da monitorização incorporados, e integre-os com os alertas do Cloud Monitoring.
- Defina os seus pipelines de ML de forma programática através do SDK Kubeflow Pipelines (KFP) ou do SDK TensorFlow Extended. Para mais informações, consulte o artigo Interfaces para pipelines da Vertex AI.
- Orquestre operações através de Google Cloud serviços como o Dataflow, preparação personalizada do Vertex AI, registo de modelos do Vertex AI e pontos finais do Vertex AI.
- Para fluxos de trabalho de IA generativa, organize os passos para a gestão de comandos, a inferência em lote, a avaliação humana no circuito (HITL) e a coordenação dos componentes do ADK.
Faça a gestão da infraestrutura como código
A infraestrutura como código (IaC) é fundamental para gerir a infraestrutura do sistema de IA e ML e para permitir implementações reproduzíveis, escaláveis e de fácil manutenção. As necessidades de infraestrutura dos sistemas de IA e ML são dinâmicas e complexas. Os sistemas requerem frequentemente hardware especializado, como GPUs e TPUs. A IaC ajuda a mitigar os riscos da gestão manual de infraestruturas, garantindo a consistência, permitindo reversões e tornando as implementações repetíveis.
Para gerir eficazmente os recursos de infraestrutura como código, use as seguintes técnicas.
Automatize o aprovisionamento de recursos
Para gerir eficazmente a IaC no Google Cloud, defina e aprovisione os recursos de infraestrutura de IA e ML através do Terraform. A infraestrutura pode incluir recursos como os seguintes:
- Clusters do GKE configurados com node pools. Os conjuntos de nós podem ser otimizados com base nos requisitos da carga de trabalho. Por exemplo, pode usar GPUs A100, H100, H200 ou B200 para a preparação e GPUs L4 para a inferência.
- Pontos finais da Vertex AI que estão configurados para a apresentação de modelos, com tipos de máquinas definidos e políticas de escalabilidade.
- Contentores do Cloud Storage para dados e artefactos.
Use modelos de configuração
Organize as suas configurações do Terraform como modelos modulares. Para acelerar o aprovisionamento de recursos de IA e AA, pode usar o Cluster Toolkit. O conjunto de ferramentas oferece esquemas de exemplo, que são modelos do Terraform selecionados pela Google que pode usar para implementar clusters de HPC, IA e AA prontos a usar no Slurm ou no GKE. Pode personalizar o código do Terraform e geri-lo no seu sistema de controlo de versões. Para automatizar o fluxo de trabalho de aprovisionamento e atualização de recursos, pode integrar o código nos seus pipelines de CI/CD através do Cloud Build.
Automatize as alterações de configuração
Depois de aprovisionar a sua infraestrutura, faça a gestão das alterações de configuração contínuas de forma declarativa:
- Em ambientes centrados no Kubernetes, pode gerir os seus Google Cloud recursos como objetos do Kubernetes através do Config Connector.
- Defina e faça a gestão de recursos do Vertex AI, como conjuntos de dados, modelos e pontos finais, instâncias do Cloud SQL, tópicos do Pub/Sub e contentores do Cloud Storage, através de manifestos YAML.
- Implemente os manifestos no seu cluster do GKE para integrar a configuração da aplicação e da infraestrutura.
- Automatize as atualizações de configuração através de pipelines de CI/CD e use modelos para processar as diferenças entre ambientes.
- Implemente configurações para políticas de gestão de identidade e de acesso (IAM) e contas de serviço através da IaC.
Faça a integração com a CI/CD
- Automatize o ciclo de vida dos recursos de infraestrutura integrando a IaC em pipelines de CI/CD através de ferramentas como o Cloud Build e o Infrastructure Manager. Google Cloud
- Defina acionadores para atualizações automáticas em commits de código.
- Implemente testes e validação automáticos no pipeline. Por exemplo, pode criar um script para executar automaticamente os comandos do Terraform
validate
eplan
. - Armazenar as configurações como artefactos e ativar o controlo de versões.
- Definir ambientes separados, como dev, staging e prod, com configurações distintas no controlo de versões e automatizar a promoção de ambientes.
Valide o comportamento do modelo
Para manter a precisão e a relevância do modelo ao longo do tempo, automatize o processo de preparação e avaliação na sua plataforma de MLOps. Esta automatização, juntamente com a validação rigorosa, ajuda a garantir que os modelos se comportam conforme esperado com dados relevantes antes de serem implementados na produção.
- Configurar pipelines de preparação contínua, que são acionados por novos dados e sinais de monitorização, como a variação dos dados, ou que são executados de acordo com um horário.
- Para gerir tarefas de preparação automatizadas, como testes de ajuste de hiperparâmetros e configurações de preparação distribuída para modelos maiores, use a preparação personalizada da Vertex AI.
- Para otimizar modelos de base, automatize o processo de otimização e integre as tarefas nos seus pipelines.
- Implemente a gestão de versões de modelos automatizada e armazene em segurança os artefactos do modelo preparado após cada execução de preparação bem-sucedida. Pode armazenar os artefactos no Cloud Storage ou registá-los no Model Registry.
- Defina métricas de avaliação e estabeleça limites claros, como precisão mínima, taxa de erro máxima e pontuação F1 mínima.
- Certifique-se de que um modelo cumpre os limites para passar automaticamente na avaliação e ser considerado para implementação.
- Automatize a avaliação através de serviços como a avaliação de modelos na Vertex AI.
- Certifique-se de que a avaliação inclui métricas específicas da qualidade do resultado gerado, da precisão factual, dos atributos de segurança e da conformidade com o estilo ou o formato especificado.
- Para registar e acompanhar 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 preparação e avaliação, use as experiências do Vertex AI. Esta abordagem fornece um histórico útil para comparação, depuração e reprodução.
- Para otimizar a ajustamento de hiperparâmetros e automatizar a procura de configurações de modelos ideais com base no objetivo definido, use o Vertex AI Vizier.
- Para visualizar as métricas de preparação e depurar durante a programação, use o Vertex AI TensorBoard.
Valide as entradas e as saídas dos pipelines de IA e ML
Para garantir a fiabilidade e a integridade dos seus sistemas de IA e ML, tem de validar os dados quando entram nos sistemas e se movem através dos pipelines. Também tem de validar as entradas e as saídas nos limites dos componentes. A validação robusta de todas as entradas e saídas (dados não processados, dados processados, configurações, argumentos e ficheiros) ajuda a evitar um comportamento inesperado e a manter a qualidade do modelo ao longo do ciclo de vida do MLOps. Quando integra esta abordagem proativa na sua plataforma de MLOps, ajuda a detetar erros antes de serem propagados por todo o sistema, o que poupa tempo e recursos.
Para validar eficazmente as entradas e as saídas dos seus pipelines de IA e ML, use as seguintes técnicas.
Automatize a validação de dados
- Implemente a validação de dados automatizada nos seus pipelines de carregamento e pré-processamento de dados através do TensorFlow Data Validation (TFDV).
- Monitorize as distribuições de dados ao longo do tempo com as capacidades do TFDV.
- Visualize tendências através de ferramentas integradas com o Cloud Monitoring para detetar a variação dos dados. Pode acionar automaticamente pipelines de reajuste do modelo quando os padrões de dados mudam significativamente.
- Armazene os resultados da validação e as métricas no BigQuery para análise e acompanhamento do histórico, e arquive os artefactos de validação no Cloud Storage.
Valide as configurações do pipeline e os dados de entrada
Para evitar falhas no pipeline ou um comportamento inesperado causado por definições incorretas, implemente a validação rigorosa para todas as configurações do pipeline e argumentos da linha de comandos:
- Defina esquemas claros para os seus ficheiros de configuração, como YAML ou JSON, usando bibliotecas de validação de esquemas, como jsonschema para Python. Valide os objetos de configuração em relação a estes esquemas antes de iniciar uma execução do pipeline e antes de um componente ser executado.
- Implemente a validação de entradas para todos os argumentos da linha de comandos e parâmetros do pipeline usando bibliotecas de análise de argumentos, como
argparse
. A validação deve verificar se existem tipos de dados corretos, valores válidos e argumentos obrigatórios. - Nos Vertex AI Pipelines, defina os tipos e as propriedades esperados dos parâmetros dos componentes através das funcionalidades de validação de entrada de componentes incorporadas.
- Para garantir a reprodutibilidade das execuções de pipelines e manter uma trilha de auditoria, armazene ficheiros de configuração validados e com controlo de versões no Cloud Storage ou no Artifact Registry.
Valide os ficheiros de entrada e saída
Validar ficheiros de entrada e saída, como conjuntos de dados, artefactos de modelos e relatórios de avaliação quanto à integridade e à correção do formato:
- Valide formatos de ficheiros, como CSV, Parquet, e tipos de imagens através de bibliotecas.
- Para ficheiros grandes ou artefactos críticos, valide os tamanhos dos ficheiros e as somas de verificação para detetar corrupção ou transferências incompletas através da validação de dados e deteção de alterações do Cloud Storage.
- Realize a validação de ficheiros através de funções do Cloud Run (por exemplo, com base em eventos de carregamento de ficheiros) ou em pipelines do Dataflow.
- Armazene os resultados da validação no BigQuery para uma obtenção e análise mais fáceis.
Automatize a implementação e implemente a monitorização contínua
A implementação automática e a monitorização contínua dos modelos em produção ajudam a garantir a fiabilidade, fazer atualizações rápidas e detetar problemas prontamente. Isto implica gerir versões de modelos, implementação controlada, implementação automatizada através de CI/CD e monitorização abrangente, conforme descrito nas secções seguintes.
Faça a gestão das versões do modelo
Faça a gestão das iterações do modelo e dos artefactos associados através de ferramentas de controlo de versões:
- Para acompanhar as versões e os metadados dos modelos, bem como associá-los aos artefactos dos modelos subjacentes, use o Model Registry.
- Implemente um esquema de controlo de versões claro (como o controlo de versões semântico). Para cada versão do modelo, anexe metadados abrangentes, como parâmetros de preparação, métricas de avaliação de pipelines de validação e a versão do conjunto de dados.
- Armazene artefactos de modelos, como ficheiros de modelos, ponderações pré-treinadas e imagens de contentores de publicação no Artifact Registry e use as respetivas funcionalidades de controlo de versões e etiquetagem.
- Para cumprir os requisitos de segurança e governação, defina políticas de controlo de acesso rigorosas para o Model Registry e o Artifact Registry.
- Para registar e gerir versões programaticamente, e integrar versões em pipelines de CI/CD automatizados, use o SDK ou a API Vertex AI.
Faça uma implementação controlada
Controle a implementação de versões de modelos em pontos finais através das capacidades de gestão de tráfego da sua plataforma de publicação.
- Implemente uma implementação progressiva usando a funcionalidade de divisão de tráfego dos pontos finais da Vertex AI.
- Se implementar o seu modelo no GKE, use técnicas avançadas de gestão de tráfego, como a implementação canária:
- Encaminhar um pequeno subconjunto do tráfego de produção para uma nova versão do modelo.
- Monitorize continuamente o desempenho e as taxas de erro através de métricas.
- Estabelecer que o modelo é fiável.
- Implemente a versão para todo o tráfego.
- Realize testes A/B de agentes de IA:
- Implemente duas versões diferentes do agente do modelo ou modelos completamente diferentes no mesmo ponto final.
- Dividir o tráfego entre as implementações.
- Analise os resultados em função dos objetivos da empresa.
- Implemente mecanismos de reversão automáticos que podem reverter rapidamente o tráfego do ponto final para uma versão do modelo estável anterior se forem acionados alertas de monitorização ou se não forem atingidos os limites de desempenho.
- Configure as definições de implementação e divisão de tráfego programaticamente através do SDK ou da API Vertex AI.
- Use o Cloud Monitoring para acompanhar o desempenho e o tráfego entre versões.
- Automatize a implementação com pipelines de CI/CD. Pode usar o Cloud Build para criar contentores, controlar versões de artefactos e acionar a implementação nos pontos finais da Vertex AI.
- Certifique-se de que os pipelines de CI/CD gerem versões e extraem do Artifact Registry.
- Antes de desviar o tráfego, faça testes automatizados de pontos finais para verificar a correção das previsões, a latência, o débito e a função da API.
- Armazene todas as configurações no controlo de versões.
Monitorize continuamente
- Use a
Monitorização de modelos
para detetar automaticamente a degradação do desempenho, a deriva de dados (alterações na distribuição de entradas em comparação com a preparação) e a deriva de previsões (alterações nas saídas do modelo).
- Configure tarefas de deteção de desvio com limites e alertas.
- Monitorize o desempenho em tempo real: latência de previsão, taxa de transferência, taxas de erro.
- Defina métricas personalizadas no Cloud Monitoring para IEDs empresariais.
- Integre os resultados da monitorização de modelos e as métricas personalizadas com o Cloud Monitoring para alertas e painéis de controlo.
- Configure canais de notificação, como email, Slack ou PagerDuty, e configure a correção automática.
- Para depurar registos de previsão, use o Cloud Logging.
- Integre a monitorização com a gestão de incidentes.
Para os pontos finais de IA generativa, monitorize as caraterísticas de saída, como a toxicidade e a coerência:
- Monitorize a publicação de funcionalidades para a deriva.
- Implemente a validação de previsões detalhada: valide os resultados em função dos intervalos e formatos esperados através da lógica personalizada.
- Monitorize as distribuições de previsões para turnos.
- Valide o esquema de saída.
- Configure alertas para resultados e mudanças inesperados.
- Acompanhe e responda a eventos de validação em tempo real através do Pub/Sub.
Certifique-se de que o resultado da monitorização abrangente é usado para a formação contínua.
Mantenha a confiança e o controlo através da gestão de dados e modelos
A fiabilidade da IA e da ML vai além do tempo de atividade técnico. Inclui confiança e governança de dados e modelos robustos. Os resultados da IA podem ser incorretos, tendenciosos ou desatualizados. Estes problemas prejudicam a confiança e podem causar danos. A rastreabilidade abrangente, o controlo de acesso rigoroso, a validação automática e as práticas transparentes ajudam a garantir que os resultados da IA são fiáveis, fidedignos e cumprem as normas de ética.
Para manter a confiança e o controlo através da gestão de dados e modelos, considere as seguintes recomendações.
Estabeleça catálogos de dados e modelos para rastreabilidade
Para facilitar a monitorização, a auditoria e a compreensão abrangentes da linhagem dos seus recursos de IA e aprendizagem automática, mantenha um registo robusto e centralizado das versões de dados e modelos ao longo do respetivo ciclo de vida. Um catálogo de dados e modelos fiável serve como a única fonte de informações verdadeiras para todos os artefactos usados e produzidos pelos seus pipelines de IA e AA, desde origens de dados não processados e conjuntos de dados processados até versões de modelos preparados e pontos finais implementados.
Use os seguintes produtos, ferramentas e técnicas para criar e manter catálogos para os seus recursos de dados:
- Crie um catálogo de recursos de dados ao nível da empresa com o catálogo universal do Dataplex. Para descobrir e criar automaticamente inventários dos recursos de dados, integre o catálogo universal do Dataplex com os seus sistemas de armazenamento, como o BigQuery, o Cloud Storage, e o Pub/Sub.
- Certifique-se de que os seus dados estão altamente disponíveis e são duradouros armazenando-os em recipientes multirregionais ou de duas regiões do Cloud Storage. Os dados que carrega para estes contentores são armazenados de forma redundante em, pelo menos, duas localizações geográficas separadas. Esta redundância oferece resiliência integrada contra interrupções regionais e ajuda a garantir a integridade dos dados.
- Etiquete e anote os seus conjuntos de dados com metadados da empresa relevantes, informações de propriedade, níveis de sensibilidade e detalhes de linhagem. Por exemplo, associe um conjunto de dados processado à respetiva origem não processada e ao pipeline que criou o conjunto de dados.
- Crie um repositório central para versões de modelos através do Model Registry.
Registe cada versão do modelo preparado e associe-a aos metadados associados.
Os metadados podem incluir o seguinte:
- Parâmetros de preparação.
- Métricas de avaliação de pipelines de validação.
- Versão do conjunto de dados que foi usada para a preparação, com a linhagem rastreada até à entrada relevante do catálogo universal do Dataplex.
- Versão do código que produziu o conjunto de dados.
- Detalhes sobre a framework ou o modelo base que foi usado.
- Antes de importar um modelo para o Model Registry, armazene artefactos do modelo, como ficheiros de modelos e pesos pré-treinados, num serviço como o Cloud Storage. Armazene imagens de contentores personalizados para publicação ou tarefas de preparação personalizadas num repositório seguro, como o Artifact Registry.
- Para garantir que os dados e os recursos do modelo são registados e atualizados automaticamente nos respetivos catálogos após a criação ou a modificação, implemente processos automatizados nos seus pipelines de MLOps. Esta catalogação abrangente oferece rastreabilidade integral desde os dados não processados até à previsão, o que lhe permite auditar as entradas e os processos que originaram uma versão ou uma previsão específica do modelo. A capacidade de auditoria é essencial para depurar comportamentos inesperados, garantir a conformidade com as políticas de utilização de dados e compreender o impacto das alterações de dados ou modelos ao longo do tempo.
- Para a IA generativa e os modelos de base, o seu catálogo também tem de monitorizar os detalhes sobre o modelo de base específico usado, os parâmetros de ajuste preciso e os resultados da avaliação específicos da qualidade e da segurança do resultado gerado.
Implemente controlos de acesso e registos de auditoria robustos
Para manter a confiança e o controlo nos seus sistemas de IA e ML, é essencial que proteja os dados e os modelos confidenciais contra o acesso não autorizado e garanta a responsabilização por todas as alterações.
- Implemente controlos de acesso rigorosos e mantenha registos de auditoria detalhados em todos os componentes dos seus sistemas de IA e AA no Google Cloud.
- Defina autorizações detalhadas na IAM para utilizadores, grupos e contas de serviço que interagem com os seus recursos de IA e ML.
- Siga rigorosamente o princípio do menor privilégio.
- Conceda apenas as autorizações mínimas necessárias para tarefas específicas. Por exemplo, uma conta de serviço de preparação precisa de acesso de leitura aos dados de preparação e acesso de escrita aos artefactos do modelo, mas o serviço pode não precisar de acesso de escrita aos pontos finais de fornecimento de produção.
Aplique políticas IAM de forma consistente em todos os recursos e recursos relevantes nos seus sistemas de IA e ML, incluindo o seguinte:
- Contentores do Cloud Storage que contêm dados confidenciais ou artefactos de modelos.
- Conjuntos de dados do BigQuery.
- Recursos da Vertex AI, como repositórios de modelos, pontos finais, pipelines e recursos do Feature Store.
- Recursos de computação, como clusters do GKE e serviços do Cloud Run.
Use a auditoria e os registos para capturar, monitorizar e analisar a atividade de acesso:
- Ative os registos de auditoria do Google Cloud para todos os serviços usados pelo seu sistema de IA e ML. Google Cloud
- Configure registos de auditoria para captar informações detalhadas sobre chamadas API, eventos de acesso a dados e alterações de configuração feitas aos seus recursos. Monitorize os registos para verificar a existência de atividade suspeita, tentativas de acesso não autorizadas ou modificações inesperadas a dados críticos ou recursos do modelo.
- Para análise, alertas e visualização em tempo real, transmita os registos de auditoria para o Cloud Logging.
- Para um armazenamento a longo prazo rentável e uma análise de segurança retrospetiva ou auditorias de conformidade, exporte os registos para o BigQuery.
- Para uma monitorização de segurança centralizada, integre os registos de auditoria com os seus sistemas de informação de segurança e gestão de eventos (SIEM). Reveja regularmente as políticas de acesso e as pistas de auditoria para garantir que estão alinhadas com os seus requisitos de governação e detetar potenciais violações de políticas.
- Para aplicações que processam dados confidenciais, como informações de identificação pessoal (IIP) para preparação ou inferência, use verificações de proteção de dados confidenciais em pipelines ou no armazenamento de dados.
- Para a IA generativa e as soluções baseadas em agentes, use registos de auditoria para ajudar a monitorizar quem acedeu a modelos ou ferramentas específicos, que dados foram usados para o ajuste ou os comandos e que consultas foram enviadas para os pontos finais de produção. As pistas de auditoria ajudam a garantir a responsabilidade e fornecem dados cruciais para investigar a utilização indevida de dados ou violações de políticas.
Abordar o viés, a transparência e a explicabilidade
Para criar sistemas de IA e ML fiáveis, tem de resolver potenciais parcialidades inerentes aos dados e aos modelos, esforçar-se pela transparência no comportamento do sistema e fornecer capacidade de explicação para os resultados do modelo. É especialmente crucial criar sistemas fidedignos em domínios sensíveis ou quando usa modelos complexos, como os que são normalmente usados para aplicações de IA generativa.
- Implemente práticas proativas para identificar e mitigar a parcialidade ao longo do ciclo de vida do MLOps.
- Analise os dados de preparação quanto a parcialidade através de ferramentas que detetam a assimetria nas distribuições de caraterísticas em diferentes grupos demográficos ou atributos sensíveis.
- Avalie o desempenho geral do modelo e o desempenho em fatias de dados predefinidas. Esta avaliação ajuda a identificar o desempenho dispar ou a parcialidade que afeta subgrupos específicos.
Para a transparência e a explicabilidade dos modelos, use ferramentas que ajudem os utilizadores e os programadores a compreenderem por que motivo um modelo fez uma determinada previsão ou produziu um resultado específico.
- Para modelos tabulares implementados em endpoints do Vertex AI, gere atribuições de caraterísticas através do Vertex Explainable AI. As atribuições de caraterísticas indicam as caraterísticas de entrada que mais contribuíram para a previsão.
- Explore de forma interativa o comportamento do modelo e os potenciais preconceitos num conjunto de dados através de ferramentas independentes do modelo, como a ferramenta de análise de hipóteses, que se integra com o TensorBoard.
- Integre a explicabilidade nos seus painéis de controlo de monitorização. Em situações em que a compreensão do raciocínio do modelo é importante para a confiança ou a tomada de decisões, forneça dados de explicabilidade diretamente aos utilizadores finais através das interfaces da sua aplicação.
- Para modelos complexos, como os LLMs, que são usados para modelos de IA generativa, explique o processo que um agente seguiu, por exemplo, usando registos de rastreio. A capacidade de explicação é relativamente desafiante para estes modelos, mas continua a ser essencial.
- Em aplicações RAG, forneça citações para informações obtidas. Também pode usar técnicas como a engenharia de comandos para orientar o modelo a fornecer explicações ou mostrar os respetivos passos de raciocínio.
- Detete alterações no comportamento ou nos resultados do modelo que possam indicar a emergência de parcialidade ou injustiça através da implementação de uma monitorização contínua na produção. Documente as limitações do modelo, os exemplos de utilização pretendidos e as potenciais parcialidades conhecidas como parte dos metadados do modelo no Model Registry.
Implemente práticas holísticas de observabilidade e fiabilidade de IA e ML
A observabilidade holística é essencial para gerir sistemas complexos de IA e AA em produção. Também é essencial para medir a fiabilidade de sistemas complexos de IA e ML, especialmente para a IA generativa, devido à sua complexidade, intensidade de recursos e potencial de resultados imprevisíveis. A observabilidade holística envolve a observação da infraestrutura, do código da aplicação, dos dados e do comportamento do modelo para obter estatísticas para a deteção, o diagnóstico e a resposta proativos a problemas. Esta observabilidade resulta, em última análise, em sistemas fiáveis e de elevado desempenho. Para alcançar uma observabilidade holística, tem de fazer o seguinte:
- Adote os princípios de EFS.
- Defina objetivos de fiabilidade claros.
- Monitorize as métricas nas camadas do sistema.
- Use as estatísticas da observabilidade para uma melhoria contínua e uma gestão proativa.
Para implementar práticas de fiabilidade e observabilidade holísticas para cargas de trabalho de IA e ML no Google Cloud, considere as seguintes recomendações.
Estabeleça objetivos de fiabilidade e métricas empresariais
Identifique os indicadores essenciais de desempenho (IEDs) que o seu sistema de IA e ML afeta diretamente. Os IEDs podem incluir a receita influenciada pelas recomendações de IA, a rotatividade de clientes prevista ou mitigada pelos sistemas de IA e as taxas de conversão e interação dos utilizadores geradas pelas funcionalidades de IA generativa.
Para cada IED, defina as métricas de fiabilidade técnica correspondentes que afetam o IED. Por exemplo, se o KPI for "satisfação do cliente com um assistente de IA conversacional", as métricas de fiabilidade correspondentes podem incluir o seguinte:
- A taxa de êxito dos pedidos dos utilizadores.
- A latência das respostas: tempo até ao primeiro token (TTFT) e streaming de tokens para GMLs.
- A taxa de respostas irrelevantes ou prejudiciais.
- A taxa de conclusão de tarefas com êxito pelo agente.
Para a preparação de IA e AA, as métricas de fiabilidade podem incluir a utilização de FLOPS do modelo (MFU), iterações por segundo, tokens por segundo e tokens por dispositivo.
Para medir e melhorar eficazmente a fiabilidade da IA e da aprendizagem automática, comece por definir objetivos de fiabilidade claros que estejam alinhados com os objetivos empresariais gerais. Adote a abordagem de SRE definindo SLOs que quantificam os níveis aceitáveis de fiabilidade e desempenho para os seus serviços de IA e ML na perspetiva dos utilizadores. Quantifique estas métricas de fiabilidade técnica com alvos de SLO específicos.
Seguem-se exemplos de objetivos de SLO:
- 99,9% das chamadas API têm de devolver uma resposta bem-sucedida.
- A latência de inferência do percentil 95 tem de ser inferior a 300 ms.
- O TTFT tem de ser inferior a 500 ms para 99% dos pedidos.
- A taxa de resultados prejudiciais tem de ser inferior a 0,1%.
O alinhamento dos SLOs diretamente com as necessidades da empresa garante que os esforços de fiabilidade se concentram no comportamento do sistema mais crítico que afeta os utilizadores e a empresa. Esta abordagem ajuda a transformar a fiabilidade numa propriedade de engenharia mensurável e acionável.
Monitorize o desempenho da infraestrutura e das aplicações
Monitorize as métricas de infraestrutura em todos os recursos usados pelos seus sistemas de IA e ML. As métricas incluem a utilização do processador (CPU, GPU e TPU), a utilização de memória, a taxa de transferência e a latência da rede, bem como a E/S do disco. Monitorize as métricas para ambientes geridos, como a preparação e a publicação do Vertex AI, e para recursos autogeridos, como nós do GKE e instâncias do Cloud Run.
Monitorize os quatro sinais fundamentais para as suas aplicações de IA e ML:
- Latência: tempo de resposta aos pedidos.
- Tráfego: volume de pedidos ou carga de trabalho.
- Taxa de erros: taxa de pedidos ou operações com falhas.
- Saturação: utilização de recursos críticos, como CPU, memória e aceleradores de GPU ou TPU, que indica a proximidade do seu sistema dos limites de capacidade.
Realize a monitorização através das seguintes técnicas:
- Recolha, armazene e visualize as métricas de infraestrutura e aplicação através do Cloud Monitoring.
Pode usar painéis de controlo pré-criados para Google Cloud serviços e criar
painéis de controlo personalizados adaptados com base nos indicadores de desempenho específicos da sua carga de trabalho e no estado da infraestrutura.
- Recolha e integre métricas de frameworks de publicação especializados, como o vLLM ou o NVIDIA Triton Inference Server, no Cloud Monitoring através do Google Cloud Managed Service for Prometheus.
- Crie painéis de controlo e configure alertas para métricas relacionadas com a preparação personalizada, os pontos finais e o desempenho, bem como para métricas que o Vertex AI exporta para o Cloud Monitoring.
- Recolha registos detalhados das suas aplicações de IA e ML, bem como da infraestrutura subjacente, através do Cloud Logging. Estes registos são essenciais para a resolução de problemas e a análise do desempenho. Fornecem contexto sobre eventos e erros.
- Identifique problemas de latência e compreenda os fluxos de pedidos nos microsserviços de IA e aprendizagem automática distribuídos através do Cloud Trace. Esta capacidade é fundamental para depurar interações complexas dos agentes da Vertex AI ou pipelines de inferência de vários componentes.
- Identifique restrições de desempenho em blocos de funções no código da aplicação usando o Cloud Profiler. A identificação de restrições de desempenho pode ajudar a otimizar a utilização de recursos e o tempo de execução.
- Recolha métricas específicas relacionadas com aceleradores, como a utilização detalhada da GPU por processo, a utilização de memória por processo e a temperatura, através de ferramentas como o NVIDIA Data Center GPU Manager (DCGM).
Implemente a observabilidade de dados e modelos
Os sistemas de IA generativa fiáveis requerem dados robustos e observabilidade dos modelos, o que começa com a monitorização da pipeline ponto a ponto.
- Monitorize as taxas de carregamento de dados, os volumes processados e as latências de transformação através de serviços como o Dataflow.
- Monitorize as taxas de sucesso e falha de tarefas nos seus pipelines de MLOps, incluindo pipelines geridos pelo Vertex AI Pipelines.
A avaliação contínua da qualidade de dados é fundamental.
- Faça a gestão e a governação dos dados através do
catálogo universal do Dataplex:
- Avalie a precisão validando-a com base na verdade fundamental ou monitorizando as taxas de deteção de valores atípicos.
- Monitorize a atualidade com base na antiguidade dos dados e na frequência das atualizações em relação aos SLAs.
- Avalie a integridade acompanhando as percentagens de valores nulos e as taxas de preenchimento de campos obrigatórios.
- Garantir a validade e a consistência através de verificações de conformidade com o esquema e duplicação.
- Detete proativamente anomalias através de alertas do Cloud Monitoring e através de uma linhagem de dados clara para rastreabilidade.
- Para sistemas RAG, examine a relevância do contexto obtido e a fundamentação (atribuição à fonte) das respostas.
- Monitorize o débito das consultas da base de dados vetorial.
As principais métricas de observabilidade do modelo incluem contagens de tokens de entrada-saída e taxas de erro específicas do modelo, como alucinações ou falhas de resolução de consultas. Para acompanhar estas métricas, use a Monitorização de modelos.
- Monitorize continuamente as pontuações de toxicidade da saída e as classificações de feedback dos utilizadores.
- Automatize a avaliação dos resultados do modelo em função de critérios definidos através do serviço de avaliação de IA gen.
- Garanta um desempenho sustentado monitorizando sistematicamente a deriva de dados e conceitos com métricas abrangentes da taxa de erro.
Para acompanhar as métricas do modelo, pode usar o TensorBoard ou o MLflow. Para uma análise detalhada e criação de perfis para resolver problemas de desempenho, pode usar a criação de perfis do PyTorch XLA ou o NVIDIA Nsight.
Colaboradores
Autores:
- Rick (Rugui) Chen | AI Infrastructure Field Solutions Architect
- Stef Ruinard | Generative AI Field Solutions Architect
Outros colaboradores:
- Filipe Gracio, PhD | Engenheiro de clientes, especialista em IA/AA
- Hossein Sarshar | AI Infrastructure Field Solution Architect
- Jose Andrade | Customer Engineer, SRE Specialist
- Kumar Dhanagopal | Cross-Product Solution Developer
- Laura Hyatt | Customer Engineer, FSI
- Olivier Martin | AI Infrastructure Field Solution Architect
- Radhika Kanakam | Program Lead, Google Cloud Well-Architected Framework