Geração Aumentada por Recuperação (RAG)
- O que é RAG e o ciclo recuperar-aumentar-gerar
- Como indexar, recuperar, aumentar e gerar com citações
- Por que o RAG supera o fine-tuning para necessidades de 'responder sobre os meus documentos'
- Os cinco modos de falha que destroem a qualidade do RAG
- Um prompt de fundamentação pronto para copiar e colar que fecha as duas maiores lacunas
O RAG faz um modelo responder a perguntas sobre os seus dados — documentos, uma base de conhecimento, uma base de código — com os quais ele nunca foi treinado. A ideia é simples: recuperar os trechos relevantes, aumentar o prompt com eles e então gerar uma resposta fundamentada nesses trechos.
O ciclo
- Divida em chunks, gere os embeddings deles (veja /docs/foundations/embeddings) e armazene em um índice vetorial (e/ou de palavra-chave).
- Puxe os principais chunks mais relevantes para a pergunta.
- Coloque esses chunks no prompt com uma instrução como "Responda apenas a partir do contexto abaixo; se não estiver lá, diga isso."
- Produza a resposta — e, idealmente, cite de qual chunk veio cada afirmação.
Para a etapa de embedding na indexação, veja Embeddings e Busca Vetorial.
Por que RAG em vez de fine-tuning?
- Atualizado: atualize os dados, não o modelo
- Verificável: fornece citações
- Barato: muito mais barato do que retreinar
Para a maioria das necessidades de "responder sobre os meus documentos", o RAG é a primeira ferramenta certa — veja Fine-tuning vs Prompting vs RAG.
Os modos de falha (onde a qualidade do RAG morre)
- Recuperação ruim = resposta ruim. Se o chunk certo não for recuperado, o modelo não pode usá-lo. A maioria dos problemas de 'o RAG está errado' são problemas de recuperação.
- Chunking grosso/fino demais arruína a relevância (veja embeddings).
- Sem instrução de fundamentação: o modelo mistura fatos recuperados com os próprios palpites. Diga a ele para responder apenas a partir do contexto e para admitir lacunas.
- Enfiar coisas demais: chunks irrelevantes diluem o sinal e custam tokens. Recupere poucos chunks de alta qualidade.
- Sem citações: você não consegue verificar, então não consegue confiar.
A falha de chunking remete a embeddings, e enfiar coisas demais custa tokens.
- Avalie a recuperação separadamente: meça 'recuperamos o chunk certo?' à parte de 'o modelo respondeu bem?'. Isso localiza o problema rápido. Veja Evals (/docs/foundations/evals).
Copiar e colar: um prompt de fundamentação
A correção de maior alavancagem é uma instrução de fundamentação. Insira os seus chunks recuperados em um modelo como este — ele força o modelo a responder apenas a partir do contexto, citar cada afirmação e admitir lacunas em vez de chutar:
Prompt de fundamentação
You are answering strictly from the context below. Rules: - Use ONLY the context to answer. Do not use outside knowledge. - Cite the source after each claim, like [chunk 2]. - If the answer is not in the context, reply exactly: "I don't have that in the provided sources." - Quote numbers and names verbatim — never paraphrase a figure. Context: [chunk 1] ... [chunk 2] ... [chunk 3] ... Question: <the user's question>
Combine-o com alguns chunks de alta qualidade (não tudo o que você recuperou) e você fecha as duas maiores lacunas de uma vez: a mistura alucinada e as respostas não verificáveis. Depois avalie a recuperação e a geração separadamente para saber qual metade ajustar.
Domine os termos
Teste seus conhecimentos
0/5- RAG = recuperar os chunks relevantes, aumentar o prompt, gerar uma resposta fundamentada e com citações.
- Indexar (chunk + embed + armazenar), recuperar os principais chunks, aumentar com uma instrução de fundamentação, gerar com citações.
- Prefira RAG em vez de fine-tuning para perguntas e respostas sobre documentos: atualizado, com citações, mais barato.
- A maioria das falhas são falhas de recuperação — recupere poucos chunks de alta qualidade, não tudo.
- Sempre adicione uma instrução de fundamentação e cite; avalie a recuperação e a geração separadamente.