Como o RAG funciona
Um sistema RAG tem duas partes.
Antes de alguém perguntar: a indexação
Os documentos são coletados de onde estão, como um repositório de documentos, uma wiki ou um sistema de chamados. Eles são divididos em trechos, em geral de no máximo algumas centenas de tokens cada. Cada trecho é transformado em um embedding, uma lista de números que captura seu significado, e armazenado em um índice de busca, muitas vezes ao lado de um índice de palavras-chave.
Quando alguém pergunta: recuperação e geração
A pergunta é buscada no índice. Os trechos que melhor correspondem são recuperados, muitas vezes reordenados por um segundo modelo, e colocados no prompt com a pergunta e com instruções como "responda apenas a partir destes trechos e cite-os". O modelo redige a resposta, e o aplicativo mostra as fontes ao lado dela.
Opções de arquitetura RAG
| Opção | Como funciona | Onde se encaixa |
|---|---|---|
| Busca vetorial | Encontra trechos de significado próximo ao da pergunta, usando embeddings | Perguntas formuladas de forma diferente dos documentos. Pode deixar passar termos exatos, como códigos e nomes |
| Busca híbrida | Executa a busca por palavras-chave (BM25) e a busca vetorial juntas e funde os resultados | Um bom padrão para conteúdo corporativo, que mistura texto corrido com códigos, nomes e números |
| Reordenação (re-ranking) | Um segundo modelo reordena os primeiros resultados por relevância | Coleções grandes em que a primeira busca traz muitos resultados quase certos |
| Recuperação contextual | Acrescenta a cada trecho uma breve descrição do documento antes da indexação | Trechos que perdem o sentido fora de contexto, como uma cláusula ou uma linha de tabela |
| Contexto longo | Coloca documentos inteiros na janela de contexto do modelo em vez de buscar | Conjuntos pequenos e estáveis de documentos. Custa mais por pergunta |
Nos testes da Anthropic, embeddings contextuais combinados com a busca por palavras-chave BM25 e a reordenação reduziram em 67% a taxa em que o trecho certo ficava fora dos 20 primeiros resultados. O Azure AI Search, por exemplo, executa consultas por palavras-chave e vetoriais em paralelo e as funde com o Reciprocal Rank Fusion, uma forma comum de construir a busca híbrida.
Antes de construir um índice, verifique o que a sua plataforma de IA já oferece. O Claude, por exemplo, consegue trabalhar com fontes conectadas como o Google Drive ou o Microsoft 365 por meio de conectores, o que muitas vezes basta para um primeiro passo.
Limites do RAG e como lidar com eles
- Trechos perdidos. Dividir documentos pode separar um trecho do contexto que lhe dá sentido, e os embeddings podem deixar passar correspondências exatas que a busca por palavras-chave encontra. A busca híbrida e a recuperação contextual reduzem os dois problemas.
- Conteúdo desatualizado. Um índice é uma cópia. Quando os documentos mudam, eles e seus embeddings precisam ser atualizados, de preferência de forma automática e em segundo plano.
- Permissões. O índice precisa respeitar quem pode ver o quê, para que uma pessoa só recupere os trechos que tem permissão para ler.
- Respostas que vão além das fontes. O RAG reduz as respostas inventadas, mas não as elimina. Instruções para responder apenas a partir dos trechos, citações que as pessoas podem conferir e um simples "não sei" quando nada relevante é encontrado mantêm as respostas honestas.
- Contexto demais. Os modelos podem perder informações colocadas no meio de um prompt longo, então menos trechos, e melhores, costumam funcionar melhor do que muitos.
A forma de saber se um sistema RAG funciona é testá-lo: um conjunto de perguntas reais com respostas e fontes conhecidas, medindo tanto a recuperação quanto a qualidade da resposta, antes e depois de cada alteração.
RAG, fine-tuning e contexto longo
| Abordagem | O que muda | Use para |
|---|---|---|
| RAG | O que o modelo consegue ver quando responde | Conhecimento que muda, é extenso ou precisa de citações |
| Fine-tuning (ajuste fino) | Como o modelo se comporta, por meio de treinamento adicional | Um estilo, um formato ou uma tarefa consistentes, não fatos que mudam |
| Contexto longo | Quanto o modelo lê em uma única solicitação | Alguns poucos documentos por vez, como um contrato ou um relatório |
Eles se combinam bem: um modelo pode ser ajustado para um formato, usar RAG para o conhecimento e ler um documento inteiro quando um é anexado.
Onde as empresas usam RAG
- Políticas e RH: respostas sobre férias e licenças, despesas ou regras de segurança, com um link para a política.
- Atendimento ao cliente: respostas redigidas a partir da base de conhecimento e de chamados anteriores, para uma pessoa enviar.
- Jurídico e compliance: pesquisa em contratos, cláusulas e regulamentos, com cada trecho citado.
- Documentação técnica: respostas para engenheiros e equipes de campo a partir de manuais e especificações.
- Vendas: dados de produto e textos de propostas anteriores, para uma oportunidade específica.
Fontes
- Lewis et al.: Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, NeurIPS 2020
- Anthropic: Introducing Contextual Retrieval, 19 de setembro de 2024
- Microsoft: Hybrid search in Azure AI Search
- AWS: What is retrieval-augmented generation?
- Liu et al.: Lost in the Middle: How Language Models Use Long Contexts