Pular para conteúdo

Capítulo 2.10 — RAG vs fine-tuning vs prompt engineering

🎯 Objetivo

Encerrar a falsa dicotomia "fine-tune ou RAG" e oferecer um critério operacional de escolha entre prompt engineering, RAG, fine-tuning, structured outputs, policy-as-code, distillation e model routing.

🧠 Princípio guia

A pergunta certa raramente é "fine-tune ou RAG?". A pergunta certa é:

O que está faltando no modelo para que ele faça o que eu preciso de forma confiável?

A resposta a essa pergunta aponta o mecanismo, e o mecanismo aponta a técnica.

O que está faltando Mecanismo certo
Conhecimento mutável (FAQ, docs, dados internos) RAG
Formato rígido de saída (JSON/Pydantic) Structured outputs + schema
Regras de negócio críticas Policy-as-code + validação determinística
Estilo / voz / formato consistente Fine-tuning leve (LoRA) ou few-shot estável
Reduzir custo de modelo grande para tarefa específica Distillation
Escolher modelo por complexidade da query Model routing
Tarefa repetitiva com dataset rotulado e latência apertada ML tradicional ou fine-tuning
Reordenar resultados Reranker
Garantir que ação só aconteça com permissão Autorização (IAM/OAuth) + policy

🚨 Anti-padrões frequentes

  • Fine-tuning para inserir fatos. Conhecimento factual mutável vai para RAG ou tools. Fine-tuning para fatos envelhece em semanas e exige retreinar.
  • Prompt como política de segurança. Prompt é instrução probabilística. Política crítica vai em código.
  • RAG sem avaliação de retrieval. Promove-se um índice novo baseado em "intuição"; recall cai 20%; ninguém percebe até o incidente.
  • Trocar modelo grande por modelo grande "diferente" sem antes examinar routing, RAG, prompt e structured outputs. Quase sempre há ganho mais barato antes do upgrade.

🧪 Heurística de decisão

  1. Antes de tudo, structured outputs + RAG + bom prompt. Resolve a maior parte dos casos.
  2. Routing entre modelos pequeno e grande quando a variabilidade de carga justifica. Reduz custo sem mexer em qualidade média.
  3. Fine-tuning apenas se houver eval mostrando que prompt + RAG não alcançam o resultado e que existe dataset estável o suficiente para treinar e manter.
  4. Distillation quando o modelo grande é custo dominante, há tarefa específica bem definida e existe orçamento para eval contínuo do student contra o teacher.
  5. Multi-agent / agente complexo apenas com workflow já esgotado.