Este documento no Google Cloud Well-Architected Framework descreve princípios e recomendações para ajudar a conceber, criar e gerir cargas de trabalho de IA e ML que Google Cloud cumprem os seus objetivos operacionais, de segurança, fiabilidade, custo e desempenho.
O público-alvo deste documento inclui decisores, arquitetos, administradores, programadores e operadores que concebem, criam, implementam e mantêm cargas de trabalho de IA e ML no Google Cloud.
As páginas seguintes descrevem princípios e recomendações específicos da IA e da aprendizagem automática para cada pilar da Well-Architected Framework:
- Perspetiva da IA e ML: excelência operacional
- Perspetiva da IA e ML: segurança
- Perspetiva da IA e ML: fiabilidade
- Perspetiva da IA e da aprendizagem automática: otimização de custos
- Perspetiva da IA e ML: otimização do desempenho
Colaboradores
Autores:
- Benjamin Sadik | Customer Engineer especialista em IA e ML
- Charlotte Gistelinck, PhD | Partner Engineer
- Filipe Gracio, PhD | Engenheiro de clientes, especialista em IA/AA
- Isaac Lo | Gestor de desenvolvimento empresarial de IA
- Kamilla Kurta | Customer Engineer especialista em IA gen/ML
- Mohamed Fawzi | Benelux Security and Compliance Lead
- Rick (Rugui) Chen | AI Infrastructure Field Solutions Architect
- Sannya Dang | Arquiteta de soluções de IA
Outros colaboradores:
- Daniel Lees | Arquiteto de segurança da nuvem
- Gary Harmson | Principal Architect
- Jose Andrade | Customer Engineer, SRE Specialist
- Kumar Dhanagopal | Cross-Product Solution Developer
- Marwan Al Shawi | Partner Customer Engineer
- Nicolas Pintaux | Customer Engineer, Application Modernization Specialist
- Radhika Kanakam | Program Lead, Google Cloud Well-Architected Framework
- Ryan Cox | Principal Architect
- Samantha He | Redatora técnica
- Stef Ruinard | Generative AI Field Solutions Architect
- Wade Holmes | Global Solutions Director
- Zach Seils | Especialista em redes
Perspetiva da IA e ML: excelência operacional
Este documento no 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 robustos no Google Cloud. Estas recomendações ajudam a configurar elementos de base, como observabilidade, automatização e escalabilidade. As recomendações neste documento estão alinhadas com o pilar de excelência operacional da Google Cloud framework bem arquitetada.
A excelência operacional no domínio da IA e da AA é a capacidade de implementar, gerir e governar facilmente os sistemas e os pipelines de IA e AA que ajudam a impulsionar os objetivos estratégicos da sua organização. A excelência operacional permite-lhe responder de forma eficiente às alterações, reduzir a complexidade operacional e garantir que as suas operações permanecem alinhadas com os objetivos de negócio.
As recomendações neste documento estão mapeadas para os seguintes princípios fundamentais:
- Crie uma base robusta para o desenvolvimento de modelos
- Automatize o ciclo de vida de desenvolvimento de modelos
- Implemente a observabilidade
- Crie uma cultura de excelência operacional
- Crie em função da escalabilidade
Crie uma base robusta para o desenvolvimento de modelos
Para desenvolver e implementar sistemas de IA escaláveis e fiáveis que ajudam a alcançar os seus objetivos empresariais, é essencial uma base de desenvolvimento de modelos robusta. Esta base permite fluxos de trabalho consistentes, automatiza passos críticos para reduzir erros e garante que os modelos podem ser dimensionados de acordo com a procura. Uma base de desenvolvimento de modelos sólida garante que os seus sistemas de ML podem ser atualizados, melhorados e reciclados de forma integrada. A base também ajuda a alinhar o desempenho dos seus modelos com as necessidades da empresa, implementar rapidamente soluções de IA impactantes e adaptar-se aos requisitos em constante mudança.
Para criar uma base sólida para desenvolver os seus modelos de IA, considere as seguintes recomendações.
Defina os problemas e os resultados necessários
Antes de iniciar qualquer projeto de IA ou aprendizagem automática, tem de compreender claramente os problemas empresariais a resolver e os resultados necessários. Comece com um resumo dos objetivos empresariais e divida-os em indicadores essenciais de desempenho (KPIs) mensuráveis. Para organizar e documentar as definições e as hipóteses dos seus problemas num ambiente de bloco de notas do Jupyter, use ferramentas como o Vertex AI Workbench. Para implementar o controlo de versões para código e documentos, e para documentar os seus projetos, objetivos e pressupostos, use ferramentas como o Git. Para desenvolver e gerir comandos para aplicações de IA generativa, pode usar o Vertex AI Studio.
Recolha e pré-processe os dados necessários
Para implementar o pré-processamento e a transformação de dados, pode usar o Dataflow (para o Apache Beam), Dataproc (para o Apache Spark) ou o BigQuery se um processo baseado em SQL for adequado. Para validar esquemas e detetar anomalias, use a validação de dados do TensorFlow (TFDV) e tire partido das análises automatizadas da qualidade dos dados no BigQuery, quando aplicável.
Para a IA generativa, a qualidade dos dados inclui a precisão, a relevância, a diversidade e o alinhamento com as características de saída necessárias. Nos casos em que os dados do mundo real são insuficientes ou desequilibrados, pode gerar dados sintéticos para ajudar a melhorar a robustez e a generalização do modelo. Para criar conjuntos de dados sintéticos com base em padrões existentes ou aumentar os dados de preparação para um melhor desempenho do modelo, use os DataFrames do BigQuery e o Gemini. Os dados sintéticos são particularmente valiosos para a IA generativa porque podem ajudar a melhorar a diversidade dos comandos e a robustez geral do modelo. Quando cria conjuntos de dados para o ajuste fino de modelos de IA generativa, considere usar as capacidades de geração de dados sintéticos na Vertex AI.
Para tarefas de IA generativa, como o ajuste preciso ou a aprendizagem reforçada pelo feedback humano (ARFH), certifique-se de que as etiquetas refletem com precisão a qualidade, a relevância e a segurança dos resultados gerados.
Selecione uma abordagem de ML adequada
Quando cria o modelo e os parâmetros, considere a complexidade do modelo e as necessidades de computação. Consoante a tarefa (como classificação, regressão ou geração), considere usar a preparação personalizada do Vertex AI para a criação de modelos personalizados ou o AutoML para tarefas de ML mais simples. Para aplicações comuns, também pode aceder a modelos pré-preparados através do Vertex AI Model Garden. Pode experimentar uma variedade de modelos de base de vanguarda para vários exemplos de utilização, como gerar texto, imagens e código.
Pode querer ajustar um modelo base pré-treinado para alcançar um desempenho ideal para o seu exemplo de utilização específico. Para requisitos de elevado desempenho na preparação personalizada, configure unidades de processamento de tensores (TPUs) da nuvem ou recursos de GPU para acelerar a preparação e a inferência de modelos de aprendizagem profunda, como modelos de linguagem grandes (LLMs) e modelos de difusão.
Configure o controlo de versões para código, modelos e dados
Para gerir e implementar versões de código de forma eficaz, use ferramentas como o GitHub ou o GitLab. Estas ferramentas oferecem funcionalidades de colaboração robustas, estratégias de ramificação e integração com pipelines de CI/CD para garantir um processo de desenvolvimento simplificado.
Use soluções adequadas para gerir cada artefacto do seu sistema de AA, como os seguintes exemplos:
- Para artefactos de código, como imagens de contentores e componentes de pipelines, o Artifact Registry oferece uma solução de armazenamento escalável que pode ajudar a melhorar a segurança. O Artifact Registry também inclui controlo de versões e pode integrar-se com o Cloud Build e o Cloud Deploy.
- Para gerir artefactos de dados, como conjuntos de dados usados para preparação e avaliação, use soluções como o BigQuery ou o Cloud Storage para armazenamento e controlo de versões.
- Para armazenar metadados e ponteiros para localizações de dados, use o seu sistema de controlo de versões ou um catálogo de dados separado.
Para manter a consistência e o controlo de versões dos dados das funcionalidades, use o Vertex AI Feature Store. Para monitorizar e gerir artefactos de modelos, incluindo ficheiros binários e metadados, use o Registo de modelos do Vertex AI, que lhe permite armazenar, organizar e implementar versões de modelos de forma integrada.
Para garantir a fiabilidade do modelo, implemente o Vertex AI Model Monitoring. Detete a deriva de dados, monitorize o desempenho e identifique anomalias na produção. Para os sistemas de IA generativa, monitorize as alterações na qualidade do resultado e na conformidade com a segurança.
Automatize o ciclo de vida do desenvolvimento de modelos
A automatização ajuda a simplificar todas as fases do ciclo de vida da IA e da AA. A automatização reduz o esforço manual e padroniza os processos, o que leva a uma eficiência operacional melhorada e a um menor risco de erros. Os fluxos de trabalho automatizados permitem uma iteração mais rápida, uma implementação consistente em todos os ambientes e resultados mais fiáveis, para que os seus sistemas possam ser dimensionados e adaptados sem problemas.
Para automatizar o ciclo de vida de desenvolvimento dos seus sistemas de IA e AA, considere as seguintes recomendações.
Use um sistema de orquestração de pipelines gerido
Use os pipelines da Vertex AI para automatizar cada passo do ciclo de vida da aprendizagem automática, desde a preparação de dados à preparação, avaliação e implementação de modelos. Para acelerar a implementação e promover a consistência entre projetos, automatize tarefas recorrentes com execuções de pipelines agendadas, monitorize fluxos de trabalho com métricas de execução e desenvolva modelos de pipelines reutilizáveis para fluxos de trabalho padronizados. Estas capacidades estendem-se aos modelos de IA generativa, que requerem frequentemente passos especializados, como a engenharia de comandos, a filtragem de respostas e a avaliação human-in-the-loop. Para a IA generativa, os Vertex AI Pipelines podem automatizar estes passos, incluindo a avaliação dos resultados gerados em função das métricas de qualidade e das diretrizes de segurança. Para melhorar a diversidade dos comandos e a robustez do modelo, os fluxos de trabalho automatizados também podem incluir técnicas de aumento de dados.
Implemente pipelines de CI/CD
Para automatizar a criação, o teste e a implementação de modelos de AA, use o Cloud Build. Este serviço é particularmente eficaz quando executa conjuntos de testes para o código da aplicação, o que garante que a infraestrutura, as dependências e a preparação de modelos cumprem os seus requisitos de implementação.
Os sistemas de ML requerem frequentemente passos adicionais além dos testes de código. Por exemplo, tem de testar a resistência dos modelos sob cargas variáveis, fazer avaliações em massa para avaliar o desempenho do modelo em diversos conjuntos de dados e validar a integridade dos dados antes de voltar a preparar. Para simular cargas de trabalho realistas para testes de esforço, pode usar ferramentas como Locust, Grafana k6 ou Apache JMeter. Para identificar gargalos, monitorize as principais métricas, como a latência, a taxa de erros e a utilização de recursos através do Cloud Monitoring. Para a IA generativa, os testes também têm de incluir avaliações específicas do tipo de conteúdo gerado, como a qualidade do texto, a fidelidade da imagem ou a funcionalidade do código. Estas avaliações podem envolver métricas automatizadas, como a perplexidade para modelos de linguagem ou a avaliação humana para aspetos mais complexos como a criatividade e a segurança.
Para implementar tarefas de testes e avaliação, pode integrar o Cloud Build com outros Google Cloud serviços. Por exemplo, pode usar os Vertex AI Pipelines para a avaliação automatizada de modelos, o BigQuery para a análise de dados em grande escala e a validação de pipelines do Dataflow para a validação de caraterísticas.
Pode melhorar ainda mais o seu pipeline de CI/CD usando o Vertex AI para formação contínua para ativar a reciclagem automática de modelos em novos dados. Especificamente para a IA generativa, para manter os resultados gerados relevantes e diversificados, a reciclagem pode envolver a atualização automática dos modelos com novos dados ou comandos de preparação. Pode usar o Vertex AI Model Garden para selecionar os modelos de base mais recentes que estão disponíveis para otimização. Esta prática garante que os modelos permanecem atualizados e otimizados para as necessidades da sua empresa em constante evolução.
Implemente lançamentos de modelos seguros e controlados
Para minimizar os riscos e garantir implementações fiáveis, implemente uma abordagem de lançamento de modelos que lhe permita detetar problemas antecipadamente, validar o desempenho e reverter rapidamente quando necessário.
Para criar pacotes dos seus modelos e aplicações de AA em imagens de contentores e implementá-los, use o Cloud Deploy. Pode implementar os seus modelos em pontos finais da Vertex AI.
Implemente lançamentos controlados para as suas aplicações e sistemas de IA através de estratégias como os lançamentos canary. Para aplicações que usam modelos geridos, como o Gemini, recomendamos que lance gradualmente novas versões da aplicação para um subconjunto de utilizadores antes da implementação completa. Esta abordagem permite-lhe detetar potenciais problemas antecipadamente, especialmente quando usa modelos de IA generativa em que os resultados podem variar.
Para lançar modelos ajustados, pode usar o Cloud Deploy para gerir a implementação das versões do modelo e usar a estratégia de lançamento canário para minimizar o risco. Com os modelos geridos e os modelos otimizados, o objetivo dos lançamentos controlados é testar alterações com um público-alvo limitado antes de lançar as aplicações e os modelos para todos os utilizadores.
Para uma validação robusta, use as experiências do Vertex AI para comparar novos modelos com os existentes e use a avaliação de modelos do Vertex AI para avaliar o desempenho do modelo. Especificamente para a IA generativa, defina métricas de avaliação que se alinhem com o exemplo de utilização pretendido e os potenciais riscos. Pode usar o serviço de avaliação de IA gen no Vertex AI para avaliar métricas como toxicidade, coerência, precisão factual e conformidade com as diretrizes de segurança.
Para garantir a fiabilidade da implementação, precisa de um plano de reversão robusto. Para sistemas de ML tradicionais, use o Vertex AI Model Monitoring para detetar a variação dos dados e a degradação do desempenho. Para modelos de IA generativa, pode acompanhar métricas relevantes e configurar alertas para alterações na qualidade do resultado ou o surgimento de conteúdo prejudicial através da avaliação de modelos do Vertex AI, juntamente com o Cloud Logging e o Cloud Monitoring. Configure alertas com base em métricas específicas da IA generativa para acionar procedimentos de reversão quando necessário. Para acompanhar a linhagem do modelo e reverter para a versão estável mais recente, use as estatísticas do Registo de modelos da Vertex AI.
Implemente a observabilidade
O comportamento dos sistemas de IA e AA pode mudar ao longo do tempo devido a alterações nos dados ou no ambiente e a atualizações dos modelos. Esta natureza dinâmica torna a observabilidade crucial para detetar problemas de desempenho, parcialidades ou comportamento inesperado. Isto é especialmente verdade para os modelos de IA generativa, uma vez que os resultados podem ser altamente variáveis e subjetivos. A observabilidade permite-lhe abordar proativamente o comportamento inesperado e garantir que os seus sistemas de IA e ML permanecem fiáveis, precisos e justos.
Para implementar a observabilidade dos seus sistemas de IA e ML, considere as seguintes recomendações.
Monitorize o desempenho de forma contínua
Use métricas e critérios de sucesso para a avaliação contínua dos modelos após a implementação.
Pode usar o Vertex AI Model Monitoring para monitorizar proativamente o desempenho do modelo, identificar a discrepância entre a preparação e a apresentação, bem como a deriva de previsão, e receber alertas para acionar a nova preparação do modelo necessária ou outras intervenções. Para monitorizar eficazmente a discrepância entre a preparação e a publicação, crie um conjunto de dados de referência que represente a distribuição de dados ideal e use o TFDV para analisar os dados de preparação e estabelecer um esquema de base.
Configure a monitorização de modelos para comparar a distribuição dos dados de entrada com o conjunto de dados de referência para a deteção automática de desvios. Para os modelos de ML tradicionais, concentre-se nas métricas, como a precisão, a revocação, a pontuação F1, a AUC-ROC e a perda logarítmica. Defina limites personalizados para alertas na monitorização de modelos. Para a IA generativa, use o serviço de avaliação de IA gen para monitorizar continuamente o resultado do modelo em produção. Também pode ativar métricas de avaliação automáticas para a qualidade da resposta, a segurança, a conformidade com as instruções, a fundamentação, o estilo de escrita e a verbosidade. Para avaliar a qualidade, a relevância, a segurança e a conformidade com as diretrizes dos resultados gerados, pode incorporar a avaliação human-in-the-loop.
Crie ciclos de feedback para voltar a preparar automaticamente os modelos com os pipelines do Vertex AI quando a monitorização de modelos aciona um alerta. Use estas estatísticas para melhorar continuamente os seus modelos.
Avalie modelos durante o desenvolvimento
Antes de implementar os seus MDIs e outros modelos de IA generativa, avalie-os exaustivamente durante a fase de desenvolvimento. Use a avaliação de modelos da Vertex AI para alcançar um desempenho ideal e mitigar o risco. Use a avaliação rápida da Vertex AI para permitir que as avaliações sejam executadas automaticamente com base no conjunto de dados e nos comandos que fornecer. Google Cloud
Também pode definir e integrar métricas personalizadas específicas do seu exemplo de utilização. Para feedback sobre conteúdo gerado, integre fluxos de trabalho com intervenção humana através da avaliação de modelos do Vertex AI.
Use testes adversariais para identificar vulnerabilidades e potenciais modos de falha. Para identificar e mitigar potenciais parcialidades, use técnicas como a análise de subgrupos e a geração contrafactual. Use as estatísticas recolhidas das avaliações que foram concluídas durante a fase de desenvolvimento para definir a sua estratégia de monitorização de modelos em produção. Prepare a sua solução para a monitorização contínua, conforme descrito na secção Monitorize o desempenho de forma contínua deste documento.
Monitorize a disponibilidade
Para obter visibilidade do estado e do desempenho dos seus pontos finais implementados e infraestrutura, use o Cloud Monitoring. Para os seus pontos finais da Vertex AI, acompanhe as principais métricas, como a taxa de pedidos, a taxa de erros, a latência e a utilização de recursos, e configure alertas para anomalias. Para mais informações, consulte o artigo Métricas do Cloud Monitoring para a Vertex AI.
Monitorizar o estado da infraestrutura subjacente, que pode incluir instâncias do Compute Engine, clusters do Google Kubernetes Engine (GKE) e TPUs e GPUs. Receba recomendações de otimização automatizadas do Active Assist. Se usar o dimensionamento automático, monitorize o comportamento de dimensionamento para garantir que o dimensionamento automático responde adequadamente às alterações nos padrões de tráfego.
Acompanhe o estado das implementações de modelos, incluindo lançamentos de testes e reversões, através da integração do Cloud Deploy com o Cloud Monitoring. Além disso, monitorize potenciais ameaças e vulnerabilidades de segurança através do Security Command Center.
Configure alertas personalizados para limites específicos da empresa
Para uma identificação e retificação atempadas de anomalias e problemas, configure alertas personalizados com base em limites específicos dos seus objetivos de negócio. Seguem-se alguns exemplos de Google Cloud produtos que pode usar para implementar um sistema de alertas personalizado:
- Cloud Logging: Recolha, armazene e analise registos de todos os componentes do seu sistema de IA e AA.
- Cloud Monitoring: crie painéis de controlo personalizados para visualizar as principais métricas e tendências, e defina métricas personalizadas com base nas suas necessidades. Configure alertas para receber notificações sobre problemas críticos e integre os alertas com as suas ferramentas de gestão de incidentes, como o PagerDuty ou o Slack.
- Relatórios de erros: capture e analise automaticamente erros e exceções.
- Cloud Trace: analise o desempenho dos sistemas distribuídos e identifique gargalos. O rastreio é particularmente útil para compreender a latência entre diferentes componentes do seu pipeline de IA e AA.
- Cloud Profiler: Analise continuamente o desempenho do seu código em produção e identifique gargalos de desempenho na utilização da CPU ou da memória.
Crie uma cultura de excelência operacional
Mudar o foco da simples criação de modelos para a criação de soluções de IA sustentáveis, fiáveis e com impacto. Capacitar as equipas para aprenderem, inovarem e melhorarem continuamente, o que leva a ciclos de desenvolvimento mais rápidos, erros reduzidos e maior eficiência. Ao dar prioridade à automatização, à padronização e às considerações éticas, pode garantir que as suas iniciativas de IA e ML oferecem valor de forma consistente, mitigam riscos e promovem o desenvolvimento responsável de IA.
Para criar uma cultura de excelência operacional para os seus sistemas de IA e ML, considere as seguintes recomendações.
Promova a automatização e a padronização
Para enfatizar a eficiência e a consistência, incorpore a automatização e as práticas padronizadas em todas as fases do ciclo de vida da IA e da AA. A automatização reduz os erros manuais e permite que as equipas se foquem na inovação. A padronização garante que os processos são repetíveis e escaláveis em várias equipas e projetos.
Priorize a aprendizagem e a melhoria contínuas
Promova um ambiente em que a educação e a experimentação contínuas sejam princípios fundamentais. Incentive as equipas a manterem-se atualizadas com os avanços da IA e da ML, e ofereça oportunidades de aprendizagem com base em projetos anteriores. Uma cultura de curiosidade e adaptação impulsiona a inovação e garante que as equipas estão preparadas para enfrentar novos desafios.
Cultive a responsabilidade e a propriedade
Crie confiança e alinhamento com funções, responsabilidades e métricas de sucesso claramente definidas. Permitir que as equipas tomem decisões informadas dentro destes limites e estabelecer formas transparentes de medir o progresso. Um sentimento de propriedade motiva as equipas e garante a responsabilidade coletiva pelos resultados.
Incorporar considerações de segurança e ética da IA
Priorizar as considerações éticas em todas as fases de desenvolvimento. Incentive as equipas a pensar criticamente sobre o impacto das respetivas soluções de IA e promova debates sobre a equidade, a parcialidade e o impacto social. Os princípios claros e os mecanismos de responsabilidade garantem que os seus sistemas de IA estão alinhados com os valores organizacionais e promovem a confiança.
Crie em função da escalabilidade
Para dar resposta aos volumes de dados e às exigências dos utilizadores em crescimento, e para maximizar o valor dos investimentos em IA, os seus sistemas de IA e ML têm de ser escaláveis. Os sistemas têm de se adaptar e ter um desempenho ideal para evitar gargalos de desempenho que prejudiquem a eficácia. Quando cria em função da escalabilidade, garante que a infraestrutura de IA consegue lidar com o crescimento e manter a capacidade de resposta. Use uma infraestrutura escalável, planeie a capacidade e use estratégias como o dimensionamento horizontal e os serviços geridos.
Para criar os seus sistemas de IA e ML em função da escalabilidade, considere as seguintes recomendações.
Planeie a capacidade e as quotas
Avalie o crescimento futuro e planeie a capacidade da infraestrutura e as quotas de recursos em conformidade. Trabalhe com as partes interessadas da empresa para compreender o crescimento projetado e, em seguida, defina os requisitos de infraestrutura em conformidade.
Use o Cloud Monitoring para analisar a utilização de recursos do histórico, identificar tendências e projetar necessidades futuras. Realize testes de carga regulares para simular cargas de trabalho e identificar gargalos.
Familiarize-se com as Google Cloud quotas dos serviços que usa, como o Compute Engine, o Vertex AI e o Cloud Storage. Peça proativamente aumentos de quota através da Google Cloud consola e justifique os aumentos com dados da previsão e dos testes de carga. Monitorize a utilização da quota e configure alertas para receber notificações quando a utilização se aproximar dos limites da quota.
Para otimizar a utilização de recursos com base na procura, ajuste o tamanho dos recursos, use VMs do Spot para cargas de trabalho em lote com tolerância a falhas e implemente a escala automática.
Prepare-se para eventos de pico
Certifique-se de que o seu sistema consegue processar picos súbitos de tráfego ou carga de trabalho durante eventos de pico. Documente a sua estratégia de eventos de pico e faça testes regulares para testar a capacidade do seu sistema de processar o aumento da carga.
Para aumentar agressivamente a escala dos recursos quando a procura aumenta, configure políticas de escala automática no Compute Engine e no GKE. Para padrões de picos previsíveis, pondere usar a escala automática preditiva. Para acionar o dimensionamento automático com base em sinais específicos da aplicação, use métricas personalizadas no Cloud Monitoring.
Distribua o tráfego por várias instâncias de aplicações através do Cloud Load Balancing. Escolha um tipo de balanceador de carga adequado com base nas necessidades da sua aplicação. Para utilizadores distribuídos geograficamente, pode usar o balanceamento de carga global para encaminhar o tráfego para a instância disponível mais próxima. Para arquiteturas complexas baseadas em microsserviços, considere usar a Cloud Service Mesh.
Coloque conteúdo estático em cache no limite da rede da Google através do Cloud CDN. Para colocar em cache dados acedidos com frequência, pode usar o Memorystore, que oferece um serviço na memória totalmente gerido para Redis, Valkey ou Memcached.
Desassocie os componentes do seu sistema através do Pub/Sub para mensagens em tempo real e do Cloud Tasks para execução de tarefas assíncronas
Dimensione as aplicações para produção
Para garantir a apresentação escalável em produção, pode usar serviços geridos como a preparação distribuída do Vertex AI e a inferência do Vertex AI. A Vertex AI Inference permite-lhe configurar os tipos de máquinas para os seus nós de previsão quando implementa um modelo num ponto final ou pede previsões em lote. Para algumas configurações, pode adicionar GPUs. Escolha o tipo de máquina e os aceleradores adequados para otimizar a latência, o débito e o custo.
Para dimensionar aplicações de IA e Python complexas, bem como cargas de trabalho personalizadas, em recursos de computação distribuídos, pode usar o Ray no Vertex AI. Esta funcionalidade pode ajudar a otimizar o desempenho e permite uma integração perfeita com os Google Cloud serviços. O Ray na Vertex AI simplifica a computação distribuída ao processar a gestão de clusters, o agendamento de tarefas e a transferência de dados. Integra-se com outros serviços do Vertex AI, como preparação, previsão e pipelines. O Ray oferece tolerância a falhas e escalabilidade automática, e ajuda a adaptar a infraestrutura a cargas de trabalho em constante mudança. Oferece uma estrutura unificada para preparação distribuída, ajuste de hiperparâmetros, aprendizagem por reforço e publicação de modelos. Use o Ray para pré-processamento de dados distribuídos com o Dataflow ou o Dataproc, preparação de modelos acelerada, otimização de hiperparâmetros escalável, aprendizagem por reforço e previsão em lote paralelizada.
Colaboradores
Autores:
- Charlotte Gistelinck, PhD | Partner Engineer
- Sannya Dang | Arquiteta de soluções de IA
- Filipe Gracio, PhD | Engenheiro de clientes, especialista em IA/AA
Outros colaboradores:
- Gary Harmson | Principal Architect
- Kumar Dhanagopal | Cross-Product Solution Developer
- Marwan Al Shawi | Partner Customer Engineer
- Ryan Cox | Principal Architect
- Stef Ruinard | Generative AI Field Solutions Architect
Perspetiva da IA e ML: segurança
Este documento no Well-Architected Framework: perspetiva de IA e ML oferece uma vista geral dos princípios e das recomendações para garantir que as suas implementações de IA e ML cumprem os requisitos de segurança e conformidade da sua organização. As recomendações neste documento estão alinhadas com o pilar de segurança da Google Cloud Well-Architected Framework.
A implementação segura de cargas de trabalho de IA e ML é um requisito essencial, especialmente em ambientes empresariais. Para cumprir este requisito, tem de adotar uma abordagem de segurança holística que começa na conceptualização inicial das suas soluções de IA e ML e se estende ao desenvolvimento, implementação e operações contínuas. Google Cloud oferece ferramentas e serviços robustos concebidos para ajudar a proteger as suas cargas de trabalho de IA e ML.
Defina objetivos e requisitos claros
É mais fácil integrar os controlos de segurança e conformidade necessários no início do processo de design e desenvolvimento do que adicioná-los após o desenvolvimento. Desde o início do processo de design e desenvolvimento, tome decisões adequadas ao seu ambiente de risco específico e às prioridades específicas da sua empresa.
Considere as seguintes recomendações:
- Identifique potenciais vetores de ataque e adote uma perspetiva de segurança e conformidade desde o início. À medida que cria e desenvolve os seus sistemas de IA, acompanhe a superfície de ataque, os potenciais riscos e as obrigações que pode enfrentar.
- Alinhe os seus esforços de segurança de IA e ML com os objetivos da sua empresa e certifique-se de que a segurança é parte integrante da sua estratégia global. Compreenda os efeitos das suas escolhas de segurança nos principais objetivos de negócio.
Mantenha os dados seguros e evite a perda ou o manuseamento indevido
Os dados são um recurso valioso e sensível que tem de ser mantido em segurança. A segurança de dados ajuda a manter a confiança dos utilizadores, apoiar os objetivos da sua empresa e cumprir os requisitos de conformidade.
Considere as seguintes recomendações:
- Não recolha, guarde nem use dados que não sejam estritamente necessários para os seus objetivos de negócio. Se possível, use dados sintéticos ou totalmente anónimos.
- Monitorize a recolha, o armazenamento e a transformação de dados. Manter registos de todas as atividades de acesso e manipulação de dados. Os registos ajudam a auditar o acesso aos dados, detetar tentativas de acesso não autorizado e impedir o acesso indesejado.
- Implemente diferentes níveis de acesso (por exemplo, sem acesso, só de leitura ou gravação) com base nas funções do utilizador. Certifique-se de que as autorizações são atribuídas com base no princípio do menor privilégio. Os utilizadores só devem ter as autorizações mínimas necessárias para lhes permitir realizar as atividades da respetiva função.
- Implemente medidas como a encriptação, os perímetros seguros e as restrições no movimento de dados. Estas medidas ajudam a evitar a exfiltração e a perda de dados.
- Proteja-se contra o envenenamento de dados para os seus sistemas de preparação de ML.
Mantenha os pipelines de IA seguros e robustos contra adulteração
O seu código de IA e ML, bem como os pipelines definidos por código, são recursos críticos. O código que não está protegido pode ser adulterado, o que pode levar a fugas de dados, falhas de conformidade e interrupção de atividades empresariais críticas. Manter o código de IA e ML seguro ajuda a garantir a integridade e o valor dos seus modelos e resultados dos modelos.
Considere as seguintes recomendações:
- Use práticas de programação seguras, como a gestão de dependências ou a validação e a limpeza de entradas, durante o desenvolvimento do modelo para evitar vulnerabilidades.
- Proteja o código do pipeline e os artefactos do modelo, como ficheiros, ponderações do modelo e especificações de implementação, contra o acesso não autorizado. Implemente diferentes níveis de acesso para cada artefacto com base nas funções e nas necessidades dos utilizadores.
- Aplique a linhagem e a monitorização dos seus recursos e execuções de pipelines. Esta aplicação ajuda a cumprir os requisitos de conformidade e a evitar comprometer os sistemas de produção.
Implemente em sistemas seguros com ferramentas e artefactos seguros
Certifique-se de que o seu código e modelos são executados num ambiente seguro que tem um sistema de controlo de acesso robusto com garantias de segurança para as ferramentas e os artefactos implementados no ambiente.
Considere as seguintes recomendações:
- Forme e implemente os seus modelos num ambiente seguro com controlos de acesso adequados e proteção contra utilização ou manipulação não autorizada.
- Siga as diretrizes padrão dos níveis da cadeia de abastecimento para artefactos de software (SLSA) para os seus artefactos específicos de IA, como modelos e pacotes de software.
- Prefira usar imagens de contentores pré-criados validadas que foram especificamente concebidas para cargas de trabalho de IA.
Proteja e monitorize entradas
Os sistemas de IA precisam de entradas para fazer previsões, gerar conteúdo ou automatizar ações. Algumas entradas podem representar riscos ou ser usadas como vetores de ataque que têm de ser detetados e limpos. A deteção precoce de potenciais entradas maliciosas ajuda a manter os seus sistemas de IA seguros e a funcionar conforme previsto.
Considere as seguintes recomendações:
- Implemente práticas seguras para desenvolver e gerir comandos para sistemas de IA generativa e certifique-se de que os comandos são filtrados quanto a intenções prejudiciais.
- Monitorize as entradas nos sistemas preditivos ou generativos para evitar problemas, como pontos finais sobrecarregados ou comandos que os sistemas não foram concebidos para processar.
- Certifique-se de que apenas os utilizadores pretendidos de um sistema implementado o podem usar.
Monitorize, avalie e prepare-se para responder às saídas
Os sistemas de IA oferecem valor porque produzem resultados que aumentam, otimizam ou automatizam a tomada de decisões humanas. Para manter a integridade e a fidedignidade dos seus sistemas e aplicações de IA, tem de se certificar de que as saídas são seguras e estão dentro dos parâmetros esperados. Também precisa de um plano para responder a incidentes.
Considere as seguintes recomendações:
- Monitorize os resultados dos seus modelos de IA e ML em produção e identifique problemas de desempenho, segurança e conformidade.
- Avalie o desempenho do modelo implementando métricas robustas e medidas de segurança, como a identificação de respostas generativas fora do âmbito ou resultados extremos em modelos preditivos. Recolher feedback dos utilizadores sobre o desempenho do modelo.
- Implemente procedimentos de resposta a incidentes e alertas robustos para resolver potenciais problemas.
Colaboradores
Autores:
- Kamilla Kurta | Customer Engineer especialista em IA gen/ML
- Filipe Gracio, PhD | Engenheiro de clientes, especialista em IA/AA
- Mohamed Fawzi | Benelux Security and Compliance Lead
Outros colaboradores:
- Daniel Lees | Arquiteto de segurança da nuvem
- Kumar Dhanagopal | Cross-Product Solution Developer
- Marwan Al Shawi | Partner Customer Engineer
- Wade Holmes | Global Solutions Director
Perspetiva da IA e ML: fiabilidade
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
Perspetiva da IA e ML: otimização de custos
Este documento no Well-Architected Framework: perspetiva da IA e ML oferece uma vista geral dos princípios e recomendações para otimizar o custo dos seus sistemas de IA ao longo do ciclo de vida da ML. Ao adotar uma abordagem de gestão de custos proativa e informada, a sua organização pode concretizar todo o potencial dos sistemas de IA e aprendizagem automática, e também manter a disciplina financeira. As recomendações neste documento estão alinhadas com o pilar de otimização de custos da Google Cloud estrutura bem arquitetada.
Os sistemas de IA e ML podem ajudar a desbloquear estatísticas valiosas e capacidades preditivas a partir dos dados. Por exemplo, pode reduzir o atrito nos processos internos, melhorar as experiências do utilizador, e obter estatísticas mais detalhadas dos clientes. A nuvem oferece grandes quantidades de recursos e um rápido tempo de rentabilização sem grandes investimentos iniciais para cargas de trabalho de IA e ML. Para maximizar o valor empresarial e alinhar os gastos com os objetivos da sua empresa, tem de compreender os fatores de custo, otimizar os custos de forma proativa, configurar controlos de gastos e adotar práticas de FinOps.
As recomendações neste documento estão mapeadas para os seguintes princípios fundamentais:
- Defina e meça os custos e os retornos
- Otimize a atribuição de recursos
- Aplique práticas de gestão e administração de dados
- Automatize e simplifique com MLOps
- Use serviços geridos e modelos pré-treinados
Defina e meça os custos e os retornos
Para gerir eficazmente os custos de IA e ML no Google Cloud, tem de definir e medir os custos dos recursos da nuvem e o valor empresarial das suas iniciativas de IA e ML. Para ajudar a acompanhar as despesas detalhadamente, Google Cloud oferece ferramentas abrangentes de faturação e gestão de custos, como as seguintes:
- Relatórios e tabelas do Cloud Billing
- Painéis de controlo, orçamentos e alertas do Looker Studio
- Cloud Monitoring
- Cloud Logging
Para tomar decisões informadas acerca da atribuição e otimização de recursos, considere as seguintes recomendações.
Estabeleça objetivos empresariais e IEDs
Alinhe as escolhas técnicas nos seus projetos de IA e ML com os objetivos empresariais e os indicadores essenciais de desempenho (IEDs).
Defina objetivos estratégicos e IEDs focados no ROI
Certifique-se de que os projetos de IA e ML estão alinhados com objetivos estratégicos, como o crescimento da receita, a redução de custos, a satisfação do cliente e a eficiência. Interagir com as partes interessadas para compreender as prioridades da empresa. Defina objetivos de IA e ML que sejam específicos, mensuráveis, alcançáveis, relevantes e temporizados (SMART). Por exemplo, um objetivo SMART é: "Reduzir o tempo de processamento do chat para o apoio técnico ao cliente em 15% em 6 meses através da utilização de um chatbot de IA".
Para progredir em função dos objetivos da sua empresa e medir o retorno do investimento (ROI), defina IEDs para as seguintes categorias de métricas:
- Custos de preparação, inferência, armazenamento e recursos de rede, incluindo custos unitários específicos (como o custo por inferência, ponto de dados ou tarefa). Estas métricas ajudam a obter estatísticas sobre oportunidades de eficiência e otimização de custos. Pode acompanhar estes custos através dos relatórios de faturação do Google Cloud e dos painéis de controlo do Google Cloud Monitoring.
- Métricas de valor empresarial, como o crescimento da receita, a poupança de custos, a satisfação do cliente, a eficiência, a precisão e a adoção. Pode acompanhar estas métricas através das estatísticas do BigQuery e dos painéis de controlo do Looker.
Métricas específicas da indústria, como as seguintes:
- Indústria de retalho: meça o aumento da receita e a rotatividade
- Setor de cuidados de saúde: meça o tempo e os resultados dos doentes
- Setor financeiro: meça a redução de fraudes
Métricas específicas do projeto. Pode acompanhar estas métricas através das experiências do Vertex AI e da avaliação.
- IA preditiva: meça a exatidão e a precisão
- IA generativa: meça a adoção, a satisfação e a qualidade do conteúdo
- IA de visão computacional: meça a precisão
Promova uma cultura de consciencialização dos custos e otimização contínua
Adote os princípios da FinOps para garantir que cada projeto de IA e AA tem custos estimados e formas de medir e acompanhar os custos reais ao longo do respetivo ciclo de vida. Certifique-se de que os custos e as vantagens empresariais dos seus projetos têm proprietários atribuídos e responsabilidade clara.
Para mais informações, consulte o artigo Promova uma cultura de sensibilização para os custos no pilar de otimização de custos do Google Cloud Well-Architected Framework.
Gere valor e otimização contínua através da iteração e do feedback
Mapeie as suas aplicações de IA e ML diretamente para os objetivos da sua empresa e meça o ROI.
Para validar as suas hipóteses de ROI, comece com projetos-piloto e use o seguinte ciclo de otimização iterativo:
- Monitorize continuamente e analise os dados: monitorize os IEDs e os custos para identificar desvios e oportunidades de otimização.
- Faça ajustes com base em dados: otimize estratégias, modelos, infraestrutura e atribuição de recursos com base em estatísticas de dados.
- Refine iterativamente: adapte os objetivos da empresa e os IEDs com base nas informações que aprendeu e nas necessidades da empresa em evolução. Esta iteração ajuda a manter a relevância e o alinhamento estratégico.
- Estabeleça um ciclo de feedback: reveja o desempenho, os custos e o valor com as partes interessadas para fundamentar a otimização contínua e o planeamento de projetos futuros.
Faça a gestão dos dados de faturação com a Faturação na nuvem e as etiquetas
A otimização de custos eficaz requer visibilidade da origem de cada elemento de custo. As recomendações nesta secção podem ajudar a usar Google Cloud ferramentas para receber estatísticas detalhadas sobre os seus custos de IA e ML. Também pode atribuir custos a projetos, equipas e atividades específicos de IA e ML. Estas estatísticas preparam o terreno para a otimização de custos.
Organize e etiquete Google Cloud recursos
- Estruture os seus projetos e recursos numa hierarquia que reflita a estrutura organizacional e os seus fluxos de trabalho de IA e ML. Para acompanhar e analisar os custos a diferentes níveis, organize os seus recursos usando organizações, pastas e projetos. Google Cloud Para mais informações, consulte o artigo Decida uma hierarquia de recursos para a sua Google Cloud zona de destino.
- Aplique etiquetas significativas aos seus recursos. Pode usar etiquetas que indiquem o projeto, a equipa, o ambiente, o nome do modelo, o conjunto de dados, o exemplo de utilização e os requisitos de desempenho. As etiquetas fornecem contexto valioso para os seus dados de faturação e permitem uma análise detalhada dos custos.
- Manter a consistência nas convenções de etiquetagem em todos os seus projetos de IA e ML. As convenções de etiquetagem consistentes garantem que os seus dados de faturação estão organizados e podem ser analisados facilmente.
Use ferramentas relacionadas com a faturação
- Para facilitar a análise e os relatórios detalhados, exporte os dados de faturação para o BigQuery. O BigQuery tem capacidades de consulta avançadas que lhe permitem analisar os dados de faturação para ajudar a compreender os seus custos.
- Para agregar custos por etiquetas, projetos ou períodos específicos, pode escrever consultas SQL personalizadas no BigQuery. Essas consultas permitem-lhe atribuir custos a atividades específicas de IA e ML, como a preparação de modelos, o ajuste de hiperparâmetros ou a inferência.
- Para identificar anomalias de custos ou picos de gastos inesperados, use as capacidades de análise no BigQuery. Esta abordagem pode ajudar a detetar potenciais problemas ou ineficiências nas suas cargas de trabalho de IA e ML.
- Para identificar e gerir custos inesperados, use o painel de controlo de deteção de anomalias na Faturação na nuvem.
- Para distribuir os custos por diferentes equipas ou departamentos com base na utilização de recursos, use a funcionalidade de Google Cloudatribuição de custos. A atribuição de custos promove a responsabilidade e a transparência.
- Para obter estatísticas sobre os padrões de gastos, explore os relatórios do Cloud Billing pré-criados. Pode filtrar e personalizar estes relatórios para se focar em projetos ou serviços específicos de IA e ML.
Monitorize os recursos continuamente com painéis de controlo, alertas e relatórios
Para criar uma forma escalável e resiliente de acompanhar os custos, precisa de monitorização e relatórios contínuos. Os painéis de controlo, os alertas e os relatórios constituem a base para um acompanhamento de custos eficaz. Esta base permite-lhe manter o acesso constante às informações de custos, identificar áreas de otimização e garantir o alinhamento entre os objetivos de negócio e os custos.
Crie um sistema de denúncias
Criar relatórios agendados e partilhá-los com os intervenientes adequados.
Use o Cloud Monitoring para recolher métricas de várias origens, incluindo as suas aplicações, infraestrutura e Google Cloud serviços como o Compute Engine, o Google Kubernetes Engine (GKE) e as funções do Cloud Run. Para visualizar métricas e registos em tempo real, pode usar o painel de controlo do Cloud Monitoring predefinido ou criar painéis de controlo personalizados. Os painéis de controlo personalizados permitem-lhe definir e adicionar métricas para acompanhar aspetos específicos dos seus sistemas, como o desempenho do modelo, as chamadas API ou os IEDs ao nível da empresa.
Use o Cloud Logging para a recolha e o armazenamento centralizados de registos das suas aplicações, sistemas e Google Cloud serviços. Use os registos para os seguintes fins:
- Monitorize os custos e a utilização de recursos como CPU, memória, armazenamento e rede.
- Identificar casos de aprovisionamento excessivo (em que os recursos não são totalmente usados) e aprovisionamento insuficiente (em que existem recursos insuficientes). O aprovisionamento excessivo resulta em custos desnecessários. O aprovisionamento insuficiente abranda os tempos de preparação e pode causar problemas de desempenho.
- Identifique recursos inativos ou subutilizados, como VMs e GPUs, e tome medidas para os encerrar ou ajustar o tamanho de forma a otimizar os custos.
- Identifique picos de custos para detetar aumentos súbitos e inesperados na utilização de recursos ou nos custos.
Use o Looker ou o Looker Studio para criar painéis de controlo e relatórios interativos. Associar os painéis de controlo e os relatórios a várias origens de dados, incluindo o BigQuery e o Cloud Monitoring.
Defina limites de alerta com base nos IEDs principais
Para os seus IEDs, determine os limites que devem acionar alertas. Os limites de alerta significativos podem ajudar a evitar a fadiga de alertas. Crie políticas de alerta no Cloud Monitoring para receber notificações relacionadas com os seus IEDs. Por exemplo, pode receber notificações quando a precisão desce abaixo de um determinado limite ou quando a latência excede um limite definido. Os alertas baseados em dados de registo podem enviar-lhe notificações sobre potenciais problemas de custos em tempo real. Estes alertas permitem-lhe tomar medidas corretivas rapidamente e evitar mais perdas financeiras.
Otimize a atribuição de recursos
Para alcançar a eficiência de custos para as suas cargas de trabalho de IA e ML no Google Cloud, tem de otimizar a atribuição de recursos. Para ajudar a evitar despesas desnecessárias e garantir que as suas cargas de trabalho têm os recursos de que precisam para um desempenho ideal, alinhe a atribuição de recursos com as necessidades das suas cargas de trabalho.
Para otimizar a atribuição de recursos na nuvem a cargas de trabalho de IA e ML, considere as seguintes recomendações.
Use a escala automática para ajustar dinamicamente os recursos
Use Google Cloud serviços que suportam a escala automática, que ajusta automaticamente a atribuição de recursos para corresponder à procura atual. O dimensionamento automático oferece as seguintes vantagens:
- Otimização de custos e desempenho: evita pagar por recursos inativos. Ao mesmo tempo, o dimensionamento automático garante que os seus sistemas têm os recursos necessários para um desempenho ideal, mesmo com carga máxima.
- Maior eficiência: permite que a sua equipa se concentre noutras tarefas.
- Maior agilidade: pode responder rapidamente às exigências em constante mudança e manter a elevada disponibilidade das suas aplicações.
A tabela seguinte resume as técnicas que pode usar para implementar o dimensionamento automático para diferentes fases dos seus projetos de IA.
Fase | Técnicas de escala automática |
---|---|
Formação |
|
Inferência |
|
Comece com modelos e conjuntos de dados pequenos
Para ajudar a reduzir os custos, teste as hipóteses de ML em pequena escala sempre que possível e use uma abordagem iterativa. Esta abordagem, com modelos e conjuntos de dados mais pequenos, oferece as seguintes vantagens:
- Custos reduzidos desde o início: menos capacidade de computação, armazenamento e tempo de processamento podem resultar em custos mais baixos durante as fases iniciais de experimentação e desenvolvimento.
- Iteração mais rápida: é necessário menos tempo de preparação, o que lhe permite iterar mais rapidamente, explorar abordagens alternativas e identificar direções promissoras de forma mais eficiente.
- Complexidade reduzida: depuração, análise e interpretação mais simples dos resultados, o que leva a ciclos de desenvolvimento mais rápidos.
- Utilização eficiente dos recursos: menor probabilidade de aprovisionamento excessivo de recursos. Aprovisiona apenas os recursos necessários para a carga de trabalho atual.
Considere as seguintes recomendações:
- Use primeiro dados de amostra: prepare os seus modelos num subconjunto representativo dos seus dados. Esta abordagem permite-lhe avaliar o desempenho do modelo e identificar potenciais problemas sem processar o conjunto de dados completo.
- Experimente usando blocos de notas: comece com instâncias mais pequenas e dimensione-as conforme necessário. Pode usar o Vertex AI Workbench, um ambiente de blocos de notas do Jupyter gerido adequado para experimentar diferentes arquiteturas de modelos e conjuntos de dados.
Comece com modelos mais simples ou pré-preparados: use o Vertex AI Model Garden para descobrir e explorar os modelos pré-preparados. Estes modelos requerem menos recursos computacionais. Aumente gradualmente a complexidade conforme necessário com base nos requisitos de desempenho.
- Use modelos pré-preparados para tarefas como classificação de imagens e processamento de linguagem natural. Para poupar nos custos de preparação, pode ajustar os modelos em conjuntos de dados mais pequenos inicialmente.
- Use o BigQuery ML para dados estruturados. O BigQuery ML permite-lhe criar e implementar modelos diretamente no BigQuery. Esta abordagem pode ser rentável para a experimentação inicial, porque pode tirar partido do modelo de preços de pagamento por consulta do BigQuery.
Escalabilidade para otimização de recursos: use a infraestrutura flexível do Google Cloudpara dimensionar os recursos conforme necessário. Comece com instâncias mais pequenas e ajuste o respetivo tamanho ou número quando necessário.
Descubra os requisitos de recursos através de experiências
Os requisitos de recursos para cargas de trabalho de IA e ML podem variar significativamente. Para otimizar a atribuição de recursos e os custos, tem de compreender as necessidades específicas das suas cargas de trabalho através de experiências sistemáticas. Para identificar a configuração mais eficiente para os seus modelos, teste diferentes configurações e analise o respetivo desempenho. Em seguida, com base nos requisitos, ajuste o tamanho dos recursos que usou para a preparação e a publicação.
Recomendamos a seguinte abordagem para a experimentação:
- Comece com uma base: comece com uma configuração de base com base nas suas estimativas iniciais dos requisitos da carga de trabalho. Para criar uma base de referência, pode usar o estimador de custos para novas cargas de trabalho ou usar um relatório de faturação existente. Para mais informações, consulte o artigo Desbloqueie o verdadeiro custo da IA empresarial na Google Cloud.
- Compreenda as suas quotas: antes de iniciar experiências extensivas, familiarize-se com as Google Cloud quotas do seu Google Cloud projeto para os recursos e as APIs que planeia usar. As quotas determinam o intervalo de configurações que pode testar de forma realista. Ao familiarizar-se com as quotas, pode trabalhar dentro dos limites de recursos disponíveis durante a fase de experimentação.
- Experimente sistematicamente: ajuste parâmetros como o número de CPUs, a quantidade de memória, o número e o tipo de GPUs e TPUs, e a capacidade de armazenamento. A preparação do Vertex AI e as previsões do Vertex AI permitem-lhe fazer experiências com diferentes tipos de máquinas e configurações.
Monitorize a utilização, o custo e o desempenho: acompanhe a utilização de recursos, o custo e as principais métricas de desempenho, como o tempo de preparação, a latência de inferência e a precisão do modelo, para cada configuração com a qual experimenta.
- Para acompanhar a utilização de recursos e as métricas de desempenho, pode usar a consola do Vertex AI.
- Para recolher e analisar métricas de desempenho detalhadas, use o Cloud Monitoring.
- Para ver os custos, use os relatórios do Cloud Billing e os painéis de controlo do Cloud Monitoring.
- Para identificar gargalos de desempenho nos seus modelos e otimizar a utilização de recursos, use ferramentas de criação de perfis como o Vertex AI TensorBoard.
Analise os custos: compare o custo e o desempenho de cada configuração para identificar a opção mais rentável.
Estabeleça limites de recursos e alvos de melhoria com base em quotas: Defina limites para quando o dimensionamento começa a gerar retornos decrescentes no desempenho, como uma redução mínima no tempo de preparação ou na latência para um aumento significativo dos custos. Considere as quotas do projeto ao definir estes limites. Determine o ponto em que o custo e as potenciais implicações de quota de uma maior expansão já não são justificados pelos ganhos de desempenho.
Refine iterativamente: repita o processo de experimentação com configurações refinadas com base nas suas conclusões. Certifique-se sempre de que a utilização de recursos permanece dentro das quotas atribuídas e está alinhada com os limites de custo-benefício estabelecidos.
Use MLOps para reduzir as ineficiências
À medida que as organizações usam cada vez mais a aprendizagem automática para impulsionar a inovação e a eficiência, a gestão eficaz do ciclo de vida da aprendizagem automática torna-se fundamental. As operações de ML (MLOps) são um conjunto de práticas que automatizam e simplificam o ciclo de vida da aprendizagem automática, desde o desenvolvimento de modelos à implementação e monitorização.
Alinhe as MLOps com os fatores de custo
Para tirar partido do MLOps em função da eficiência de custos, identifique os principais fatores de custo no ciclo de vida da AA. Em seguida, pode adotar e implementar práticas de MLOps alinhadas com os fatores de custo. Priorize e adote as funcionalidades de MLOps que abordam os fatores de custo com maior impacto. Esta abordagem ajuda a garantir um caminho gerível e bem-sucedido para poupanças de custos significativas.
Implemente MLOps para otimização de custos
Seguem-se práticas comuns de MLOps que ajudam a reduzir os custos:
- Controlo de versões: as ferramentas como o Git podem ajudar a monitorizar as versões de código, dados e modelos. O controlo de versões garante a reprodutibilidade, facilita a colaboração e evita a repetição dispendiosa do trabalho que pode ser causada por problemas de controlo de versões.
- Integração contínua e implementação contínua (CI/CD): o Cloud Build e o Artifact Registry permitem-lhe implementar pipelines de CI/CD para automatizar a criação, os testes e a implementação dos seus modelos de ML. Os pipelines de CI/CD garantem uma utilização eficiente dos recursos e minimizam os custos associados a intervenções manuais.
- Observabilidade: Cloud Monitoring e Cloud Logging permitem-lhe acompanhar o desempenho do modelo em produção, identificar problemas e acionar alertas para intervenção proativa. A observabilidade permite-lhe manter a precisão do modelo, otimizar a atribuição de recursos e evitar tempo de inatividade dispendioso ou degradação do desempenho.
- Retreinamento de modelos: O Vertex AI Pipelines simplifica os processos de retreinamento de modelos periodicamente ou quando o desempenho se degrada. Quando usa o Vertex AI Pipelines para reciclagem, ajuda a garantir que os seus modelos permanecem precisos e eficientes, o que pode evitar o consumo desnecessário de recursos e manter um desempenho ideal.
- Testes e avaliação automatizados: O Vertex AI ajuda a acelerar e padronizar a avaliação de modelos. Implemente testes automatizados ao longo do ciclo de vida da aprendizagem automática para garantir a qualidade e a fiabilidade dos seus modelos. Estes testes podem ajudar a detetar erros antecipadamente, evitar problemas dispendiosos na produção e reduzir a necessidade de testes manuais extensivos.
Para mais informações, consulte o artigo MLOps: pipelines de automatização e entrega contínua na aprendizagem automática.
Aplique práticas de gestão e administração de dados
As práticas eficazes de gestão e governação de dados são essenciais para a otimização de custos. Os dados bem organizados podem incentivar as equipas a reutilizar conjuntos de dados, evitar a duplicação desnecessária e reduzir o esforço para obter dados de alta qualidade. Ao gerir os dados de forma proativa, pode reduzir os custos de armazenamento, melhorar a qualidade dos dados e garantir que os seus modelos de ML são preparados com os dados mais relevantes e valiosos.
Para implementar práticas de gestão e governação de dados, considere as seguintes recomendações.
Estabeleça e adote uma estrutura de administração de dados
A crescente proeminência da IA e da ML tornou os dados o recurso mais valioso para as organizações que estão a passar por uma transformação digital. Uma estrutura robusta para a gestão de dados é um requisito crucial para gerir as cargas de trabalho de IA e ML de forma rentável à escala. Uma estrutura de gestão de dados com políticas, procedimentos e funções claramente definidos oferece uma abordagem estruturada para gerir os dados ao longo do respetivo ciclo de vida. Esta estrutura ajuda a melhorar a qualidade dos dados, aumentar a segurança, melhorar a utilização e reduzir a redundância.
Estabeleça uma estrutura de administração de dados
Existem muitas estruturas pré-existentes para a administração de dados, como as estruturas publicadas pelo EDM Council, com opções disponíveis para diferentes setores e tamanhos de organizações. Escolha e adapte uma estrutura que se alinhe com as suas necessidades e prioridades específicas.
Implemente a framework de gestão de dados
Google Cloud oferece os seguintes serviços e ferramentas para ajudar a implementar uma estrutura de governação de dados robusta:
O catálogo universal do Dataplex é um tecido de dados inteligente que ajuda a unificar os dados distribuídos e automatizar a administração de dados sem ter de consolidar conjuntos de dados num único local. Isto ajuda a reduzir o custo de distribuição e manutenção dos dados, facilitar a descoberta de dados e promover a reutilização.
- Para organizar os dados, use as abstrações do catálogo universal do Dataplex e configure zonas e data lakes lógicos.
- Para administrar o acesso a data lakes e zonas, use os Grupos Google e as funções do catálogo universal do Dataplex.
- Para simplificar os processos de qualidade de dados, ative a qualidade de dados automática.
O Dataplex Universal Catalog também é um serviço de gestão de metadados totalmente gerido e escalável. O catálogo oferece uma base que garante que os recursos de dados são acessíveis e reutilizáveis.
- Os metadados das origens suportadas Google Cloud são carregados automaticamente no catálogo universal. Para origens de dados fora do Google Cloud, crie entradas personalizadas.
- Para melhorar a capacidade de deteção e a gestão de recursos de dados, enriqueça os metadados técnicos com metadados empresariais através dos aspetos.
- Certifique-se de que os cientistas de dados e os profissionais de aprendizagem automática têm autorizações suficientes para aceder ao catálogo universal do Dataplex e usar a função de pesquisa.
A partilha do BigQuery permite-lhe trocar recursos de dados de forma eficiente e segura entre as suas organizações para resolver os desafios de fiabilidade e custo dos dados.
- Configure as trocas de dados e certifique-se de que os recursos de dados organizados podem ser vistos como fichas.
- Use salas limpas de dados para gerir o acesso a dados confidenciais de forma segura e colaborar de forma eficiente com equipas e organizações externas em projetos de IA e ML.
- Certifique-se de que os cientistas de dados e os profissionais de ML têm autorizações suficientes para ver e publicar conjuntos de dados na partilha do BigQuery.
Torne os conjuntos de dados e as funcionalidades reutilizáveis ao longo do ciclo de vida da aprendizagem automática
Para obter vantagens significativas em termos de eficiência e custos, reutilize conjuntos de dados e funcionalidades em vários projetos de AA. Quando evita esforços redundantes de engenharia de dados e desenvolvimento de funcionalidades, a sua organização pode acelerar a programação de modelos, reduzir os custos de infraestrutura e libertar recursos valiosos para outras tarefas críticas.
OGoogle Cloud oferece os seguintes serviços e ferramentas para ajudar a reutilizar conjuntos de dados e funcionalidades:
- Os profissionais de dados e ML podem publicar produtos de dados para maximizar a reutilização em todas as equipas. Os produtos de dados podem ser descobertos e usados através do catálogo universal do Dataplex e da partilha do BigQuery.
- Para conjuntos de dados tabulares e estruturados, pode usar o Vertex AI Feature Store para promover a reutilização e simplificar a gestão de caraterísticas através do BigQuery.
- Pode armazenar dados não estruturados no Cloud Storage e reger os dados através das tabelas de objetos do BigQuery e dos URLs assinados.
- Pode gerir as incorporações vetoriais incluindo metadados nos seus índices de pesquisa vetorial.
Automatize e simplifique com MLOps
Uma das principais vantagens da adoção de práticas de MLOps é a redução dos custos de tecnologia e pessoal. A automatização ajuda a evitar a duplicação de atividades de ML e a reduzir a carga de trabalho dos cientistas de dados e dos engenheiros de ML.
Para automatizar e simplificar o desenvolvimento de AA com MLOps, considere as seguintes recomendações.
Automatize e padronize a recolha e o processamento de dados
Para ajudar a reduzir o esforço e o tempo de programação de ML, automatize e padronize as suas tecnologias de recolha e processamento de dados.
Automatize a recolha e o processamento de dados
Esta secção resume os produtos, as ferramentas e as técnicas que pode usar para automatizar a recolha e o processamento de dados.
Identifique e escolha as origens de dados relevantes para as suas tarefas de IA e ML:
- Opções de base de dados, como o Cloud SQL, Spanner, AlloyDB para PostgreSQL, Firestore, e o BigQuery. A sua escolha depende dos seus requisitos, como a latência no acesso de escrita (estático ou dinâmico), o volume de dados (alto ou baixo) e o formato dos dados (estruturados, não estruturados ou semiestruturados). Para mais informações, consulte as Google Cloud bases de dados.
- Lagos de dados, como o Cloud Storage, com o BigLake.
- Catálogo universal do Dataplex para governar dados em várias origens.
- Plataformas de eventos de streaming, como o Pub/Sub, Dataflow, ou o Apache Kafka.
- APIs externas.
Para cada uma das suas origens de dados, escolha uma ferramenta de carregamento:
- Dataflow: para o processamento em lote e por stream de dados de várias origens, com integração de componentes de ML. Para uma arquitetura orientada por eventos, pode combinar o Dataflow com o Eventarc para processar dados de forma eficiente para ML. Para melhorar a eficiência das tarefas de ML e MLOps, use as capacidades de GPU e de ajuste adequado.
- Funções do Cloud Run: Para a ingestão de dados orientada por eventos que é acionada por alterações nas origens de dados para aplicações em tempo real.
- BigQuery: para carregamento de dados tabulares clássicos com acesso frequente.
Escolha ferramentas para a transformação e o carregamento de dados:
- Use ferramentas como o Dataflow ou o Dataform para automatizar transformações de dados, como o dimensionamento de caraterísticas, a codificação de variáveis categóricas e a criação de novas caraterísticas em lote, por streaming ou em tempo real. As ferramentas que selecionar dependem dos seus requisitos e dos serviços escolhidos.
- Use o Vertex AI Feature Store para automatizar a criação e a gestão de funcionalidades. Pode centralizar funcionalidades para reutilização em diferentes modelos e projetos.
Padronize a recolha e o processamento de dados
Para descobrir, compreender e gerir recursos de dados, use serviços de gestão de metadados, como o catálogo universal do Dataplex. Ajuda a padronizar as definições de dados e garantir a consistência em toda a sua organização.
Para aplicar a normalização e evitar o custo de manutenção de várias implementações personalizadas, use pipelines de preparação e orquestração automatizados. Para mais informações, consulte a secção seguinte.
Automatize pipelines de preparação e reutilize recursos existentes
Para aumentar a eficiência e a produtividade nas MLOps, os pipelines de preparação automatizados são cruciais.O Google Cloud oferece um conjunto robusto de ferramentas e serviços para criar e implementar pipelines de preparação, com uma forte ênfase na reutilização de recursos existentes. Os pipelines de preparação automatizados ajudam a acelerar o desenvolvimento de modelos, garantir a consistência e reduzir o esforço redundante.
Automatize pipelines de preparação
A tabela seguinte descreve os Google Cloud serviços e as funcionalidades que pode usar para automatizar as diferentes funções de um pipeline de preparação.
Função | Google Cloud serviços e funcionalidades |
---|---|
Orquestração: defina fluxos de trabalho de ML complexos com vários passos e dependências. Pode definir cada passo como uma tarefa contentorizada separada, o que ajuda a gerir e dimensionar tarefas individuais com facilidade. |
|
Controlo de versões: acompanhe e controle diferentes versões de pipelines e componentes para garantir a capacidade de reprodução e a auditabilidade. | Armazenar modelos de pipelines do Kubeflow num repositório de pipelines do Kubeflow no Artifact Registry. |
Reutilização: reutilize componentes e artefactos de pipelines existentes, como conjuntos de dados preparados e modelos preparados, para acelerar o desenvolvimento. | Armazene os modelos de pipelines no Cloud Storage e partilhe-os com a sua organização. |
Monitorização: monitorize a execução do pipeline para identificar e resolver quaisquer problemas. | Use o Cloud Logging e o Cloud Monitoring. Para mais informações, consulte o artigo Monitorize os recursos continuamente com painéis de controlo, alertas e relatórios. |
Expanda a reutilização para além dos pipelines
Procure oportunidades para expandir a reutilização para além dos pipelines de preparação. Seguem-se exemplos de Google Cloud capacidades que lhe permitem reutilizar funcionalidades, conjuntos de dados, modelos e código de ML.
- O Vertex AI Feature Store oferece um repositório centralizado para organizar, armazenar e apresentar funcionalidades de ML. Permite-lhe reutilizar funcionalidades em diferentes projetos e modelos, o que pode melhorar a consistência e reduzir o esforço de engenharia de funcionalidades. Pode armazenar, partilhar e aceder a funcionalidades para exemplos de utilização online e offline.
- Os conjuntos de dados da Vertex AI permitem que as equipas criem e geram conjuntos de dados de forma centralizada, para que a sua organização possa maximizar a reutilização e reduzir a duplicação de dados. As suas equipas podem pesquisar e descobrir os conjuntos de dados através do catálogo universal do Dataplex.
- O Registo de modelos Vertex AI permite-lhe armazenar, gerir e implementar os seus modelos preparados. O Model Registry permite-lhe reutilizar os modelos em pipelines subsequentes ou para previsão online, o que ajuda a tirar partido dos esforços de preparação anteriores.
- Os contentores personalizados permitem-lhe agrupar o código de preparação e as dependências em contentores e armazenar os contentores no Artifact Registry. Os contentores personalizados permitem-lhe fornecer ambientes de preparação consistentes e reproduzíveis em diferentes pipelines e projetos.
Use os Google Cloud serviços para avaliação e otimização de modelos
Google Cloud oferece um conjunto de ferramentas e serviços poderosos para simplificar e automatizar a avaliação e o ajuste dos modelos. Estas ferramentas e serviços podem ajudar a reduzir o tempo de produção e os recursos necessários para a monitorização e a formação contínuas. Ao usar estes serviços, as suas equipas de IA e AA podem melhorar o desempenho dos modelos com menos iterações dispendiosas, alcançar resultados mais rápidos e minimizar os recursos de computação desperdiçados.
Use a avaliação e a experimentação de modelos eficientes em termos de recursos
Comece um projeto de IA com experiências antes de dimensionar a sua solução. Nas suas experiências, acompanhe vários metadados, como a versão do conjunto de dados, os parâmetros do modelo e o tipo de modelo. Para uma maior reprodutibilidade e comparação dos resultados, use o acompanhamento de metadados, além do controlo de versões do código, semelhante às capacidades do Git. Para evitar a falta de informações ou a implementação da versão errada em produção, use experiências do Vertex AI antes de implementar trabalhos de implementação ou preparação em grande escala.
O Vertex AI Experiments permite-lhe fazer o seguinte:
- Simplifique e automatize a monitorização e a descoberta de metadados através de uma IU e uma API fáceis de usar para cargas de trabalho prontas para produção.
- Analise as métricas de desempenho do modelo e compare as métricas em vários modelos.
Após a preparação do modelo, monitorize continuamente o desempenho e a variação dos dados ao longo do tempo para os dados recebidos. Para simplificar este processo, use o Vertex AI Model Monitoring para aceder diretamente aos modelos criados no Registo de modelos. A monitorização de modelos também automatiza a monitorização de dados e resultados através de previsões online e em lote. Pode exportar os resultados para o BigQuery para análise e acompanhamento adicionais.
Escolha estratégias ideais para automatizar a preparação
Para o ajuste de hiperparâmetros, recomendamos as seguintes abordagens:
- Para automatizar o processo de encontrar os hiperparâmetros ideais para os seus modelos, use o aperfeiçoamento de hiperparâmetros do Vertex AI. A Vertex AI usa algoritmos avançados para explorar o espaço de hiperparâmetros e identificar a melhor configuração.
- Para uma otimização de hiperparâmetros eficiente, considere usar técnicas de otimização bayesiana, especialmente quando trabalha com modelos complexos e grandes conjuntos de dados.
Para a preparação distribuída, recomendamos as seguintes abordagens:
Para conjuntos de dados grandes e modelos complexos, use a infraestrutura de preparação distribuída do Vertex AI. Esta abordagem permite-lhe formar os seus modelos em várias máquinas, o que ajuda a reduzir significativamente o tempo de formação e os custos associados. Use ferramentas como as seguintes:
- Ajuste do Vertex AI para realizar o ajuste fino supervisionado do Gemini, do Imagen e de outros modelos.
- Vertex AI Training ou Ray no Vertex AI para preparação distribuída personalizada.
Escolha frameworks de ML otimizados, como o Keras e o PyTorch, que suportam a preparação distribuída e a utilização eficiente de recursos.
Use IA explicável
É fundamental compreender por que motivo um modelo toma determinadas decisões e identificar potenciais parcialidades ou áreas de melhoria. Use a IA explicável do Vertex para obter estatísticas sobre as previsões do seu modelo. O Vertex Explainable AI oferece uma forma de automatizar explicações baseadas em caraterísticas e exemplos que estão associadas às suas experiências do Vertex AI.
- Baseada em caraterísticas: para compreender que caraterísticas são mais influentes nas previsões do seu modelo, analise as atribuições de caraterísticas. Esta compreensão pode orientar os esforços de engenharia de funcionalidades e melhorar a interpretabilidade do modelo.
- Baseado em exemplos: Para devolver uma lista de exemplos (normalmente do conjunto de preparação) que são mais semelhantes à entrada, o Vertex AI usa a pesquisa do vizinho mais próximo. Uma vez que as entradas semelhantes geram geralmente previsões semelhantes, pode usar estas explicações para explorar e explicar o comportamento de um modelo.
Use serviços geridos e modelos pré-preparados
Adote uma abordagem incremental à seleção e ao desenvolvimento de modelos. Esta abordagem ajuda a evitar custos excessivos associados ao recomeço de cada vez. Para controlar os custos, use frameworks de AA, serviços geridos e modelos pré-formados.
Para obter o valor máximo dos serviços geridos e dos modelos pré-formados, considere as seguintes recomendações.
Use notebooks para exploração e experiências
Os ambientes de notebook são essenciais para a experimentação de ML rentável. Um bloco de notas oferece um espaço interativo e colaborativo para os cientistas de dados e os engenheiros explorarem dados, desenvolverem modelos, partilharem conhecimentos e iterarem de forma eficiente. A colaboração e a partilha de conhecimentos através de notebooks aceleram significativamente o desenvolvimento, as revisões de código e a transferência de conhecimentos. Os blocos de notas ajudam a simplificar os fluxos de trabalho e a reduzir o esforço duplicado.
Em vez de adquirir e gerir hardware dispendioso para o seu ambiente de desenvolvimento, pode usar a infraestrutura escalável e a pedido do Vertex AI Workbench e do Colab Enterprise.
O Vertex AI Workbench é um ambiente de desenvolvimento de blocos de notas Jupyter para todo o fluxo de trabalho de ciência de dados. Pode interagir com a Vertex AI e outros Google Cloud serviços a partir do bloco de notas Jupyter de uma instância. As integrações e as funcionalidades do Vertex AI Workbench ajudam a fazer o seguinte:
- Aceda e explore dados a partir de um bloco de notas do Jupyter usando as integrações do BigQuery e do Cloud Storage.
- Automatize as atualizações recorrentes de um modelo através de execuções agendadas de código que é executado na Vertex AI.
- Processe dados rapidamente executando um bloco de notas num cluster do Dataproc.
- Execute um bloco de notas como um passo num pipeline através dos Vertex AI Pipelines.
O Colab Enterprise é um ambiente de blocos de notas colaborativo e gerido que tem as capacidades de segurança e conformidade do Google Cloud. O Colab Enterprise é ideal se as prioridades do seu projeto incluírem o desenvolvimento colaborativo e a redução do esforço de gestão da infraestrutura. O Colab Enterprise integra-se com Google Cloud serviços e assistência baseada em IA que usa o Gemini. O Colab Enterprise permite-lhe fazer o seguinte:
- Trabalhe em blocos de notas sem ter de gerir a infraestrutura.
- Partilhe um notebook com um único utilizador, um grupo Google ou um domínio do Google Workspace. Pode controlar o acesso aos notebooks através da gestão de identidade e de acesso (IAM).
- Interagir com funcionalidades incorporadas no Vertex AI e no BigQuery.
Para acompanhar as alterações e reverter para versões anteriores quando necessário, pode integrar os seus blocos de notas com ferramentas de controlo de versões, como o Git.
Comece com modelos existentes e pré-formados
A preparação de modelos complexos a partir do zero, especialmente modelos de aprendizagem profunda, requer recursos computacionais e tempo significativos. Para acelerar a seleção de modelos e o processo de desenvolvimento, comece com modelos existentes e pré-preparados. Estes modelos, que são preparados em grandes conjuntos de dados, eliminam a necessidade de preparar modelos desde o início e reduzem significativamente o custo e o tempo de desenvolvimento.
Reduza os custos de formação e desenvolvimento
Selecione um modelo ou uma API adequados para cada tarefa de ML e combine-os para criar um processo de desenvolvimento de ML completo.
O Vertex AI Model Garden oferece uma vasta coleção de modelos pré-preparados para tarefas como classificação de imagens, deteção de objetos e processamento de linguagem natural. Os modelos estão agrupados nas seguintes categorias:
- Modelos Google como a família de modelos Gemini e o Imagen para geração de imagens.
- Modelos de código aberto como o Gemma e o Llama.
- Modelos de terceiros de parceiros como a Anthropic e a Mistral AI.
Google Cloud oferece APIs de IA e ML que permitem aos programadores integrar capacidades de IA avançadas em aplicações sem ter de criar modelos de raiz.
- A Cloud Vision API permite-lhe obter informações a partir de imagens. Esta API é valiosa para aplicações como análise de imagens, moderação de conteúdo e introdução de dados automatizada.
- A API Cloud Natural Language permite-lhe analisar texto para compreender a respetiva estrutura e significado. Esta API é útil para tarefas como a análise do feedback dos clientes, a categorização de conteúdo e a compreensão das tendências das redes sociais.
- A API Speech-to-Text converte áudio em texto. Esta API é compatível com uma grande variedade de idiomas e dialetos.
- A API Video Intelligence analisa o conteúdo de vídeo para identificar objetos, cenas e ações. Use esta API para análise de conteúdo de vídeo, moderação de conteúdo e pesquisa de vídeos.
- A API Document AI processa documentos para extrair, classificar e compreender dados. Esta API ajuda a automatizar os fluxos de trabalho de processamento de documentos.
- A API Dialogflow permite a criação de interfaces de conversação, como bots de chat e assistentes de voz. Pode usar esta API para criar bots de serviço de apoio ao cliente e assistentes virtuais.
- A API Gemini na Vertex AI oferece acesso ao modelo de IA mais avançado e de uso geral da Google.
Reduza os custos de otimização
Para ajudar a reduzir a necessidade de dados extensos e tempo de computação, ajuste os seus modelos pré-formados em conjuntos de dados específicos. Recomendamos as seguintes abordagens:
- Transferência de aprendizagem: use o conhecimento de um modelo pré-preparado para uma nova tarefa, em vez de começar do zero. Esta abordagem requer menos dados e tempo de computação, o que ajuda a reduzir os custos.
- Aperfeiçoamento do adaptador (aperfeiçoamento eficiente em termos de parâmetros): Adapte os modelos a novas tarefas ou domínios sem um ajuste fino completo. Esta abordagem requer recursos computacionais significativamente mais baixos e um conjunto de dados mais pequeno.
- Ajuste preciso supervisionado: Adapte o comportamento do modelo com um conjunto de dados etiquetado. Esta abordagem simplifica a gestão da infraestrutura subjacente e o esforço de desenvolvimento necessário para uma tarefa de preparação personalizada.
Explore e experimente usando o Vertex AI Studio
O Vertex AI Studio permite-lhe testar, criar protótipos e implementar rapidamente aplicações de IA generativa.
- Integração com o Model Garden: oferece acesso rápido aos modelos mais recentes e permite implementar os modelos de forma eficiente para poupar tempo e custos.
- Acesso unificado a modelos especializados: consolida o acesso a uma vasta gama de modelos pré-preparados e APIs, incluindo os de chat, texto, multimédia, tradução e voz. Este acesso unificado pode ajudar a reduzir o tempo gasto na pesquisa e integração de serviços individuais.
Use serviços geridos para preparar ou publicar modelos
Os serviços geridos podem ajudar a reduzir o custo da preparação de modelos e simplificar a gestão da infraestrutura, o que lhe permite focar-se no desenvolvimento e na otimização de modelos. Esta abordagem pode resultar em vantagens significativas em termos de custos e maior eficiência.
Reduza a sobrecarga operacional
Para reduzir a complexidade e o custo da gestão da infraestrutura, use serviços geridos, como os seguintes:
- A preparação do Vertex AI oferece um ambiente totalmente gerido para preparar os seus modelos à escala. Pode escolher entre vários contentores pré-criados com frameworks de ML populares ou usar os seus próprios contentores personalizados.O Google Cloud trata do aprovisionamento, da escalabilidade e da manutenção da infraestrutura, pelo que incorre numa sobrecarga operacional inferior.
- As previsões do Vertex AI gerem a escalabilidade da infraestrutura, o equilíbrio de carga e o encaminhamento de pedidos. Tem alta disponibilidade e desempenho sem intervenção manual.
- O Ray no Vertex AI oferece um cluster do Ray totalmente gerido. Pode usar o cluster para executar cargas de trabalho de IA personalizadas complexas que realizam muitos cálculos (ajuste preciso de hiperparâmetros, ajuste preciso de modelos, preparação de modelos distribuídos e aprendizagem reforçada pelo feedback humano) sem ter de gerir a sua própria infraestrutura.
Use serviços geridos para otimizar a utilização de recursos
Para ver detalhes sobre a utilização eficiente de recursos, consulte o artigo Otimize a utilização de recursos.
Colaboradores
Autores:
- Isaac Lo | Gestor de desenvolvimento empresarial de IA
- Anastasia Prokaeva | Field Solutions Architect, IA generativa
- Amy Southwood | Technical Solutions Consultant, Data Analytics & AI
Outros colaboradores:
- Filipe Gracio, PhD | Engenheiro de clientes, especialista em IA/AA
- Kumar Dhanagopal | Cross-Product Solution Developer
- Marwan Al Shawi | Partner Customer Engineer
- Nicolas Pintaux | Customer Engineer, Application Modernization Specialist
Perspetiva da IA e ML: otimização do desempenho
Este documento no Well-Architected Framework: perspetiva de IA e ML oferece uma vista geral dos princípios e das recomendações para ajudar a otimizar o desempenho das suas cargas de trabalho de IA e ML no Google Cloud. As recomendações neste documento estão alinhadas com o pilar de otimização do desempenho da Google Cloud estrutura bem arquitetada.
Os sistemas de IA e ML permitem novas capacidades de automatização e tomada de decisões para a sua organização. O desempenho destes sistemas pode afetar diretamente os fatores da sua empresa, como a receita, os custos e a satisfação do cliente. Para concretizar todo o potencial dos seus sistemas de IA e ML, tem de otimizar o respetivo desempenho com base nos objetivos da sua empresa e nos requisitos técnicos. O processo de otimização do desempenho envolve frequentemente determinadas soluções de compromisso. Por exemplo, uma escolha de design que ofereça o desempenho necessário pode gerar custos mais elevados. As recomendações neste documento dão prioridade ao desempenho em detrimento de outras considerações, como os custos.
Para otimizar o desempenho da IA e da aprendizagem automática, tem de tomar decisões relativamente a fatores como a arquitetura do modelo, os parâmetros e a estratégia de preparação. Quando tomar estas decisões, considere todo o ciclo de vida dos sistemas de IA e AA e o respetivo ambiente de implementação. Por exemplo, os MDIs/CEs muito grandes podem ter um desempenho elevado numa infraestrutura de preparação massiva, mas os modelos muito grandes podem não ter um bom desempenho em ambientes com restrições de capacidade, como dispositivos móveis.
Converta os objetivos da empresa em objetivos de desempenho
Para tomar decisões de arquitetura que otimizem o desempenho, comece com um conjunto claro de objetivos empresariais. Crie sistemas de IA e ML que ofereçam o desempenho técnico necessário para apoiar os objetivos e as prioridades da sua empresa. As suas equipas técnicas têm de compreender o mapeamento entre os objetivos de desempenho e os objetivos empresariais.
Considere as seguintes recomendações:
- Traduza os objetivos de negócio em requisitos técnicos: Traduza os objetivos de negócio dos seus sistemas de IA e ML em requisitos de desempenho técnico específicos e avalie os efeitos de não cumprir os requisitos. Por exemplo, para uma aplicação que prevê a rotatividade de clientes, o modelo de ML deve ter um bom desempenho nas métricas padrão, como a precisão e a capacidade de identificação, e a aplicação deve cumprir os requisitos operacionais, como a baixa latência.
- Monitorize o desempenho em todas as fases do ciclo de vida do modelo: durante a experimentação e a preparação após a implementação do modelo, monitorize os indicadores essenciais de desempenho (IEDs) e observe quaisquer desvios dos objetivos empresariais.
- Automatize a avaliação para a tornar reproduzível e padronizada: com uma plataforma e uma metodologia padronizadas e comparáveis para a avaliação de experiências, os seus engenheiros podem aumentar o ritmo de melhoria do desempenho.
Execute e acompanhe experiências frequentes
Para transformar a inovação e a criatividade em melhorias de desempenho, precisa de uma cultura e uma plataforma que suportem a experimentação. A melhoria do desempenho é um processo contínuo porque as tecnologias de IA e ML estão em desenvolvimento contínuo e rápido. Para manter um processo iterativo e rápido, tem de separar o espaço de experimentação das plataformas de preparação e publicação. É importante ter um processo de experimentação padronizado e robusto.
Considere as seguintes recomendações:
- Crie um ambiente de experiências: as melhorias de desempenho requerem um ambiente dedicado, avançado e interativo que suporte a experimentação e o desenvolvimento colaborativo de pipelines de ML.
- Incorporar a experimentação como cultura: execute experiências antes de qualquer implementação de produção. Lance novas versões de forma iterativa e recolha sempre dados de desempenho. Experimente diferentes tipos de dados, transformações de caraterísticas, algoritmos e hiperparâmetros.
Crie e automatize serviços de preparação e publicação
A preparação e a publicação de modelos de IA são componentes essenciais dos seus serviços de IA. Precisa de plataformas e práticas robustas que suportem a criação, a implementação e a publicação rápidas e fiáveis de modelos de IA. Invista tempo e esforço para criar plataformas fundamentais para as suas principais tarefas de preparação e publicação de IA. Estas plataformas fundamentais ajudam a reduzir o tempo e o esforço das suas equipas, bem como a melhorar a qualidade dos resultados a médio e longo prazo.
Considere as seguintes recomendações:
- Use componentes especializados em IA de um serviço de preparação: estes componentes incluem computação de alto desempenho e componentes de MLOps, como armazenamentos de funcionalidades, registos de modelos, armazenamentos de metadados e serviços de avaliação do desempenho do modelo.
- Use componentes especializados em IA de um serviço de previsão: estes componentes oferecem recursos escaláveis e de alto desempenho, suportam a monitorização de funcionalidades e permitem a monitorização do desempenho do modelo. Para evitar e gerir a degradação do desempenho, implemente estratégias de implementação e reversão fiáveis.
Faça corresponder as opções de design aos requisitos de desempenho
Quando faz escolhas de design para melhorar o desempenho, avalie cuidadosamente se as escolhas suportam os requisitos da sua empresa ou são desperdiçadoras e contraproducentes. Para escolher a infraestrutura, os modelos ou as configurações adequados, identifique os gargalos de desempenho e avalie a forma como estão associados às suas medidas de desempenho. Por exemplo, mesmo em aceleradores de GPU muito potentes, as suas tarefas de preparação podem sofrer estrangulamentos de desempenho devido a problemas de E/S de dados da camada de armazenamento ou devido a limitações de desempenho do próprio modelo.
Considere as seguintes recomendações:
- Otimize o consumo de hardware com base nos objetivos de desempenho: para preparar e publicar modelos de AA que cumpram os seus requisitos de desempenho, tem de otimizar a infraestrutura nas camadas de computação, armazenamento e rede. Tem de medir e compreender as variáveis que afetam os seus objetivos de desempenho. Estas variáveis são diferentes para a preparação e a inferência.
- Foque-se nos requisitos específicos da carga de trabalho: foque os seus esforços de otimização do desempenho nos requisitos únicos das suas cargas de trabalho de IA e ML. Confiar em serviços geridos para o desempenho da infraestrutura subjacente.
- Escolha estratégias de preparação adequadas: estão disponíveis vários modelos pré-preparados e fundamentais, e são lançados mais modelos deste tipo com frequência. Escolha uma estratégia de preparação que possa oferecer um desempenho ideal para a sua tarefa. Decida se deve criar o seu próprio modelo, otimizar um modelo pré-preparado com os seus dados ou usar uma API de modelo pré-preparado.
- Reconheça que as estratégias de otimização do desempenho podem ter retornos decrescentes: quando uma determinada estratégia de otimização do desempenho não oferece um valor empresarial incremental mensurável, deixe de usar essa estratégia.
Associe as métricas de desempenho às escolhas de design e configuração
Para inovar, resolver problemas e investigar problemas de desempenho, estabeleça uma ligação clara entre as opções de design e os resultados de desempenho. Além da experimentação, tem de registar de forma fiável a linhagem dos seus recursos, implementações, resultados do modelo e as configurações e entradas que produziram os resultados.
Considere as seguintes recomendações:
- Crie um sistema de linhagem de dados e modelos: todos os seus recursos implementados e as respetivas métricas de desempenho têm de estar associados aos dados, às configurações, ao código e às escolhas que resultaram nos sistemas implementados. Além disso, as saídas do modelo têm de estar associadas a versões específicas do modelo e à forma como as saídas foram produzidas.
- Use ferramentas de explicabilidade para melhorar o desempenho do modelo: adote e padronize ferramentas e referências para a exploração e a explicabilidade do modelo. Estas ferramentas ajudam os seus engenheiros de AA a compreender o comportamento dos modelos e a melhorar o desempenho ou remover parcialidades.
Colaboradores
Autores:
- Benjamin Sadik | Customer Engineer especialista em IA e ML
- Filipe Gracio, PhD | Engenheiro de clientes, especialista em IA/AA
Outros colaboradores:
- Kumar Dhanagopal | Cross-Product Solution Developer
- Marwan Al Shawi | Partner Customer Engineer
- Zach Seils | Especialista em redes