ArtigoInteligência Artificial
RAG explicado: como dar contexto e memória a um LLM
RAG é a forma mais usada de fazer um modelo responder sobre os seus dados sem retreinar nada. Entenda a ideia, as etapas e onde ela costuma falhar.
Por João Guioto2 min de leitura
Um modelo de linguagem só sabe o que viu no treino. Para responder sobre os seus documentos, seus produtos ou as regras da sua empresa, a técnica mais usada é RAG, sigla para geração aumentada por recuperação.
A ideia em uma frase
Em vez de treinar o modelo com seus dados, você busca os trechos relevantes na hora e os entrega junto com a pergunta. O modelo responde usando esse contexto. É como dar a alguém os documentos certos antes de fazer a pergunta.
As etapas
Primeiro, você quebra seus documentos em pedaços (os chunks) e transforma cada um em um vetor numérico com um modelo de embeddings. Esses vetores ficam guardados em um banco vetorial. Quando chega uma pergunta, você a transforma no mesmo tipo de vetor, busca os pedaços mais parecidos e os injeta no prompt.
text
Pergunta
-> vira vetor (embedding)
-> busca os chunks mais próximos no banco vetorial
-> chunks + pergunta vão para o LLM
-> resposta ancorada nos seus dadosRAG não é memória de longo prazo nem substitui um bom banco de dados. É uma ponte entre uma busca por similaridade e a geração de texto.
Onde RAG costuma falhar
A maioria dos problemas não está no modelo, e sim na recuperação. Pedaços grandes demais diluem o que importa; pequenos demais perdem o sentido. Se a busca traz o trecho errado, o modelo responde com confiança sobre a informação errada. Por isso, avaliar a qualidade da recuperação separadamente da geração é o passo que mais melhora o resultado.
Antes de culpar o modelo por uma resposta ruim, olhe quais trechos foram recuperados. Nove em cada dez vezes o problema está ali.
RAG ainda é a escolha certa?
Modelos com janelas de contexto enormes levaram muita gente a perguntar se ainda precisamos de RAG. Para bases pequenas, às vezes dá para colocar tudo no contexto. Mas quando o volume cresce, buscar só o que importa continua sendo mais barato, mais rápido e mais preciso do que despejar tudo no prompt.
RAG é melhor que fazer fine-tuning?+
São coisas diferentes. RAG injeta conhecimento factual e atualizável; fine-tuning ensina formato, estilo ou comportamento. Muitas vezes os dois se combinam.
Preciso de um banco vetorial dedicado?+
Nem sempre. Postgres com a extensão pgvector resolve a maioria dos casos sem adicionar mais uma peça de infraestrutura.