Conetividade privada para aplicações de IA generativa com capacidade de RAG

Este documento fornece uma arquitetura de referência que pode usar para ajudar a proteger a infraestrutura de rede para aplicações com geração aumentada por obtenção (RAG). Normalmente, uma arquitetura RAG contém subsistemas separados para processar os fluxos de processamento de dados e obtenção de conteúdo. Esta arquitetura de referência demonstra como usar a VPC partilhada para fazer o seguinte:

  • Crie uma separação entre os subsistemas através de autorizações da gestão de identidade e de acesso (IAM).
  • Ligue os componentes da aplicação através de endereços IP privados.

O público-alvo deste documento inclui arquitetos, programadores e administradores de rede e segurança. O documento pressupõe que tem um conhecimento básico de redes. Este documento não descreve a criação de uma aplicação baseada em RAG.

Arquitetura

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

Arquitetura de rede para aplicações com RAG. Ligações e fluxo de tráfego para a arquitetura de rede.

A arquitetura no diagrama anterior mostra os seguintes componentes:

Componente Finalidade
Rede externa, nas instalações ou noutra nuvem
  • Fornece conetividade de rede a engenheiros de dados que carregam dados RAG brutos.
  • Termina a conetividade de rede externa.
  • Alojamento de routers externos.
  • Fornece conetividade ao ponto final do Private Service Connect na rede da nuvem virtual privada (VPC) de Google Cloud encaminhamento.
  • Contém servidores DNS que apontam para o ponto final do Private Service Connect.
Projeto de encaminhamento
  • Alojamento da rede VPC de encaminhamento, que se liga à rede externa através de uma ligação do Cloud Interconnect ou VPN de alta disponibilidade.
  • Alojamento de um hub do Network Connectivity Center que liga a rede externa, a rede da VPC de encaminhamento e as redes da VPC partilhada.
  • Alojamento de um ponto final do Private Service Connect que se liga a um ponto final regional do Cloud Storage. Este ponto final permite que os engenheiros de dados carreguem dados de RAG para o contentor do Cloud Storage.
Projeto anfitrião da VPC partilhada da RAG Alojamento de uma rede VPC partilhada que aloja o balanceador de carga do serviço de front-end e quaisquer outros serviços que precisem de uma rede VPC. Todos os projetos de serviço têm acesso a essa rede de VPC partilhada.
Projeto de serviço de carregamento de dados

Contém um contentor do Cloud Storage para entrada de dados não processados. Contém o subsistema de carregamento de dados, que inclui os seguintes componentes:

  • Processamento de carregamento: lê os dados não processados e processa-os.
  • Saída da carregamento: escreve no arquivo de dados final.
Publicação do projeto de serviço

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

  • Armazenamento de dados RAG que contém o resultado do subsistema de carregamento de dados.
  • Processos de publicação que alimentam o modelo combinando a consulta de inferência com dados do armazenamento de dados da RAG.
  • O modelo que o subsistema de publicação usa para criar vetores a partir dos dados RAG carregados e para processar o pedido do utilizador final.
Projeto de serviço de interface

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

O projeto também contém o Google Cloud Armor, que ajuda a limitar a forma como o seu serviço é acedido. Se quiser fornecer acesso a partir da Internet, pode adicionar um Application Load Balancer externo regional.

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

As secções seguintes descrevem as ligações e os fluxos de tráfego que estão na arquitetura.

Ligações entre componentes

Esta secção descreve as ligações entre os componentes e as redes nesta arquitetura.

Rede externa para encaminhar a rede de VPC

As redes externas ligam-se à rede VPC de Google Cloud encaminhamento através do Cloud Interconnect ou da VPN de alta disponibilidade, que são raios híbridos de um hub do Network Connectivity Center.

Os Cloud Routers na rede VPC de encaminhamento e os routers externos na rede externa trocam rotas do Border Gateway Protocol (BGP):

  • Os routers em redes externas anunciam os encaminhamentos para sub-redes externas ao Cloud Router da VPC de encaminhamento. Pode expressar a preferência das rotas através de métricas e atributos do BGP.
  • Os Cloud Routers na rede VPC de encaminhamento anunciam os trajetos para prefixos nas VPCs de Google Cloudpara as redes externas.

