Conectividade particular para aplicativos de IA generativa com capacidade de RAG

Neste documento, apresentamos uma arquitetura de referência que pode ser usada para ajudar a proteger a infraestrutura de rede de aplicativos com geração aumentada de recuperação (RAG). Uma arquitetura RAG geralmente contém subsistemas separados para processar os fluxos de dados e de recuperação de conteúdo. Esta arquitetura de referência demonstra como usar a VPC compartilhada para fazer o seguinte:

  • Crie uma separação entre os subsistemas usando permissões do Identity and Access Management (IAM).
  • Conecte os componentes do aplicativo usando endereços IP particulares.

O público-alvo deste documento inclui arquitetos, desenvolvedores e administradores de rede e segurança. O documento pressupõe que você tenha um conhecimento básico de rede. Este documento não descreve a criação de um aplicativo baseado em RAG.

Arquitetura

O diagrama a seguir mostra a arquitetura de rede apresentada neste documento:

Arquitetura de rede para aplicativos com RAG. Conexões e fluxo de tráfego para a arquitetura de rede.

A arquitetura no diagrama anterior mostra os seguintes componentes:

Componente Finalidade
Rede externa, no local ou em outra nuvem
  • Fornece conectividade de rede para engenheiros de dados que fazem upload de dados brutos de RAG.
  • Encerra a conectividade de rede externa.
  • Hospeda roteadores externos.
  • Fornece conectividade ao endpoint do Private Service Connect na rede de nuvem privada virtual (VPC) de Google Cloud roteamento.
  • Contém servidores DNS que apontam para o endpoint do Private Service Connect.
Projeto de roteamento
  • Hospeda a rede VPC de roteamento, que se conecta à rede externa por uma conexão do Cloud Interconnect ou de conexão VPN de alta disponibilidade.
  • Hospeda um hub do Network Connectivity Center que conecta a rede externa, a rede VPC de roteamento e as redes VPC compartilhadas.
  • Hospeda um endpoint do Private Service Connect que se conecta a um endpoint regional do Cloud Storage. Esse endpoint permite que engenheiros de dados façam upload de dados de RAG para o bucket do Cloud Storage.
Projeto host da VPC compartilhada do RAG Hospeda uma rede VPC compartilhada que hospeda o balanceador de carga do serviço de front-end e qualquer outro serviço que precise de uma rede VPC. Todos os projetos de serviço têm acesso a essa rede VPC compartilhada.
Projeto de serviço de ingestão de dados

Contém um bucket do Cloud Storage para entrada de dados brutos. Contém o subsistema de ingestão de dados, que inclui os seguintes componentes:

  • Processamento de ingestão: lê e processa dados brutos.
  • Saída da ingestão: grava no repositório de dados final.
Projeto de serviço de veiculação

Contém o subsistema de exibição, que inclui os seguintes componentes que fornecem os serviços e funções para inferência e interação:

  • Armazenamento de dados RAG que contém a saída do subsistema de ingestão de dados.
  • Processos de disponibilização que alimentam o modelo combinando a consulta de inferência com dados do repositório de dados RAG.
  • O modelo que o subsistema de serviço usa para criar vetores com base nos dados de RAG enviados e para processar a solicitação do usuário final.
Projeto de serviço de front-end

Contém o subsistema de serviço, que é um balanceador de carga na frente de um serviço de interação do usuário executado no Cloud Run ou Google Kubernetes Engine (GKE).

O projeto também contém o Google Cloud Armor, que ajuda a limitar o acesso ao seu serviço. Se você quiser fornecer acesso da Internet, adicione um balanceador de carga de aplicativo externo regional.

Perímetro dos VPC Service Controls Ajuda a proteger contra a exfiltração de dados. Os dados armazenados em buckets do Cloud Storage não podem ser copiados para fora do perímetro, e as operações do plano de controle são protegidas.

As seções a seguir descrevem as conexões e os fluxos de tráfego que estão na arquitetura.

Conexões entre componentes

Nesta seção, descrevemos as conexões entre os componentes e as redes nessa arquitetura.

Rede externa para roteamento de rede VPC

