O que é a arquitetura RAG? Uma definição completa com exemplos práticos detalhados

A arquitetura RAG é o conjunto de componentes que armazena, recupera e fornece informação externa a um LLM; este guia explica 10 tipos, da RAG básica e híbrida à RAG agêntica e à GraphRAG, com dois exemplos passo a passo.

Diagram of the types of RAG architecture branching from a central hub: basic, hybrid, adaptive, corrective (CRAG), self-RAG, multimodal, agentic, GraphRAG, HyDE, and branched.

A RAG, sigla inglesa de retrieval augmented generation (geração aumentada por recuperação), é um processo em que os LLM utilizam informação externa para desenvolver e melhorar os seus resultados. A arquitetura RAG é o conjunto de componentes e ligações que torna a RAG possível.

Existem várias categorias de RAG, e cada uma assenta na sua própria arquitetura. Em essência, a arquitetura de um sistema RAG determina a forma específica como a informação é armazenada, recuperada e fornecida a um LLM.

O que é a arquitetura RAG?

A arquitetura RAG é a configuração subjacente de componentes (e respetivas capacidades) que dá suporte a um determinado sistema RAG. Todas estas arquiteturas assentam num modelo de base, frequentemente designado RAG “simples” ou “ingénua”.

Eis uma visão geral da arquitetura RAG de base:

  • Fonte de informação: É aqui que a informação externa é armazenada. Pode ser um índice de pesquisa, uma base de dados vetorial que representa grandes quantidades de informação ou um repositório de documentos em bruto.
  • Componente de recuperação: É o mecanismo através do qual a fonte de informação é consultada. Um sistema RAG pode, por exemplo, utilizar uma simples pesquisa por palavras-chave para encontrar fragmentos de texto relevantes, ou consultas vetoriais mais complexas para realizar uma pesquisa por semelhança.
  • Componente de orquestração: Esta camada é a parte da aplicação baseada em LLM que inicia o pipeline de RAG para um prompt do utilizador, em conjunto com o LLM ou de forma independente. Também compila a informação recuperada num prompt expandido.

Os componentes da arquitetura RAG estão normalmente organizados em dois percursos. O percurso de ingestão recebe os dados e organiza-os numa fonte de informação pesquisável. As bases de dados vetoriais, nas quais grandes quantidades de texto são convertidas num repositório pesquisável de embeddings vetoriais, são uma das aplicações mais utilizadas.

O percurso de recuperação recebe o prompt de um utilizador e gera uma consulta com a qual pesquisa a fonte de informação. Em seguida, o orquestrador adiciona a informação recuperada ao contexto de entrada do LLM. Nas arquiteturas RAG agênticas e híbridas, podem existir vários percursos de recuperação.

Tipos de arquitetura RAG

É enganador pensar na RAG em termos de arquiteturas completamente distintas. A maioria dos engenheiros adota uma abordagem modular, implementando componentes separados para responder a casos de utilização específicos. Embora seja possível traçar fronteiras aproximadas, é importante notar que existe uma sobreposição significativa entre os modelos de arquitetura.

1. RAG básica

A RAG básica, também designada RAG “ingénua” ou “simples”, é o modelo arquitetónico dos outros tipos de RAG.

O processo subjacente é relativamente simples: um utilizador introduz um prompt, o orquestrador determina se é necessária informação externa (de forma independente ou em conjunto com o LLM) e, em conformidade, formula e envia uma consulta de recuperação.

A fonte de informação externa é normalmente uma base de dados vetorial, mas também pode ser uma base de dados SQL, uma API web, um grafo de conhecimento ou até um repositório de documentos “em bruto”. Esta informação adicional é depois acrescentada ao contexto de entrada do LLM.

Para além das consultas SQL e das API, existem dois grandes tipos de métodos de recuperação:

  • Pesquisa lexical (pesquisa por palavras-chave): Trata-se de uma forma simples de RAG em que são extraídas palavras-chave da consulta de um utilizador, que são depois comparadas com passagens de texto que contêm essas palavras-chave. Nos pipelines modernos, o orquestrador pode, para isso, realizar aquilo a que se chama uma consulta de vetores esparsos, que não capta o significado.
  • Pesquisa de vetores densos (pesquisa semântica): Os embeddings de vetores densos captam o significado. Um orquestrador pode consultar uma base de dados de vetores densos de forma a captar o significado tanto do prompt do utilizador como da informação de origem.

A utilização de memória é também uma parte importante da arquitetura RAG. Refere-se à forma como um LLM utiliza o contexto de conversas anteriores para construir uma consulta de recuperação, ancorando-a assim no contexto mais amplo de uma discussão (ou de várias discussões). A RAG conversacional é a norma na maioria dos chatbots, embora alguns casos de utilização, como as respostas a pedidos de suporte, possam utilizar RAG de pergunta única.

2. Híbrida

A RAG híbrida combina dois tipos diferentes de recuperação, normalmente a recuperação por palavras-chave e a semântica. A pesquisa por palavras-chave encontra termos correspondentes e a pesquisa vetorial encontra passagens com significado relacionado.

Também podem ser utilizadas outras formas de recuperação, como a travessia de grafos de conhecimento ou consultas a bases de dados SQL. O processo é frequentemente orientado por uma lógica de encaminhamento, sob a forma de regras programadas ou da classificação da pergunta por um modelo (embora também seja possível executar vários pipelines em simultâneo).

O orquestrador junta os resultados e pode reordená-los antes de os transmitir ao LLM. A reordenação (reranking) é o processo de atribuir pontuações de relevância aos fragmentos recuperados, para que o LLM dê prioridade à informação mais pertinente.

3. RAG adaptativa

Na RAG adaptativa, um componente de encaminhamento seleciona uma estratégia de recuperação com base nos requisitos do prompt do utilizador e, em seguida, o orquestrador executa o fluxo de trabalho selecionado.

Na abordagem original (Adaptive-RAG), um modelo mais pequeno funcionava como classificador e escolhia entre não efetuar qualquer recuperação, efetuar uma recuperação num único passo ou efetuar uma recuperação em vários passos. Atualmente, algumas arquiteturas utilizam, em alternativa, modelos generativos ou heurísticas baseadas em regras.

É uma arquitetura popular porque atribui capacidade de processamento em função da complexidade e dos requisitos de um prompt, reduzindo passos de recuperação desnecessários nos prompts mais simples. É comum em assistentes que lidam com vários tipos de perguntas.

4. RAG corretiva (CRAG)

A RAG corretiva avalia a informação recuperada antes de a adicionar ao contexto de entrada do LLM. Um avaliador de recuperação analisa se a informação recuperada é relevante e útil. A característica arquitetónica distintiva é a etapa explícita de avaliação e correção antes da geração da resposta.

Se a informação for considerada incompleta ou não aplicável ao prompt, são desencadeados pedidos adicionais. Estes podem incluir métodos de recuperação diferentes dos utilizados no pedido original, como a pesquisa na web ou a travessia de grafos de conhecimento.

A RAG corretiva é comum em áreas onde a exatidão é importante, como a medicina e o direito. No entanto, requer uma fonte de informação adicional que possa complementar as passagens recuperadas originalmente.

5. Self-RAG

Na self-RAG, o modelo pode iniciar pedidos depois de receber o contexto de entrada inicial. As respostas geradas são avaliadas face às evidências recuperadas através de tokens de reflexão, e são enviados mais pedidos através do orquestrador conforme necessário. Inversamente, o LLM pode decidir que não é necessária qualquer recuperação.

Difere da RAG corretiva na medida em que o LLM julga os seus próprios resultados, determina se é necessária recuperação e se o texto recuperado é útil, e monitoriza as suas próprias respostas, modificando-as conforme necessário. A RAG corretiva, por outro lado, avalia a qualidade da informação recuperada antes da geração.

Esta arquitetura é particularmente útil para prompts complexos, ao estilo da pesquisa aprofundada. Como integra avaliações de relevância (da informação recuperada) na geração de respostas, é uma boa opção para prompts que exigem respostas baseadas em evidências.

6. RAG agêntica

A RAG agêntica refere-se a qualquer forma de RAG executada no contexto de uma plataforma agêntica. O modelo utiliza as suas capacidades de raciocínio para determinar o tipo de informação necessária e escolhe entre as opções de recuperação disponíveis.

A recuperação pode ser desencadeada várias vezes, conforme necessário, e o modelo tem a opção de atribuir agentes a consultas mais complexas. Por exemplo, um LLM pode solicitar uma consulta a uma base de dados para identificar um fornecedor, desencadear uma pesquisa de documentos para encontrar contratos relevantes e terminar com uma pesquisa na web para verificar os dados de contacto com recurso a fontes públicas.

A RAG agêntica é a principal implementação de arquitetura nos chatbots mais populares, como o Perplexity, o ChatGPT, o Claude, entre outros. Como estas plataformas dão ao modelo principal acesso a várias ferramentas e pipelines de RAG, este pode selecionar a forma de recuperação mais adequada a cada prompt.

7. RAG multimodal

A RAG multimodal recupera contexto a partir de diferentes tipos de conteúdo multimédia. É uma forma importante de RAG porque disponibiliza aos LLM informação que, de outra forma, seria inacessível, como gráficos e gravações de áudio.

A arquitetura subjacente é a mesma que em qualquer outro sistema. Por exemplo, um pipeline de indexação pode preparar imagens para pesquisa convertendo-as em embeddings diretos. Um sistema de RAG agêntica pode, depois, recuperar essas imagens juntamente com texto semanticamente relevante e enviá-las a um modelo de visão-linguagem para processamento duplo.

8. GraphRAG

A GraphRAG utiliza grafos de conhecimento juntamente com a pesquisa vetorial para recuperar informação sobre entidades. Normalmente, o orquestrador encontra entidades de partida relevantes, também designadas nós, através da extração de palavras-chave ou, por vezes, de uma pesquisa vetorial preliminar. Um recuperador de grafos percorre um grafo de conhecimento para construir um contexto mais amplo.

Por exemplo, em resposta a um pedido de análise detalhada de uma categoria de produtos, um LLM pode desencadear uma pesquisa vetorial para identificar entidades específicas (produtos). Em seguida, o orquestrador desencadeia uma pesquisa no grafo de conhecimento para encontrar entidades relacionadas, como fornecedores, pontos de venda, avaliações, entre outras.

9. RAG ramificada

Enquanto uma arquitetura RAG híbrida tem a capacidade de utilizar diferentes métodos de recuperação, a RAG ramificada refere-se ao processo de executar várias consultas, designadas ramos, em simultâneo. Cada ramo pode consultar uma fonte de informação distinta, ou os ramos podem consultar a mesma fonte em paralelo com consultas ou filtros diferentes. A arquitetura de RAG agêntica utiliza frequentemente a RAG ramificada.

10. HyDE (Hypothetical Document Embeddings — embeddings de documentos hipotéticos)

A HyDE é uma forma inovadora de RAG em que um LLM cria um documento de texto hipotético com o aspeto que uma resposta ideal poderia ter. Este “documento hipotético” é depois utilizado para criar uma consulta que permite uma recuperação mais precisa. Embora o conhecimento relevante não esteja representado nos parâmetros do LLM, a lógica é que uma passagem semelhante a uma resposta pode corresponder melhor aos documentos relevantes do que uma pergunta curta ou um prompt ambíguo.

Exemplo de arquitetura RAG simples: base de dados vetorial

A RAG básica serve de base a tipos de arquitetura mais complexos. No caso de um sistema RAG simples que utiliza uma base de dados vetorial, a documentação de origem é dividida em partes mais pequenas (fragmentos) e convertida em embeddings densos. Quando um utilizador introduz um prompt, o orquestrador gera uma consulta, codifica-a e consulta a base de dados para encontrar passagens relevantes.

Eis uma descrição passo a passo do processo:

  1. Grandes quantidades de texto são convertidas em vetores através de um pipeline de ingestão automatizado e de um modelo de embedding como o BERT.
  2. A aplicação de base de dados organiza, indexa e armazena os vetores para permitir uma pesquisa rápida.
  3. O utilizador introduz um prompt num chatbot (como o Perplexity).
  4. O orquestrador da aplicação codifica o prompt (através de um modelo de embedding) para recuperar informação relevante da base de dados vetorial.
  5. A base de dados vetorial devolve os fragmentos relevantes, e o orquestrador adiciona-os ao contexto de entrada (o “prompt alargado”) e envia-o ao LLM.
  6. O LLM utiliza o contexto adicional para gerar uma resposta recorrendo ao seu conhecimento interno (armazenado nos seus pesos paramétricos).

Exemplo de arquitetura RAG avançada: RAG agêntica

A RAG agêntica refere-se à arquitetura subjacente dos sistemas RAG numa plataforma agêntica. Os fluxos de RAG agêntica tendem a ser complexos porque os agentes de IA podem invocar diferentes ferramentas e pipelines consoante a natureza de um prompt, mobilizando vários agentes se necessário.

Eis um exemplo prático do processo:

  1. Um utilizador introduz uma pergunta complexa que exige uma pesquisa aprofundada sobre um tema. Neste exemplo, digamos que o prompt é “Apresenta uma previsão dos resultados da empresa para os próximos seis meses, tendo em conta os principais acontecimentos geopolíticos.”
  2. O LLM deduz que será necessária uma combinação de consultas RAG em diferentes tipos de conteúdo.
  3. São mobilizados três agentes diferentes para (a) pesquisa vetorial, (b) fundamentação na web e (c) pesquisa de imagens (multimodal).
  4. Os agentes procuram informação relevante, como notícias e dados financeiros internos, através do orquestrador, utilizando as ferramentas de recuperação disponíveis.
  5. O LLM compara os resultados recuperados com a pergunta de pesquisa de cada agente e ordena-os por relevância.
  6. O LLM avalia a informação e desencadeia pesquisas adicionais através de agentes individuais sempre que falta informação.
  7. Assim que tiver sido recuperada informação suficiente, o LLM gera previsões de cenários com base nos valores financeiros existentes (recuperados da documentação interna) e recorre a uma ferramenta de cálculo para projetar os resultados de cada cenário.
  8. O LLM gera uma resposta final com base na informação recuperada e nos cálculos, citando as fontes conforme necessário.

O que se segue para a RAG?

As inovações atuais centram-se em dar profundidade e rapidez às arquiteturas RAG existentes, melhorar a exatidão da recuperação multimédia e criar sistemas concebidos para lidar com informação atualizada ao minuto.

Eis três tendências que estão atualmente a definir a direção da investigação:

  • Pesquisa aprofundada em várias fontes: Trata-se de uma arquitetura RAG capaz de planear pesquisas, executar vários ramos em fontes díspares, avaliar as evidências recuperadas e otimizar autonomamente as respostas geradas. A RAG agêntica capaz de executar todas estas tarefas está a tornar-se cada vez mais rápida e económica.
  • Aplicações multimodais: Os pipelines de recuperação estão a tornar-se mais eficazes no tratamento de imagens e vídeo. São cada vez mais capazes de identificar com precisão tipos específicos de informação em dados multimodais complexos, como vídeos de longa duração e diagramas avançados.
  • Fundamentar respostas em informação em constante mudança: As aplicações baseadas em LLM podem recorrer a fontes de informação em tempo real (como transmissões de vídeo e sensores) para fornecer contexto de entrada. Os sistemas também podem gerar redes de informação multifacetadas, como acontece com a GraphRAG, para interpretar esses dados.

A RAG é fundamental para o funcionamento das aplicações baseadas em LLM. Permite que uma grande variedade de utilizadores, desde consumidores comuns a empresas que trabalham em áreas especializadas, ultrapassem problemas relacionados com alucinações, dados de treino incompletos e falta de acesso a conhecimento interno especializado.

É por isso que os sistemas RAG e a respetiva arquitetura subjacente representam uma das áreas de investigação em IA mais dinâmicas e entusiasmantes.