Encaminhamento da rede VPC para a rede VPC partilhada

Liga a rede VPC de encaminhamento e a rede VPC de RAG através dos raios VPC do centro do Network Connectivity Center. O hub também aloja os raios híbridos na rede externa.

Recurso para recurso na rede VPC partilhada

Neste design, um contentor do Cloud Storage recebe dados da rede externa. Os pedidos de inferência são feitos através de um balanceador de carga de aplicações interno regional. Para o resto do sistema, tem as seguintes opções:

  • Alojamento de tudo na infraestrutura de SaaS da Google, como contentores do Cloud Storage, Vertex AI, Cloud Run e Pub/Sub. Neste caso, os componentes comunicam através da infraestrutura privada da Google.
  • Alojamento de tudo em cargas de trabalho executadas em VMs do Compute Engine, clusters do GKE, bases de dados do Cloud SQL ou outros componentes executados em redes da VPC. Neste caso, os sistemas comunicam através de endereços IP privados em redes que associa através do Network Connectivity Center ou do intercâmbio da rede da VPC.
  • Use uma combinação de serviços totalmente geridos, de plataforma e de infraestrutura. Neste caso, pode estabelecer ligações entre uma rede VPC e um serviço totalmente gerido através dos seguintes métodos:
    • Acesso privado à Google: com este método, as cargas de trabalho que não têm endereços IP externos e que são executadas em redes VPC podem aceder às APIs Google. Este acesso ocorre internamente através da infraestrutura da Google e este processo não expõe esse tráfego à Internet.
    • Private Service Connect: com este método, pode criar um ponto final no seu projeto de serviço para serviços como o AlloyDB for PostgreSQL alojados em redes VPC geridas.

Rede externa para balanceador de carga de serviço de front-end

O ponto final do balanceador de carga da aplicação interno regional é um endereço IP na rede RAG. A rede RAG, a rede de encaminhamento e as ligações híbridas à rede externa são todas raios do mesmo hub do Network Connectivity Center. Por conseguinte, pode dar instruções ao Network Connectivity Center para exportar todos os intervalos secundários dos raios para o hub, que, em seguida, reexporta esses intervalos secundários para as outras redes de raios. Os utilizadores finais do sistema podem, em seguida, aceder ao serviço com balanceamento de carga a partir da rede externa.

Fluxos de tráfego

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

Fluxo de população RAG

Este fluxo descreve como os dados da RAG fluem através do sistema desde os engenheiros de dados até ao armazenamento de vetores.

  1. A partir da rede externa, os engenheiros de dados carregam dados não processados através da ligação do Cloud Interconnect ou da ligação do Cloud VPN. Os dados são carregados para o ponto final do Private Service Connect na rede da VPC de encaminhamento.
  2. Os dados são transmitidos através da infraestrutura interna da Google para o contentor do Cloud Storage no projeto do serviço de carregamento de dados.
  3. No projeto de serviço de carregamento de dados, os dados viajam entre sistemas através de um dos seguintes métodos:

    • Acesso privado do Google
    • Pontos finais do Private Service Connect
    • Infraestrutura da Google direta

    O método depende de os sistemas estarem alojados em Google Cloud redes da VPC ou diretamente em Google Cloud. Como parte deste fluxo, o subsistema de carregamento de dados envia dados RAG divididos em blocos para o modelo, que produz vetores para cada bloco.

  4. O subsistema de carregamento de dados escreve os dados vetoriais e os dados divididos em blocos no repositório de dados adequado.

Fluxo de inferência

Este fluxo descreve os pedidos dos clientes.

  1. A partir da rede externa, um cliente envia um pedido para o endereço IP do serviço.
  2. O pedido é transmitido através da ligação do Cloud Interconnect ou da ligação do Cloud VPN para a rede VPC de encaminhamento.
  3. O pedido é transmitido através da ligação do spoke da VPC para a rede da VPC da RAG.
  4. O pedido do cliente chega ao equilibrador de carga, que passa o pedido para o subsistema de front-end.
  5. O subsistema de front-end encaminha o pedido para o subsistema de publicação.
  6. O subsistema de publicação aumenta o pedido através da utilização dos dados contextuais relevantes do armazenamento de dados.
  7. O subsistema de publicação envia o comando aumentado para o modelo de IA, que gera uma resposta.

Produtos usados

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

  • Nuvem virtual privada (VPC): um sistema virtual que oferece funcionalidade de rede global e escalável para as suas Google Cloud cargas de trabalho. A VPC inclui o intercâmbio da rede da VPC, o Private Service Connect, o acesso a serviços privados e a VPC partilhada.
  • VPC partilhada: uma funcionalidade da nuvem virtual privada que lhe permite ligar recursos de vários projetos a uma rede VPC comum através de endereços IP internos dessa rede.
  • Private Service Connect: uma funcionalidade que permite aos consumidores acederem a serviços geridos de forma privada a partir da respetiva rede VPC.
  • Acesso privado à Google: uma funcionalidade que permite que as instâncias de VM sem endereços IP externos alcancem os endereços IP externos das APIs e dos serviços Google.
  • Cloud Interconnect: um serviço que expande a sua rede externa para a rede Google através de uma ligação de alta disponibilidade e baixa latência.
  • VPN na nuvem: um serviço que estende de forma segura a sua rede ponto a ponto à rede da Google através de um canal VPN IPsec.
  • Cloud Router: uma oferta distribuída e totalmente gerida que fornece capacidades de orador e respondedor do Protocolo BGP (Border Gateway Protocol). O Cloud Router funciona com o Cloud Interconnect, o Cloud VPN e os dispositivos de router para criar trajetos dinâmicos em redes VPC com base em trajetos personalizados e recebidos do BGP.
  • Network Connectivity Center: uma framework de orquestração que simplifica a conetividade de rede entre recursos spoke que estão ligados a um recurso de gestão central denominado hub.
  • VPC Service Controls: uma funcionalidade de rede gerida que minimiza os riscos de exfiltração de dados para os seus Google Cloud recursos.
  • Cloud Load Balancing: um portefólio de balanceadores de carga globais, escaláveis e de elevado desempenho, bem como balanceadores de carga regionais.
  • Model Armor: um serviço que oferece proteção para os seus recursos de IA generativa e de agente contra injeção de comandos, fugas de dados confidenciais e conteúdo prejudicial.
  • Google Cloud Armor: um serviço de segurança de rede que oferece regras de firewall de aplicação Web (WAF) e ajuda a proteger contra ataques DDoS e de aplicações.
  • Cloud Storage: um local de armazenamento de objetos de baixo custo e sem limite para diversos tipos de dados. Os dados podem ser acedidos a partir do interior e do exterior Google Cloud, e são replicados em várias localizações para redundância.

Exemplos de utilização

Esta arquitetura foi concebida para cenários empresariais em que as comunicações de entrada, saída e internas do sistema geral têm de usar endereços IP privados e não podem atravessar a Internet:

  • Entrada privada: os dados carregados não são transmitidos através da Internet. Em alternativa, aloja o seu contentor do Cloud Storage atrás de um ponto final do Private Service Connect na sua rede VPC de encaminhamento. Google CloudCopie os dados RAG através da sua ligação Cloud Interconnect ou Cloud VPN usando apenas endereços IP privados.
  • Conetividade privada entre serviços: os serviços comunicam entre si através das interfaces internas da Google ou de endereços privados internos das suas redes VPC.
  • Saída privada: os resultados da inferência não são acessíveis através da Internet, a menos que opte por configurar esse acesso. Por predefinição, apenas os utilizadores na rede externa designada podem aceder ao ponto final privado do seu serviço.

Alternativas de design

Esta secção apresenta abordagens de design de rede alternativas que pode considerar para a sua aplicação compatível com RAG no Google Cloud.

Disponibilize o serviço publicamente

Na arquitetura apresentada neste documento, apenas os utilizadores na sua rede interna podem enviar consultas para a sua aplicação. Se a sua aplicação tiver de estar acessível a clientes na Internet, use um Application Load Balancer externo regional.

Use o GKE Inference Gateway

Se o subsistema de front-end for executado no GKE, pode usar um Inference Gateway em vez de um Application Load Balancer.

Considerações de design

Esta secção fornece orientações adicionais para ajudar a implementar a rede de modo a suportar a conetividade privada para uma arquitetura compatível com a RAG. Estas orientações podem ajudar a cumprir os seus requisitos específicos de segurança e conformidade, fiabilidade, custo e desempenho. As orientações nesta secção não são exaustivas. Para a sua implementação específica, pode ter de considerar fatores de design adicionais que não são abordados nesta secção.

Segurança, privacidade e conformidade

Na maioria dos casos, implementa o Model Armor à frente do modelo de IA para avaliar os comandos recebidos e os resultados enviados. O Model Armor ajuda a evitar potenciais riscos e a garantir práticas de IA responsáveis.

Para rejeitar pedidos inadequados antes de chegarem ao subsistema de publicação, pode anexar o Model Armor ao equilibrador de carga.

Esta arquitetura usa os VPC Service Controls, que ajudam a impedir a exfiltração de dados não autorizada.

Este design usa princípios de segurança estabelecidos para ajudar a proteger as suas cargas de trabalho de RAG. Para ver princípios e recomendações de segurança específicos das cargas de trabalho de IA e ML, consulte o artigo Perspetiva de IA e ML: segurança no Well-Architected Framework.

Otimização de custos

Para ver princípios e recomendações de otimização de custos específicos das cargas de trabalho de IA e ML, consulte o artigo Perspetiva de IA e ML: otimização de custos no Well-Architected Framework.

Otimização do desempenho

Para ver princípios e recomendações de otimização do desempenho específicos das cargas de trabalho de IA e ML, consulte o artigo Perspetiva de IA e ML: otimização do desempenho no Well-Architected Framework.

Implementação

Esta secção descreve os passos para criar a sua aplicação:

  1. Identifique a região para cargas de trabalho.
  2. Crie Google Cloud projetos e redes VPC.
  3. Ligue as suas redes externas à rede VPC de encaminhamento.
  4. Associe redes através do Network Connectivity Center.
  5. Identifique os componentes para a implementação da RAG e crie contas de serviço.
  6. Configure os VPC Service Controls.
  7. Crie o subsistema de carregamento de dados.
  8. Crie o subsistema de publicação.
  9. Crie o subsistema de front-end.
  10. Torne a sua aplicação acessível a partir da Internet.

Identifique a região para cargas de trabalho

Em geral, é recomendável colocar a conetividade, as sub-redes VPC e as cargas de trabalho perto das suas redes nas instalações ou de outros clientes na nuvem. Google CloudPara mais informações sobre como escolher uma região para as 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.

Crie Google Cloud projetos e redes de VPC

Se a sua organização já tiver configurado a rede entre nuvens para aplicações distribuídas, o projeto de encaminhamento e a rede VPC de encaminhamento já devem existir.

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

  1. Crie o projeto de encaminhamento.
  2. Crie a rede VPC de encaminhamento com o acesso privado à Google ativado.
  3. Crie o projeto RAG.
  4. Promova o projeto RAG para ser um projeto anfitrião da VPC partilhada.
  5. Crie o projeto do serviço de carregamento de dados.
  6. Crie o projeto do serviço de publicação.
  7. Crie o projeto de serviço de front-end.
  8. Crie a rede RAG da VPC partilhada com o acesso privado à Google ativado.
  9. Conceda autorização aos projetos de serviço para usar a rede RAG.

Ligue as suas redes externas à rede VPC de encaminhamento

Pode ignorar este passo se já tiver configurado a rede entre nuvens para aplicações distribuídas.

Configure a conetividade entre as redes externas e a sua rede de encaminhamento. Para compreender as tecnologias relevantes, consulte o artigo Conetividade externa e híbrida. Para orientações sobre como escolher um produto de conetividade, consulte o artigo Escolher um produto de conetividade de rede.

  1. No projeto de encaminhamento, crie um hub do Network Connectivity Center.
  2. Adicione as ligações do Cloud Interconnect como pontos de ligação de anexos de VLAN ou adicione ligações do Cloud VPN como pontos de ligação de VPN.
  3. Adicione a rede VPC da RAG e a rede VPC de encaminhamento ao hub como raios de VPC.

Identifique os componentes para a implementação da RAG e crie contas de serviço

  1. Escolha uma implementação de RAG e crie uma lista dos componentes de que precisa.
  2. Identifique o acesso de que cada componente precisa.
  3. Para cada componente, crie uma conta de serviço com as autorizações adequadas. Em alguns casos, isto significa que concede a um componente autorização para ler ou escrever num projeto de serviço diferente.

Este design pressupõe que usa um contentor do Cloud Storage como componente de entrada de dados e que usa um equilibrador de carga no frontend de inferência. O resto do design pode variar conforme necessário.

Idealmente, cada componente é executado como a sua própria conta de serviço. Certifique-se de que cada componente tem apenas as autorizações da IAM mínimas necessárias para realizar as respetivas funções obrigatórias. Por exemplo, uma tarefa do Cloud Run no subsistema de carregamento de dados tem de ler a partir do contentor do Cloud Storage de entrada, mas não tem de escrever no contentor. Neste exemplo, o projeto de serviço que executa a tarefa do Cloud Run deve ter autorização para ler apenas a partir do contentor, sem autorização de escrita.

Configure os VPC Service Controls

  1. Crie um perímetro do VPC Service Controls em torno da sua implementação.
  2. Configure regras de acesso.

Crie o subsistema de carregamento de dados

O subsistema de carregamento de dados recebe dados não processados de engenheiros de dados e processa-os para utilização pelo subsistema de publicação.

  1. No projeto de serviço de carregamento de dados, crie um contentor do Cloud Storage.
  2. Na rede VPC de encaminhamento, crie um ponto final regional do Private Service Connect e associe o ponto final ao contentor.
  3. Na rede externa, adicione uma entrada DNS para o ponto final através do endereço IP e do URL gerados no passo anterior.
  4. Atualize as regras de firewall da rede externa para permitir o acesso ao endereço IP do ponto final.
  5. No projeto de serviço de carregamento de dados, desenvolva o resto do pipeline de carregamento de dados de acordo com a arquitetura RAG escolhida.
  6. Conceda autorizações da IAM para que o recurso relevante no pipeline de carregamento possa aceder ao modelo que produz os vetores.
  7. Conceda autorizações de IAM para que o recurso relevante no pipeline de carregamento possa escrever no banco de dados de vetores.

Crie o subsistema de publicação

  1. No projeto do serviço de publicação, crie o pipeline de publicação.
  2. Conceda autorizações da IAM para que a conta de serviço no sistema de front-end possa aceder ao resultado do subsistema de publicação.

Crie o subsistema de front-end

Esta secção pressupõe que usa um Application Load Balancer interno regional que usa um NEG sem servidor em frente do Cloud Run. No entanto, pode usar um equilibrador de carga e um back-end diferentes.

  1. Crie o código para o seu sistema de front-end.
  2. No projeto de serviço de front-end, implemente o sistema de front-end com balanceamento de carga, que inclui o passo opcional para configurar uma política de segurança do Cloud Armor.
  3. Configure o Cloud Router na rede VPC de encaminhamento para encaminhar rotas da rede VPC RAG para os routers no local. Esta configuração permite que os clientes alcancem o equilibrador de carga.
  4. Na sua rede externa, configure as regras de firewall para tornar o front-end do balanceador de carga acessível a partir da sua rede externa.
  5. Na sua rede externa, atualize o DNS para apontar para a regra de encaminhamento do balanceador de carga.

Torne a sua aplicação acessível a partir da Internet

Esta secção é opcional.

Este design pressupõe que quer que o seu serviço seja acessível apenas a partir da sua rede externa, mas também pode tornar o serviço acessível a partir da Internet.

Para tornar o serviço acessível a partir da Internet, conclua os seguintes passos:

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

O que se segue?

Colaboradores

Autores:

  • Deepak Michael | Customer Engineer especialista em redes
  • Mark Schlagenhauf | Redator técnico, redes

Outros colaboradores: