Neste documento, apresentamos uma arquitetura de referência que pode ser usada para projetar a infraestrutura de um aplicativo de IA generativa com geração aumentada por recuperação (RAG) usando o Google Agentspace e a Vertex AI. Esta arquitetura de referência demonstra como usar serviços gerenciados e implantar um único agente de IA para facilitar um fluxo de dados RAG de ponta a ponta. O Google Agentspace serve como a plataforma unificada para orquestração de agentes em toda a empresa. A Vertex AI acelera o desenvolvimento e a implantação de agentes personalizados e fornece repositórios de dados gerenciados para facilitar a recuperação eficiente para RAG.
O público-alvo deste documento inclui arquitetos, desenvolvedores e administradores de aplicativos de IA generativa. Este documento considera uma compreensão básica dos conceitos de IA, machine learning (ML) e modelo de linguagem grande (LLM). Neste documento, não fornecemos orientações sobre como projetar e desenvolver um aplicativo de IA generativa. Para informações sobre como projetar um aplicativo, consulte Desenvolver um aplicativo de IA generativa.
Arquitetura
O diagrama a seguir mostra uma visão geral da arquitetura apresentada neste documento:
A arquitetura no diagrama anterior tem dois subsistemas: ingestão de dados e disponibilização.
- O subsistema de ingestão de dados ingere e prepara dados de fontes externas para uso em RAG. O subsistema gera embeddings para os dados ingeridos e os usa para criar e manter um índice de vetores pesquisável em um datastore gerenciado.
- O subsistema de veiculação contém os serviços de front-end e back-end do aplicativo de IA generativa.
- O serviço de front-end lida com o fluxo de consulta-resposta com usuários do aplicativo e encaminha consultas para o serviço de back-end.
- O serviço de back-end usa o Google Agentspace e a Vertex AI para criar e implantar seu agente de IA e orquestrar o processo de RAG. Esse processo usa os dados de vetor indexados para gerar respostas que são contextualizadas e aderem aos filtros de segurança da IA responsável.
O diagrama a seguir mostra uma visão detalhada da arquitetura:
As seções a seguir descrevem o fluxo de dados em cada subsistema do diagrama de arquitetura anterior.
Subsistema de ingestão de dados
O subsistema de ingestão de dados ingere dados de fontes externas e os prepara para a RAG. Confira a seguir as etapas do fluxo de ingestão e preparação de dados:
- Os engenheiros de dados fazem upload de dados de fontes externas para um bucket do Cloud Storage. As fontes externas podem ser aplicativos, bancos de dados ou serviços de streaming.
- Ao concluir, o Cloud Storage publica uma mensagem em um tópico do Pub/Sub.
- O tópico do Pub/Sub aciona um job de processamento para ser executado nas funções do Cloud Run.
- As funções do Cloud Run processam os dados brutos gerando e armazenando os metadados como arquivos linhas JSON (JSONL). Os arquivos JSONL são armazenados em um bucket separado do Cloud Storage.
- Ao concluir, as funções do Cloud Run publicam uma mensagem em um tópico do Pub/Sub.
- O tópico do Pub/Sub aciona um job de processamento para ser executado no datastore gerenciado no Google Agentspace. O job de processamento extrai os dados e metadados brutos ingeridos dos buckets do Cloud Storage e analisa e divide os dados para uma recuperação eficiente durante a veiculação. O Google Agentspace gera automaticamente incorporações de vetores sem necessidade de configuração.
Subsistema de veiculação
O subsistema de disponibilização lida com o fluxo de consulta/resposta entre o aplicativo de IA generativa e os usuários. Confira a seguir as etapas do fluxo de disponibilização:
- Um usuário do aplicativo envia uma consulta por um dos serviços de front-end do Cloud Run. Você pode personalizar esses serviços para diferentes experiências, como uma UI de chatbot, uma página de pesquisa ou um aplicativo para dispositivos móveis.
- O serviço de front-end recebe a consulta e a encaminha para um serviço de back-end centralizado do Cloud Run. Esse back-end fornece um único endpoint unificado para oferecer suporte a todos os diferentes clientes de front-end. O serviço de back-end também realiza o pré-processamento necessário, que pode incluir a construção de filtros para a consulta de pesquisa. Essa abordagem mantém a lógica transparente para os front-ends.
- O serviço de back-end envia a solicitação preparada para o Google Agentspace usando o endpoint de API do Google Agentspace para iniciar o fluxo de trabalho de RAG.
- Para processar a consulta, o Google Agentspace usa a pesquisa empresarial e o agente personalizado para
realizar as seguintes tarefas:
- Crie um embedding da consulta do usuário.
- Faça uma pesquisa semântica nos dados indexados no datastore gerenciado para encontrar as informações mais relevantes.
- Aumente a consulta original com os dados recuperados do datastore gerenciado para criar um comando detalhado e contextual.
- Gerar uma resposta final com base no comando aumentado.
- O Google Agentspace envia a resposta gerada para o serviço de back-end do Cloud Run.
- O serviço de back-end retorna a resposta final para o serviço de front-end que enviou a solicitação original. O serviço de front-end apresenta a resposta ao usuário do aplicativo.
Produtos usados
Esta arquitetura de referência usa os seguintes produtos do Google Cloud :
- Google Agentspace: uma plataforma gerenciada que funciona como um registro central e um hub de interação para todos os seus agentes de IA em uma empresa, permitindo descoberta, governança e uso perfeitos por aplicativos.
-
Vertex AI: uma plataforma de ML que permite treinar e implantar modelos de ML e aplicativos de IA, além de personalizar LLMs para uso em aplicativos com tecnologia de IA.
- Vertex AI Agent Engine: uma plataforma que permite executar, gerenciar e escalonar agentes de IA em produção.
- Cloud Run: uma plataforma de computação sem servidor que permite executar contêineres diretamente na infraestrutura escalonável do Google.
- Pub/Sub: um serviço de mensagens assíncrono e escalonável que separa os serviços que produzem mensagens daqueles que processam essas mensagens.
- Cloud Storage: um armazenamento de objetos de baixo custo e sem limite para diversos tipos de dados. Os dados podem ser acessados de dentro e fora Google Cloude são replicados entre locais para redundância.
Casos de uso
Essa arquitetura foi projetada para cenários empresariais em que o aplicativo de IA generativa precisa acessar as informações mais atuais e exige um entendimento contextual profundo para fornecer respostas precisas.
A arquitetura inclui um subsistema personalizado de ingestão de dados para atender a dois requisitos empresariais principais:
- Disponibilidade de dados em tempo real:o pipeline orientado a eventos processa novos dados assim que eles ficam disponíveis na sua organização, por exemplo, um novo guia de produtos ou um relatório atualizado. O pipeline também disponibiliza as informações no seu datastore gerenciado. Esse design ajuda a reduzir a defasagem de informações porque garante um atraso mínimo entre a disponibilidade e o uso dos dados.
- Pesquisa contextual enriquecida:o job de processamento personalizado permite que sua organização aplique a própria lógica de negócios para enriquecer os dados com metadados valiosos. A função do Cloud Run pode adicionar tags a cada documento com atributos específicos, como linha de produtos, autor, local ou tipo de documento. Esses metadados avançados ajudam o agente a restringir a pesquisa e fornecer respostas mais precisas e contextualizadas.
A RAG é uma técnica eficaz para melhorar a qualidade da saída gerada por um LLM. Nesta seção, apresentamos exemplos de casos de uso em que é possível usar aplicativos de IA generativa com capacidade de RAG.
Recomendações de produtos personalizada
Um site de compras on-line pode usar um chatbot com tecnologia de LLM para ajudar os clientes a encontrar produtos ou receber ajuda relacionada a compras. As perguntas de um usuário podem ser aumentadas usando dados históricos sobre os padrões de interação no site e o comportamento de compra do usuário. Os dados podem incluir avaliações e feedback de usuários armazenados em um repositório de dados não estruturados ou métricas relacionadas à pesquisa que são armazenadas em um data warehouse de análise da Web. A pergunta aumentada pode ser processada pelo LLM para gerar respostas personalizadas que o usuário pode achar mais relevantes e convincentes.
Sistemas de assistência clínica
Médicos em hospitais precisam analisar e diagnosticar rapidamente a condição de saúde de um paciente para tomar decisões sobre tratamentos e medicamentos apropriados. Um aplicativo de IA generativa que usa um LLM médico, como o Med-PaLM, pode ser usado para ajudar médicos no processo de diagnóstico clínico. As respostas que o aplicativo gera podem ser fundamentadas por históricos dos pacientes contextualizando os comandos dos médicos com dados do banco de dados dos históricos de saúde eletrônicos (EHR, na sigla em inglês) do hospital ou de uma base de conhecimento externa, como o PubMed:
Pesquisa jurídica eficiente
A pesquisa jurídica com tecnologia de IA generativa permite que advogados consultem rapidamente grandes volumes de estatutos e jurisprudência para identificar precedentes legais relevantes ou resumir conceitos jurídicos complexos. O resultado dessa pesquisa pode ser aprimorado aumentando os comandos de um advogado com dados extraídos das comunicações legais anteriores, dos registros de casos internos e do corpus reservado de contratos do escritório de advocacia. Essa abordagem de desenvolvimento garante que as respostas geradas sejam relevantes para o domínio jurídico em que o advogado é especializado.
Alternativas de design
Nesta seção, apresentamos abordagens de design alternativas que você pode considerar para seu aplicativo de IA generativa com capacidade de RAG em Google Cloud.
Alternativas de infraestrutura de IA
Se você precisar de uma arquitetura que use um produto de pesquisa vetorial totalmente gerenciado, use a Vertex AI e a Vector Search, que oferecem uma infraestrutura de disponibilização otimizada para pesquisas vetoriais em grande escala. Para mais informações, consulte Infraestrutura de RAG para IA generativa usando a Vertex AI e a Pesquisa de vetor.
Se você quiser aproveitar os recursos de armazenamento de vetores de um banco de dados Google Cloud totalmente gerenciado, como o AlloyDB para PostgreSQL ou o Cloud SQL, consulte Infraestrutura de RAG para IA generativa usando a Vertex AI e o AlloyDB para PostgreSQL.
Se você quiser criar e implantar rapidamente aplicativos de IA generativa com capacidade de RAG usando ferramentas e modelos de código aberto, como Ray, Hugging Face e LangChain, consulte Infraestrutura de RAG para IA generativa usando o GKE e o Cloud SQL.
Opções de hospedagem de aplicativos
Na arquitetura mostrada neste documento, o Cloud Run é o host do aplicativo de IA generativa e do processamento de dados. O Cloud Run é um aplicativo totalmente gerenciado e focado em desenvolvedores. Também é possível implantar o aplicativo no Vertex AI Agent Engine, em clusters do GKE ou em VMs do Compute Engine.
Para escolher um host de aplicativo, considere as seguintes vantagens e desvantagens entre flexibilidade de configuração e esforço de gerenciamento:
- Com a opção sem servidor do Cloud Run, você implanta seus serviços personalizados em um ambiente gerenciado e pré-configurado. Para hospedar os serviços de front-end e a lógica de back-end personalizada para pré-processamento de solicitações, essa arquitetura exige a capacidade de implantar aplicativos personalizados.
- Com a opção do Vertex AI Agent Engine, você usa uma plataforma totalmente gerenciada projetada para disponibilização de agentes. O Vertex AI Agent Engine reduz a sobrecarga de gerenciamento e garante uma integração perfeita com o Google Agentspace.
- Com as VMs do Compute Engine e os contêineres do GKE, você é responsável por gerenciar os recursos de computação subjacentes, mas tem mais flexibilidade e controle de configuração.
Para mais informações sobre como escolher um serviço de hospedagem de aplicativos adequado, consulte os seguintes documentos:
- Meu app é adequado para o Cloud Run?
- Selecionar um ambiente de execução do contêiner gerenciado
- Hospedagem de aplicativos no Google Cloud
Outras opções de infraestrutura
Para informações sobre outras opções de infraestrutura, modelos compatíveis e técnicas de embasamento que podem ser usadas em aplicativos de IA generativa noGoogle Cloud, consulte Escolher modelos e infraestrutura para seu aplicativo de IA generativa.
Considerações sobre o design
Esta seção contém orientações para ajudar você a desenvolver uma arquitetura de IA generativa com capacidade de RAG em Google Cloud que atenda aos seus requisitos específicos de segurança e conformidade, confiabilidade, custo e desempenho. As orientações desta seção não são completas. Dependendo dos requisitos específicos do seu aplicativo de IA generativa e dos produtos e recursos do Google Cloud que você usa, pode ser necessário considerar outros fatores de desenvolvimento e compensações.
Para uma visão geral dos princípios e recomendações de arquitetura específicos para cargas de trabalho de IA e ML no Google Cloud, consulte a perspectiva de IA e ML no framework bem arquitetado.
segurança, privacidade e conformidade
Nesta seção, descrevemos considerações e recomendações de design para criar uma topologia no Google Cloud que atenda aos requisitos de segurança e conformidade da sua carga de trabalho.
Produto |
Considerações e recomendações de design |
---|---|
Vertex AI |
A Vertex AI é compatível com controles de segurança Google Cloud que podem ser usados para atender aos seus requisitos de residência de dados, criptografia de dados, segurança de rede e transparência no acesso. Para mais informações, consulte a seguinte documentação: O Google Agentspace Enterprise exclui os dados solicitados pelo usuário em até 60 dias. Para mais informações, consulte Exclusão de dados no Google Cloud. Os modelos de IA generativa podem produzir respostas prejudiciais, especialmente quando são explicitamente solicitados a isso. Para aumentar a segurança e mitigar possíveis usos indevidos, configure filtros de conteúdo para agir como barreiras contra respostas nocivas. Para mais informações, consulte Filtros de segurança e conteúdo. |
Cloud Run |
Por padrão, o Cloud Run criptografa dados usando Google-owned and Google-managed encryption keys. Para proteger seus contêineres usando chaves controladas por você, use chaves de criptografia gerenciadas pelo cliente (CMEKs). Para mais informações, consulte Como usar chaves de criptografia gerenciadas pelo cliente. Para garantir que apenas imagens de contêiner autorizadas sejam implantadas no Cloud Run, use a autorização binária. O Cloud Run ajuda você a atender aos requisitos de residência de dados. As funções do Cloud Run são executadas na região selecionada. |
Cloud Storage |
Por padrão, o Cloud Storage criptografa os dados armazenados usando Google-owned and Google-managed encryption keys. Se necessário, use CMEKs ou suas próprias chaves gerenciadas utilizando um método de gerenciamento externo, como chaves de criptografia fornecidas pelo cliente (CSEKs). Para mais informações, consulte Opções de criptografia de dados. O Cloud Storage é compatível com dois métodos para conceder aos usuários acesso aos buckets e objetos: Identity and Access Management (IAM) e listas de controle de acesso (ACLs). Na maioria dos casos, recomendamos usar o IAM, que permite conceder permissões no nível do bucket e do projeto. Para mais informações, consulte Visão geral do controle de acesso. Os dados carregados no subsistema de ingestão de dados pelo Cloud Storage podem incluir dados sensíveis. Use a Proteção de Dados Sensíveis para descobrir, classificar e desidentificar dados sensíveis. Para mais informações, consulte Como usar a Proteção de Dados Sensíveis com o Cloud Storage. O Cloud Storage ajuda você a atender aos requisitos de residência de dados. O Cloud Storage armazena ou replica dados na região especificada. |
Pub/Sub |
Por padrão, o Pub/Sub criptografa todas as mensagens, incluindo as em repouso e em trânsito, usando Google-owned and Google-managed encryption keys. O Pub/Sub pode usar CMEKs para criptografia de mensagens na camada do aplicativo. Para mais informações, consulte Configurar a criptografia de mensagens. Se você tiver requisitos de residência de dados, para garantir que os dados das mensagens sejam armazenados em locais específicos, configure políticas de armazenamento de mensagens. |
Para princípios e recomendações de segurança específicos para cargas de trabalho de IA e ML, consulte Perspectiva de IA e ML: segurança no framework bem arquitetado.
Confiabilidade
Esta seção descreve considerações e recomendações de design para criar e operar uma infraestrutura confiável para sua implantação em Google Cloud.
Produto |
Considerações e recomendações de design |
---|---|
Vertex AI |
A Vertex AI garante a residência de dados em repouso. A Vertex AI armazena seus dados de origem, incluindo dados para RAG no repositório de dados gerenciado, no Google Cloud local selecionado. Essa separação do processamento e do armazenamento é um aspecto fundamental de como a plataforma oferece alta confiabilidade e conformidade. |
Cloud Run |
O Cloud Run é um serviço regional que armazena dados de maneira síncrona em várias zonas de uma região. O serviço faz o balanceamento automático de carga do tráfego entre as zonas. Em caso de interrupção do serviço na zona, os jobs do Cloud Run continuam em execução e os dados não são perdidos. Se ocorrer uma interrupção do serviço na região, os jobs do Cloud Run deixarão de ser executados até que o Google resolva essa interrupção. Jobs ou tarefas individuais do Cloud Run podem falhar. Para lidar com essas falhas, use novas tentativas de tarefa e checkpoints. Para mais informações, consulte Práticas recomendadas de novas tentativas de jobs e checkpoints. |
Cloud Storage |
É possível criar buckets do Cloud Storage em um destes três tipos de local: regional, birregional ou multirregional. Para dados em buckets regionais, o Cloud Storage replica de forma síncrona esses dados em várias zonas dentro de uma região. Para maior disponibilidade, use buckets birregionais ou multirregionais, em que o Cloud Storage replica dados de forma assíncrona entre regiões. Verifique se a opção escolhida está alinhada aos seus requisitos de compliance. |
Para princípios e recomendações de confiabilidade específicos para cargas de trabalho de IA e ML, consulte Perspectiva de IA e ML: confiabilidade no framework bem arquitetado.
Otimização de custos
Nesta seção, você encontra orientações para otimizar o custo de configuração e operação de uma topologia Google Cloud criada usando essa arquitetura de referência.
Produto |
Considerações e recomendações de design |
---|---|
Vertex AI |
O modelo de IA subjacente que o agente invoca pode influenciar diretamente o custo de uso dele. O preço é calculado com base no número de tokens de entrada e saída de cada solicitação. Para mais informações, consulte Cotas e limites do sistema da IA generativa na Vertex AI e a calculadora de preços doGoogle Cloud. Para saber como minimizar a contagem de tokens e reduzir custos, consulte Otimizar o comprimento do comando e da saída. |
Cloud Run functions |
Ao criar jobs do Cloud Run, você especifica a quantidade de memória e CPU que será alocada para a instância do contêiner. Para controlar os custos, comece com as alocações padrão de CPU e memória. Para melhorar o desempenho, aumente a alocação configurando o limite de CPU e o limite de memória. Se você conseguir prever os requisitos de CPU e memória dos jobs do Cloud Run, será possível economizar dinheiro com descontos por compromisso de uso. Para mais informações, consulte Descontos por compromisso de uso do Cloud Run. |
Cloud Storage |
Para o bucket do Cloud Storage usado para carregar dados no subsistema de ingestão de dados, escolha uma classe de armazenamento adequada com base nos requisitos de retenção de dados e frequência de acesso das cargas de trabalho. Por exemplo, é possível escolher a classe de armazenamento Standard e usar o Gerenciamento do ciclo de vida de objetos para controlar os custos de armazenamento. O gerenciamento do ciclo de vida de objetos faz downgrade automático dos objetos para uma classe de armazenamento de menor custo ou exclui objetos com base nas condições definidas. |
Para princípios e recomendações de otimização de custos específicos para cargas de trabalho de IA e ML, consulte Perspectiva de IA e ML: otimização de custos no Framework bem arquitetado.
Otimização de desempenho
Nesta seção, descrevemos considerações e recomendações de design para criar uma topologia em Google Cloud que atenda aos requisitos de desempenho das suas cargas de trabalho.
Produto |
Considerações e recomendações de design |
---|---|
Google Agentspace |
Para reduzir a latência durante a veiculação, transmita respostas enviando respostas do modelo antes que o agente gere a saída completa. Isso permite o processamento em tempo real da saída, e você pode atualizar imediatamente sua interface do usuário e executar outras tarefas simultâneas. O streaming melhora a capacidade de resposta percebida e cria uma experiência do usuário mais interativa. Para mais informações, consulte Transmissão de respostas. |
Cloud Run |
Ajuste a alocação de memória e CPU para as instâncias do Cloud Run com base nos seus requisitos de performance. Para mais informações, consulte Configurar limites de CPU para jobs e Configurar limites de memória para serviços. |
Cloud Storage |
Para fazer upload de arquivos grandes, use um método chamado uploads compostos paralelos. Com essa estratégia, o arquivo grande é dividido em blocos. Você faz o upload dos fragmentos para o Cloud Storage em paralelo, e o Cloud Storage remonta os dados em Google Cloud. Os uploads compostos paralelos podem ser mais rápidos do que as operações de upload regulares se você tiver largura de banda de rede e velocidade do disco suficientes. No entanto, essa estratégia tem algumas limitações e implicações de custo. Para mais informações, consulte Uploads compostos paralelos. |
Para princípios e recomendações de otimização de performance específicos para cargas de trabalho de IA e ML, consulte Perspectiva de IA e ML: otimização de performance no Well-Architected Framework.
Implantação
Para implantar essa arquitetura de referência, use o exemplo do Terraform disponível no GitHub. Para mais informações, consulte Infraestrutura de RAG para aplicativos de IA generativa usando o Google Agentspace e a Vertex AI.
A seguir
- Saiba como o Google Agentspace divide documentos para RAG.
- Saiba como hospedar apps e agentes de IA no Cloud Run.
- Saiba mais sobre as práticas recomendadas de IA responsável e os filtros de segurança da Vertex AI.
- Saiba mais sobre as práticas recomendadas com modelos de linguagem grandes (LLMs).
- Para uma visão geral dos princípios e recomendações de arquitetura específicos para cargas de trabalho de IA e ML no Google Cloud, consulte a perspectiva de IA e ML no framework bem arquitetado.
- Para mais arquiteturas de referência, diagramas e práticas recomendadas, confira a Central de arquitetura do Cloud.
Colaboradores
Autora: Samantha He | Redatora técnica
Outros colaboradores:
- Deepak Michael | Engenheiro de clientes especialista em rede
- Kumar Dhanagopal | Desenvolvedor de soluções para vários produtos
- Mark Schlagenhauf | Redator técnico, Rede
- Victor Moreno | Gerente de produtos, Cloud Networking
- Yehia Elshater | Arquiteto de soluções de campo, IA generativa, Google Cloud
- Paarth Mahajan | Especialista em rede, Google Cloud