A geração aumentada por recuperação combina um recuperador (retriever), que busca em uma coleção externa de documentos, com um modelo de linguagem gerador. Lewis et al. (2020) apresentaram a técnica, combinando um modelo seq2seq paramétrico com um índice vetorial não paramétrico da Wikipédia, e mostraram que ela produzia textos mais factuais e específicos, alcançando resultados de ponta em perguntas e respostas de domínio aberto.
A maioria dos sistemas de RAG modernos faz a recuperação com embeddings densos, seguindo o Dense Passage Retrieval (Karpukhin et al., 2020); a ideia de unir a recuperação a um modelo de linguagem também foi desenvolvida no REALM (Guu et al., 2020).
O que é RAG em IA? O significado em termos simples
O significado de RAG em uma frase: primeiro consultar, depois responder. Um LLM comum responde apenas com base no que absorveu durante o treinamento, o que pode estar desatualizado ou ser lembrado de forma errada. Um sistema de RAG primeiro busca trechos relevantes para a pergunta — em documentos da empresa, em uma base de conhecimento ou na web — e os entrega ao modelo junto com a pergunta, para que a resposta possa citar e referenciar fontes reais.
É por isso que o RAG é a forma usual de criar chatbots sobre documentos privados, assistentes de suporte que precisam estar sempre atualizados e ferramentas de pesquisa que mostram de onde veio cada afirmação.
Como funciona a geração aumentada por recuperação
- 1Indexar. Os documentos são divididos em trechos (chunks), cada trecho é transformado em um embedding e os embeddings são armazenados em um banco de dados vetorial ou índice de busca.
- 2Recuperar. A pergunta do usuário é convertida em embedding da mesma forma, e os trechos mais semelhantes são encontrados por busca de vizinhos mais próximos, muitas vezes seguida de uma etapa de reranking.
- 3Aumentar e gerar. Os trechos mais relevantes são inseridos no prompt, dentro da janela de contexto do modelo, e o modelo escreve uma resposta baseada neles — de preferência indicando qual trecho sustenta cada afirmação.
RAG vs. fine-tuning
Ambos tornam um modelo mais útil para o seu domínio, mas mudam coisas diferentes. O RAG muda o que o modelo consegue ver; o fine-tuning muda o próprio modelo.
| RAG | Fine-tuning | |
|---|---|---|
| O que muda | O contexto fornecido ao modelo | Os pesos do modelo |
| Atualizar o conhecimento | Reindexar os documentos | Treinar de novo |
| Citações | Pode apontar os trechos usados | Sem rastreamento de fontes embutido |
| Ideal para | Fatos recentes, privados ou que mudam rápido | Estilo e formato consistentes ou comportamento especializado |
Janelas de contexto longas permitem colar documentos inteiros em um chat, o que pode substituir o RAG quando são poucos arquivos. O RAG ainda leva vantagem quando a coleção é maior que a janela, muda com frequência ou precisa ser pesquisada por muitos usuários.
RAG no MultipleChat
Os Projects do MultipleChat funcionam assim: os arquivos que você adiciona a um projeto são indexados e, quando você envia uma mensagem, o MultipleChat pesquisa neles e passa ao modelo apenas os trechos mais relevantes — assim, todos os chats do projeto podem aproveitar seus documentos sem copiar e colar. A busca na web acrescenta fontes em tempo real e, nos planos pagos, o Auto Verification pode checar uma resposta em busca de problemas factuais logo depois que ela é entregue.