As redes externas se conectam à rede VPC de roteamento Google Cloud via Cloud Interconnect ou VPN de alta disponibilidade, que são spokes híbridos de um hub do Conectividade de rede.

Os Cloud Routers na rede VPC de roteamento e os roteadores externos na rede externa trocam rotas do protocolo de gateway de borda (BGP):

  • Os roteadores em redes externas anunciam as rotas para sub-redes externas ao Cloud Router da VPC de roteamento. É possível expressar a preferência das rotas usando métricas e atributos do BGP.
  • Os Cloud Routers na rede VPC de roteamento anunciam as rotas para prefixos nas VPCs de Google Cloudpara as redes externas.

Como rotear uma rede VPC para uma rede VPC compartilhada

Você conecta a rede VPC de roteamento e a rede VPC RAG usando os spokes VPC do Network Connectivity Center do hub do Network Connectivity Center. O hub também hospeda os spokes híbridos para a rede externa.

Recurso para recurso na rede VPC compartilhada

Nesse design, um bucket do Cloud Storage recebe dados da rede externa. As solicitações de inferência vêm de um balanceador de carga de aplicativo interno regional. Para o restante do sistema, você tem as seguintes opções:

  • Hospede tudo na infraestrutura de SaaS do Google, como buckets do Cloud Storage, Vertex AI, Cloud Run e Pub/Sub. Nesse caso, os componentes se comunicam pela infraestrutura privada do Google.
  • Hospede tudo em cargas de trabalho executadas em VMs do Compute Engine, clusters do GKE, bancos de dados do Cloud SQL ou outros componentes executados em redes VPC. Nesse caso, os sistemas se comunicam usando endereços IP privados em redes vinculadas pelo Network Connectivity Center ou pelo peering de rede VPC.
  • Use uma combinação de serviços totalmente gerenciados, de plataforma e de infraestrutura. Nesse caso, é possível fazer conexões entre uma rede VPC e um serviço totalmente gerenciado usando os seguintes métodos:
    • Acesso privado do Google: com esse método, as cargas de trabalho que não têm endereços IP externo e que são executadas em redes VPC podem acessar as APIs do Google. Esse acesso acontece internamente na infraestrutura do Google, e esse processo não expõe o tráfego à Internet.
    • Private Service Connect: com esse método, é possível criar um endpoint no projeto de serviço para serviços como o AlloyDB para PostgreSQL, que são hospedados em redes VPC gerenciadas.

Balanceador de carga de rede externa para serviço de front-end

O endpoint do balanceador de carga de aplicativo interno regional é um endereço IP na rede RAG. A rede RAG, a rede de roteamento e as conexões híbridas com a rede externa são todos spokes do mesmo hub do Network Connectivity Center. Portanto, você pode instruir o Network Connectivity Center a exportar todos os subintervalos do spoke para o hub, que reexporta esses subintervalos para as outras redes de spoke. Os usuários finais do sistema podem acessar o serviço balanceado por carga da rede externa.

Fluxos de tráfego

Os fluxos de tráfego nessa arquitetura de referência incluem um fluxo de dados de RAG e um fluxo de inferência.

Fluxo de população do RAG

Este fluxo descreve como os dados de RAG fluem pelo sistema, desde os engenheiros de dados até o armazenamento de vetores.

  1. Na rede externa, os engenheiros de dados fazem upload de dados brutos pela conexão do Cloud Interconnect ou pela conexão VPN do Cloud. Os dados são enviados para o endpoint do Private Service Connect na rede VPC de roteamento.
  2. Os dados viajam pela infraestrutura interna do Google até o bucket do Cloud Storage no projeto de serviço de ingestão de dados.
  3. No projeto de serviço de ingestão de dados, os dados viajam entre sistemas usando um dos seguintes métodos:

    • Acesso privado do Google
    • Endpoints do Private Service Connect
    • Infraestrutura direta do Google

    O método depende de os sistemas serem hospedados em redes VPCGoogle Cloud ou diretamente emGoogle Cloud. Como parte desse fluxo, o subsistema de ingestão de dados alimenta o modelo com dados de RAG divididos em partes, que produz vetores para cada parte.

  4. O subsistema de ingestão de dados grava os dados de vetor e fragmentados no repositório de dados apropriado.

