Janela de contexto vs RAG vs fine-tuning: o que escolher
Três formas de ensinar um LLM a trabalhar com seus dados e tarefas - colocar tudo na janela de contexto, conectar RAG (retrieval-augmented generation) ou fine-tunar o modelo. Cada abordagem tem seu custo, velocidade de atualização do conhecimento e teto de precisão. Abaixo: como funcionam, como diferem e como escolher estratégia para chatbot, assistente de suporte ou copilot interno sem gastar demais.
Três abordagens para um mesmo problema
O objetivo é o mesmo: o modelo deve responder sobre seu produto, documentação, políticas ou domínio - não só o que veio do pre-training. Opções:
| Abordagem | Ideia | Onde ficam os conhecimentos |
|---|---|---|
| Janela de contexto | Todo texto necessário no prompt | Em cada requisição |
| RAG | Buscar fragmentos relevantes + gerar | No índice / base de conhecimento |
| Fine-tuning | Retreinar pesos do modelo | Nos pesos do modelo |
Muitas vezes não se escolhe «ou», e sim uma combinação: RAG para fatos, fine-tuning para estilo e formato, contexto longo para poucos documentos em uma requisição.
Janela de contexto: tudo no prompt
A janela de contexto é a quantidade de texto (em tokens) que o modelo «vê» em uma requisição: system prompt, histórico do chat, arquivos anexados e instruções.
Como funciona
Você coloca no prompt:
- instruções de sistema («responda como advogado da empresa X»);
- documentos relevantes inteiros ou em blocos grandes;
- exemplos few-shot («aqui um exemplo de boa resposta»).
Modelos atuais (GPT-5.6, Claude Fable 5, Gemini 3.5 Flash) suportam 1-2M tokens de contexto - centenas de páginas. Para muitos cenários isso basta sem infraestrutura separada.
Vantagens
- Infraestrutura mínima - sem índice vetorial nem pipeline de embeddings.
- Atualização instantânea - muda o texto do prompt e o conhecimento atualiza na hora.
- Transparência - você sabe exatamente o que o modelo «vê» nesta requisição.
- Few-shot sem treinar - exemplos no prompt definem o formato da resposta.
Desvantagens
- Custo cresce com o tamanho - tarifas long-context costumam ser x1,5-x2 sobre a base.
- Teto de volume - mesmo 2M tokens não cabem toda uma base enterprise.
- Qualidade no meio - o modelo pode «perder» detalhes no centro de contextos muito longos (lost-in-the-middle).
- Latência - mais tokens de input significam primeiro token mais lento.
Quando escolher contexto
- Corpus pequeno e estável: 5-50 documentos, um produto, um FAQ.
- Protótipo ou MVP - validar hipótese em um dia sem stack RAG.
- Tarefas que exigem texto completo em uma requisição: comparar dois contratos, code review de um PR inteiro.
- Precisa de controle total sobre o que entra no prompt (auditoria, compliance).
RAG: busca + geração
RAG (Retrieval-Augmented Generation) - antes de responder, o sistema busca fragmentos relevantes na sua base (busca vetorial, BM25, híbrida), insere no prompt e o modelo gera resposta baseada no que foi encontrado.
Como funciona
Pipeline típico:
- Ingestion - documentos divididos em chunks (300-1000 tokens), embeddings criados.
- Index - BD vetorial (Pinecone, Qdrant, pgvector, Chroma) + índice keyword opcional.
- Query - pergunta do usuário -> embedding -> top-k chunks.
- Generation - chunks + pergunta -> LLM -> resposta (idealmente com citações de fonte).
Atualização do conhecimento: reindexar documentos alterados - sem retreinar o modelo.
Vantagens
- Escala - milhões de páginas com indexação e chunking bem feitos.
- Atualidade - documento novo no índice em minutos, não semanas.
- Menos alucinações - modelo se apoia em fragmentos fornecidos; citações aumentam confiança.
- Economia de input - só chunks relevantes no prompt, não toda a base.
Desvantagens
- Complexidade - chunking, embeddings, reranking, avaliação, monitoramento de drift.
- Qualidade do retrieval = qualidade da resposta - busca ruim dá respostas ruins com modelo «perfeito».
- Latência - dois passos (busca + geração) mais rerank.
- Duplicatas e conflitos - versões diferentes de documentos no índice confundem o sistema.
Quando escolher RAG
- Base grande ou que muda com frequência: docs, wiki, tickets, Confluence, arquivo PDF.
- Precisa de links para fonte nas respostas (suporte, jurídico, médico com ressalvas).
- Muitos usuários e consultas - mais barato trazer 5 chunks do que 500 páginas ao contexto.
- Dados não podem ir para os pesos do modelo (confidencialidade, isolamento por tenant).
Fine-tuning: conhecimento nos pesos
Fine-tuning - treinamento adicional do modelo base nos seus dados: pares instruction/response, diálogos, texto de domínio. Os pesos se ajustam para o modelo conhecer melhor estilo, terminologia e tarefas típicas sem prompt longo.
Variantes:
- Full fine-tuning - todos os parâmetros (caro, raramente necessário).
- LoRA / QLoRA - adaptadores sobre base congelada (padrão para modelos custom).
- DPO / RLHF - alinhamento a preferências (tom, segurança, formato).
Como funciona
- Monta dataset: Q&A, diálogos de suporte, exemplos de código, respostas JSON.
- Treina adaptador ou modelo completo em GPU (horas a dias).
- Faz deploy de endpoint fine-tuned ou pesos merged.
- Na inference - system prompt curto, modelo já «conhece» padrões.
Fine-tuning não substitui fatos atuais: preços, versões de API, novidades do produto não são «memorizados» de forma confiável sem RAG ou contexto fresco.
Vantagens
- Estilo e formato - tom unificado, schema JSON, templates de resposta.
- Menos tokens no prompt - sem instruções longas nem dezenas de exemplos few-shot.
- Latência e custo por requisição - prompt mais curto para a mesma tarefa.
- Terminologia especializada - medicina, direito, jargão interno.
Desvantagens
- Caro e lento - dados, GPU, iterações, eval; exige competência ML.
- Obsolescência - produto novo = novo ciclo de treino ou híbrido com RAG.
- Risco de overfitting - modelo «decora» o training set e generaliza mal.
- Pior em fatos raros - fine-tuning pior que RAG para «ache o parágrafo 4.2 na policy v3».
Quando escolher fine-tuning
- Tarefa estável com formato repetitivo: classificação, extração, resumos com template.
- Precisa de prompt curto e baixa latência com milhões de requisições.
- Grande volume de diálogos rotulados com qualidade (milhares+ de exemplos).
- On-prem ou air-gapped - um modelo local sem API externa por chunk.
Comparação por critérios-chave
| Critério | Contexto | RAG | Fine-tuning |
|---|---|---|---|
| Volume de conhecimento | Até limite da janela | Praticamente ilimitado | Limitado pelo training set |
| Atualidade | Instantânea (novo prompt) | Rápida (reindex) | Lenta (retrain) |
| Custo inicial | Baixo | Médio | Alto |
| Custo por requisição | Cresce com tamanho do contexto | Busca + contexto curto | Prompt baixo |
| Alucinações | Risco médio | Menor com bom retrieval | Médio, erros «confiantes» |
| Citações de fonte | Manual no prompt | Natural | Difícil |
| Infraestrutura | API do modelo | BD vetorial, pipeline | GPU, MLOps |
| Compliance / auditoria | Controle total do prompt | Logs de retrieval | Caixa preta dos pesos |
Matriz prática de decisão
Comece com contexto se:
- poucos documentos cabem em 100-200K tokens;
- precisa de POC em um sprint;
- cada requisição é única e exige «o arquivo inteiro» (diff, contrato).
Adicione RAG se:
- a base cresceu ou atualiza semanalmente;
- usuários perguntam fatos específicos de milhares de páginas;
- precisa de citações e menor taxa de alucinação.
Adicione fine-tuning se:
- formato de resposta é rígido e idêntico em 95% das requisições;
- RAG funciona mas o prompt incha com instruções e exemplos;
- tem dataset e orçamento para iterações de eval.
Stack production típico 2026:
Modelo fine-tuned (estilo + routing)
+ RAG (fatos da base de conhecimento)
+ Contexto moderado (system prompt, últimas N mensagens, 1-2 docs completos se necessário)
Erros frequentes
- «Jogamos tudo em 1M de contexto» - caro, lento; qualidade de retrieval costuma ser melhor com mesmo orçamento.
- Fine-tune em vez de RAG para FAQ - modelo «memoriza» preços desatualizados; RAG ou contexto é mais simples.
- RAG sem eval - sem métricas (recall@k, faithfulness, revisão humana) o sistema degrada em silêncio.
- Chunks pequenos demais - perde sentido do parágrafo; grandes demais - ruído no prompt.
- Ignorar reranking - top-5 de busca vetorial sem cross-encoder costuma ser pior que híbrido BM25 + rerank.
Conclusão
Janela de contexto - início rápido e controle total para volumes pequenos. RAG - padrão para bases escaláveis com fatos atuais e citações. Fine-tuning - investimento em comportamento e formato estáveis, não enciclopédia de fatos.
Para a maioria dos assistentes corporativos, o ideal é RAG + system prompt curto; fine-tuning entra quando ganhos mensuráveis em qualidade ou custo por requisição justificam o treino. Contexto longo se usa pontualmente - para tarefas que exigem documento inteiro em um shot, não como substituto de busca em toda a organização.
Perguntas frequentes
Dá para substituir RAG por janela de contexto muito longa?
Teoricamente - para corpus pequenos. Na prática - raramente compensa: custo e latência crescem linearmente com o tamanho do prompt, e modelos usam pior informação do meio de contextos longos. RAG traz só o relevante e escala para arquivos grandes. Exceção - tarefas «leia o arquivo inteiro»: code review, comparar duas versões de contrato, analisar um PDF de 200 páginas.
Fine-tuning é obrigatório para chatbot corporativo?
Não necessariamente no início. A maioria dos copilots internos e bots de suporte se resolve com RAG + bom system prompt. Fine-tuning faz sentido com milhares de diálogos de referência, formato unificado (JSON, tickets, campos CRM) ou economia crítica de tokens por requisição. Meça primeiro baseline com RAG - fine-tuning sem métricas muitas vezes não se paga.
O que é mais barato: RAG ou fine-tuning?
RAG mais barato no início: BD vetorial, API de embeddings, sem cluster GPU. Fine-tuning mais caro para começar (dados, treino, deploy) mas pode reduzir custo por requisição se eliminar instruções longas e few-shot de cada prompt com alto tráfego. Compare TCO em 6-12 meses: infra RAG + refresh de embeddings vs custo de retrain e inference do modelo fine-tuned.
Com que frequência atualizar conhecimento em cada abordagem?
Contexto - a cada requisição (prompt atual) ou ao deployar nova versão de template. RAG - conforme documentos mudam: reindex incremental de minutos a horas; rebuild completo no calendário ou ao trocar modelo de embedding. Fine-tuning - quando comportamento ou domínio muda: semanas a meses entre releases; fatos (preços, releases) ainda vêm via RAG ou tool calls.
Dá para combinar as três abordagens?
Sim, e os melhores sistemas em production fazem isso. Modelo fine-tuned define estilo e routing («precisa buscar na base?»). RAG traz fragmentos atuais. Contexto inclui regras de sistema, histórico do chat e às vezes um documento completo para tarefas «ler inteiro». Chave: papéis claros - fatos do RAG, comportamento do fine-tuning, restrições e few-shot do prompt - sem duplicar o mesmo texto em todas as camadas.