Fluxo de inferência

Esse fluxo descreve as solicitações dos clientes.

  1. De uma rede externa, um cliente envia uma solicitação para o endereço IP do serviço.
  2. A solicitação viaja pela conexão do Cloud Interconnect ou pela conexão VPN do Cloud até a rede VPC de roteamento.
  3. A solicitação passa pela conexão spoke da VPC até a rede VPC do RAG.
  4. A solicitação do cliente chega ao balanceador de carga, que a transmite ao subsistema de front-end.
  5. O subsistema de front-end encaminha a solicitação para o subsistema de disponibilização.
  6. O subsistema de disponibilização aumenta a solicitação usando os dados contextuais relevantes do armazenamento de dados.
  7. O subsistema de veiculação envia o comando aumentado ao modelo de IA, que gera uma resposta.

Produtos usados

Esta arquitetura de referência usa os seguintes produtos do Google Cloud :

  • Nuvem privada virtual: um sistema virtual que oferece funcionalidade de rede global e escalonável para suas cargas de trabalho do Google Cloud . A VPC inclui peering de rede VPC, Private Service Connect, acesso a serviços particulares e VPC compartilhada.
  • VPC compartilhada: um recurso da nuvem privada virtual que permite conectar recursos de vários projetos a uma rede VPC comum usando endereços IP internos dessa rede.
  • Private Service Connect: um recurso que permite que os consumidores acessem serviços gerenciados de maneira particular na rede VPC deles.
  • Acesso privado do Google: um recurso que permite que instâncias de VM sem endereços IP externos alcancem os endereços IP externo das APIs e serviços do Google.
  • Cloud Interconnect: um serviço que estende sua rede externa para a rede do Google por meio de uma conexão de alta disponibilidade e baixa latência.
  • Cloud VPN: um serviço que estende com segurança sua rede de peering para a rede do Google por um túnel de VPN IPsec.
  • Cloud Router: uma oferta distribuída e totalmente gerenciada que oferece recursos de alto-falante e resposta do protocolo de gateway de borda (BGP). O Cloud Router funciona com o Cloud Interconnect, o Cloud VPN e os roteadores para criar rotas dinâmicas em redes VPC com base em rotas recebidas pelo BGP e aprendidas de forma personalizada.
  • Network Connectivity Center: um framework de orquestração que simplifica a conectividade de rede entre recursos spoke conectados a um recurso de gerenciamento central chamado hub.
  • VPC Service Controls: uma funcionalidade de rede gerenciada que minimiza os riscos de exfiltração de dados para seus recursos do Google Cloud .
  • Cloud Load Balancing: um portfólio de balanceadores de carga globais, regionais, escalonáveis, globais e de alto desempenho.
  • Model Armor: um serviço que protege seus recursos de IA generativa e baseada em agentes contra injeção de comandos, vazamentos de dados sensíveis e conteúdo nocivo.
  • Google Cloud Armor: um serviço de segurança de rede que oferece regras de firewall de aplicativos da Web (WAF) e ajuda a proteger contra ataques DDoS e de aplicativos.
  • 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 as comunicações de entrada, saída e internas do sistema geral precisam usar endereços IP privados e não podem atravessar a Internet:

  • Entrada privada: os dados enviados não trafegam pela Internet. Em vez disso, hospede seu bucket do Cloud Storage em um endpoint do Private Service Connect na sua rede VPC de roteamento Google Cloud. Você copia os dados de RAG pela conexão do Cloud Interconnect ou pela conexão VPN usando apenas endereços IP particulares.
  • Conectividade privada entre serviços: os serviços se comunicam pelas interfaces internas do Google ou por endereços particulares internos às suas redes VPC.
  • Saída privada: os resultados da inferência não podem ser acessados pela Internet, a menos que você configure esse acesso. Por padrão, somente usuários na rede externa designada podem acessar o endpoint particular do seu serviço.

Alternativas de design

Nesta seção, apresentamos abordagens alternativas de design de rede que você pode considerar para seu aplicativo com capacidade de RAG em Google Cloud.

Disponibilizar o serviço publicamente

Na arquitetura mostrada neste documento, apenas os usuários da sua rede interna podem enviar consultas ao aplicativo. Se o aplicativo precisar estar acessível a clientes na Internet, use um balanceador de carga de aplicativo externo regional.

Usar o GKE Inference Gateway

Se o subsistema de front-end for executado no GKE, use um gateway de inferência em vez de um balanceador de carga de aplicativo.

Considerações sobre o design

Esta seção oferece mais orientações para ajudar você a implantar redes que ofereçam suporte à conectividade particular para uma arquitetura compatível com RAG. Essas orientações podem ajudar você a atender aos seus requisitos específicos de segurança e compliance, confiabilidade, custo e desempenho. As orientações desta seção não são completas. Para sua implantação específica, talvez seja necessário considerar outros fatores de design que não estão cobertos nesta seção.

segurança, privacidade e conformidade

Na maioria dos casos, você implanta o Model Armor na frente do modelo de IA para avaliar comandos de entrada e resultados de saída. O Model Armor ajuda a evitar possíveis riscos e garante práticas de IA responsável.

Para rejeitar solicitações inadequadas antes que elas cheguem ao subsistema de veiculação, anexe o Model Armor ao balanceador de carga.

Essa arquitetura usa o VPC Service Controls, que ajuda a evitar a exfiltração de dados não autorizada.

Esse design usa princípios de segurança estabelecidos para ajudar a proteger suas cargas de trabalho de RAG. 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 Well-Architected Framework.

Otimização de custos

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 Well-Architected Framework.

Otimização de desempenho

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

Esta seção descreve as etapas para criar seu aplicativo:

  1. Identifique a região das cargas de trabalho.
  2. Criar Google Cloud projetos e redes VPC.
  3. Conecte suas redes externas à rede VPC de roteamento.
  4. Vincule redes usando o Network Connectivity Center.
  5. Identifique componentes para implantação de RAG e crie contas de serviço.
  6. Configure o VPC Service Controls.
  7. Crie o subsistema de ingestão de dados.
  8. Crie o subsistema de veiculação.
  9. Crie o subsistema de front-end.
  10. Torne seu aplicativo acessível pela Internet.

Identificar a região para cargas de trabalho

Em geral, é recomendável colocar a conectividade, as sub-redes VPC e as cargas de trabalho Google Cloudpróximas às redes locais ou a outros clientes de nuvem. Para mais informações sobre como escolher uma região para suas cargas de trabalho, consulte o Google Cloud Seletor de regiões e as Práticas recomendadas para a seleção de regiões do Compute Engine.

Criar Google Cloud projetos e redes VPC

Se a organização já tiver configurado a Cross-Cloud Network para aplicativos distribuídos, o projeto e a rede VPC de roteamento já vão existir.

Crie os Google Cloud projetos e uma rede VPC na seguinte ordem:

  1. Crie o projeto de roteamento.
  2. Crie a rede VPC de roteamento com o Acesso privado do Google ativado.
  3. Crie o projeto de RAG.
  4. Promova o projeto RAG para ser um projeto host da VPC compartilhada.
  5. Crie o projeto de serviço de ingestão de dados.
  6. Crie o projeto de serviço de veiculação.
  7. Crie o projeto de serviço de front-end.
  8. Crie a rede VPC compartilhada RAG com o Acesso privado do Google ativado.
  9. Conceda aos projetos de serviço permissão para usar a rede RAG.

Conecte suas redes externas à rede VPC de roteamento

Você pode pular esta etapa se já tiver configurado a Cross-Cloud Network para aplicativos distribuídos.

Configure a conectividade entre as redes externas e sua rede de roteamento. Para entender as tecnologias relevantes, consulte Conectividade externa e híbrida. Para orientações sobre como escolher um produto de conectividade, consulte Como escolher um produto de conectividade de rede.

  1. No projeto de roteamento, crie um hub do Network Connectivity Center.
  2. Adicione as conexões do Cloud Interconnect como raios de anexo da VLAN ou as conexões do Cloud VPN como raios de VPN.
  3. Adicione as rede VPC de RAG e de roteamento ao hub como spokes da VPC.

Identificar componentes para implantação de RAG e criar contas de serviço

  1. Escolha uma implantação de RAG e faça uma lista dos componentes necessários.
  2. Identifique o acesso necessário para cada componente.
  3. Para cada componente, crie uma conta de serviço com as permissões adequadas. Em alguns casos, isso significa conceder a um componente permissão para ler ou gravar em um projeto de serviço diferente.

Esse design pressupõe que você usa um bucket do Cloud Storage como componente de entrada de dados e um balanceador de carga no front-end de inferência. O restante do design pode variar conforme necessário.

O ideal é que cada componente seja executado como uma conta de serviço própria. Verifique se cada componente tem apenas as permissões mínimas do IAM necessárias para realizar as funções exigidas. Por exemplo, um job do Cloud Run no subsistema de ingestão de dados precisa ler do bucket de entrada do Cloud Storage, mas não precisa gravar nele. Neste exemplo, o projeto de serviço que executa o job do Cloud Run precisa ter permissão para apenas ler no bucket, sem permissão de gravação.

Configurar o VPC Service Controls

  1. Crie um perímetro do VPC Service Controls ao redor da implantação.
  2. Configurar regras de acesso.

Criar o subsistema de ingestão de dados

O subsistema de ingestão de dados recebe dados brutos dos engenheiros de dados e os processa para uso pelo subsistema de disponibilização.

  1. No projeto de serviço de ingestão de dados, crie um bucket do Cloud Storage.
  2. Na rede VPC de roteamento, crie um endpoint regional do Private Service Connect e conecte-o ao bucket.
  3. Na rede externa, adicione uma entrada DNS para o endpoint usando o endereço IP e o URL gerados na etapa anterior.
  4. Atualize as regras de firewall de rede externa para permitir o acesso ao endereço IP do endpoint.
  5. No projeto de serviço de ingestão de dados, crie o restante do pipeline de ingestão de acordo com a arquitetura RAG escolhida.
  6. Conceda permissões do IAM para que o recurso relevante no pipeline de ingestão possa acessar o modelo que produz os vetores.
  7. Conceda permissões do IAM para que o recurso relevante no pipeline de ingestão possa gravar no repositório de dados vetoriais.

Criar o subsistema de veiculação

  1. No projeto de serviço de exibição, crie o pipeline de exibição.
  2. Conceda permissões do IAM para que a conta de serviço no sistema de front-end possa acessar a saída do subsistema de veiculação.

Criar o subsistema de front-end

Esta seção pressupõe que você use um balanceador de carga de aplicativo interno regional que usa um NEG sem servidor na frente do Cloud Run. No entanto, é possível usar um balanceador de carga e um back-end diferentes.

  1. Crie o código para seu sistema de front-end.
  2. No projeto de serviço de front-end, implante o sistema de front-end balanceado por carga, que inclui a etapa opcional de configurar uma política de segurança do Cloud Armor.
  3. Configure o Cloud Router na rede VPC de roteamento para encaminhar rotas da rede VPC de RAG para os roteadores locais. Essa configuração permite que os clientes alcancem o balanceador de carga.
  4. Na sua rede externa, configure as regras de firewall para que o front-end do balanceador de carga possa ser acessado pela rede externa.
  5. Na sua rede externa, atualize o DNS para apontar para a regra de encaminhamento do balanceador de carga.

Tornar seu aplicativo acessível pela Internet

Esta seção é opcional.

Esse design pressupõe que você quer que seu serviço seja acessível apenas na rede externa, mas também é possível torná-lo acessível na Internet.

Para tornar o serviço acessível pela Internet, siga estas etapas:

  1. Crie um balanceador de carga de aplicativo externo regional que aponte para o mesmo back-end que o balanceador de carga interno. Conclua a etapa opcional para configurar uma política de segurança do Cloud Armor.
  2. Atualize o VPC Service Controls para permitir que os clientes de serviço alcancem os serviços de back-end.

A seguir

Colaboradores

Autores:

  • Deepak Michael | Engenheiro de clientes especialista em rede
  • Mark Schlagenhauf | Redator técnico, Rede

Outros colaboradores: