Pular para o conteúdo principal

Capítulo 2: Quando Usar Fine-Tuning vs RAG

Fazendo a Escolha Certa para Seu Caso de Uso​

Uma das decisões mais importantes no desenvolvimento de aplicações com LLM é escolher entre fine-tuning, RAG (Retrieval-Augmented Generation) ou apenas prompt engineering. Cada abordagem possui pontos fortes distintos.


As Três Abordagens​

1. Prompt Engineering​

Elaboração cuidadosa dos prompts de entrada para obter as respostas desejadas sem necessidade de treinamento.

2. RAG (Retrieval-Augmented Generation)​

Recuperação de contexto relevante de um banco de dados e inclusão desse contexto no prompt.

3. Fine-Tuning​

Treinamento do modelo com seus dados para internalizar novos conhecimentos ou comportamentos.


Estrutura de Decisão​

Escolha Fine-Tuning Quando:​

CenárioPor que Fine-Tuning Funciona
Ensinar um estilo ou tom específicoO estilo é internalizado, não apenas imitado
Formato de saída consistenteO modelo aprende profundamente a estrutura
Terminologia específica de domínioA terminologia se torna natural para o modelo
Tarefa customizada difícil de promptarO treinamento proporciona comportamento mais confiável
Redução do tamanho/custo do promptOs comportamentos são incorporados, não promptados

Escolha RAG Quando:​

CenárioPor que RAG Funciona
Conhecimento muda frequentementeBasta atualizar o banco de dados
Necessidade de citações/fontesA recuperação fornece rastreabilidade
Grande base de conhecimentoNão cabe no contexto ou no treinamento
Precisão factual é críticaFatos recuperados vs fatos aprendidos
Privacidade/controle de acessoControle sobre o contexto recuperado

Escolha Prompt Engineering Quando:​

CenárioPor que Prompting Funciona
Experimentação rápidaNão precisa de infraestrutura de treinamento
Mudanças simples de formatoExemplos few-shot funcionam bem
Poucos casos de usoPrompts podem cobrir cada caso
Orçamento limitadoSem custos de treinamento ou de vector DB
Requisitos mudando rapidamenteAlterar o prompt ao invés de treinar novamente

Comparação de Custos​

AbordagemCusto de SetupCusto por ConsultaManutenção
PromptingBaixoAlto (prompts longos)Baixo
RAGMédioMédioMédio (atualizações do BD)
Fine-TuningAltoBaixo (prompts mais curtos)Alto (re-treinamento)
Cost Crossover

Fine-tuning se torna mais econômico em escala. Se você faz milhões de chamadas de API, a economia com prompts mais curtos geralmente justifica o custo do fine-tuning.


Abordagens Híbridas​

Na prática, as melhores soluções frequentemente combinam abordagens:

Fine-Tuning + RAG​

# Fine-tune para estilo e formato
# Use RAG para recuperação de conhecimento

# 1. Recupere o contexto relevante
context = vector_db.search(query)

# 2. Use o modelo fine-tuned com o contexto recuperado
response = fine_tuned_model.generate(
f"Context: {context}\nQuery: {query}"
)

Benefícios:

  • O modelo sabe usar a informação recuperada de forma eficaz
  • Estilo e formato consistentes
  • Conhecimento atualizado via recuperação

Fine-Tuning + Prompting​

# Fine-tune para comportamento principal
# Prompt para variações

response = fine_tuned_model.generate(
f"Respond in a formal tone: {query}" # Prompt modifica o comportamento fine-tuned
)

Análise de Casos de Uso​

Caso 1: Bot de Suporte ao Cliente​

RequisitoMelhor Abordagem
Voz e tom da empresaFine-Tuning
Informações sobre produtosRAG
Modelos de respostaFine-Tuning
Anúncios recentesRAG
Regras de escalonamentoFine-Tuning

Recomendação: Fine-tune para comportamento + RAG para conhecimento


Caso 2: Análise de Documentos Jurídicos​

RequisitoMelhor Abordagem
Terminologia jurídicaFine-Tuning
Referências a jurisprudênciaRAG
Formato de citaçãoFine-Tuning
Decisões recentesRAG
Estrutura do documentoFine-Tuning

Recomendação: Fine-tune para linguagem jurídica + RAG para base de casos


Caso 3: Assistente de Código​

RequisitoMelhor Abordagem
Estilo de codificaçãoFine-Tuning
Contexto do código da empresaRAG
APIs internasRAG + Fine-Tuning
Boas práticasFine-Tuning
DocumentaçãoRAG

Recomendação: Abordagem híbrida para melhores resultados


Comparação Técnica​

Memória e Conhecimento​

AspectoFine-TuningRAG
Capacidade de conhecimentoLimitada pelo treinamentoLimitada pelo tamanho do BD
Atualização de conhecimentoRequer re-treinamentoAtualiza o banco de dados
LatênciaRápido (sem recuperação)Mais lento (passo de recuperação)
AcuráciaPode alucinarFontes citáveis
EscalabilidadeMesmo custo em escalaCustos do BD crescem

Quando o Conhecimento Importa​

# RAG é melhor para consultas factuais
query = "What is our refund policy for Pro plan customers?"
# → Recupera do banco de políticas

# Fine-tuning é melhor para padrões comportamentais
query = "Respond to an angry customer about billing"
# → Modelo fine-tuned sabe o tom e abordagem corretos

Erros Comuns​

❌ Fine-Tuning para Conhecimento Dinâmico​

"Fizemos fine-tuning do nosso modelo com dados da empresa, mas já está desatualizado."

Solução: Use RAG para conhecimento que muda, fine-tune para comportamento.

❌ RAG para Estilo/Formato​

"Nosso sistema RAG recupera a informação certa, mas as respostas são inconsistentes."

Solução: Fine-tune para estilo consistente, RAG para conteúdo.

❌ Over-Engineering com Fine-Tuning​

"Passamos semanas fazendo fine-tuning quando prompting few-shot teria funcionado."

Solução: Comece com prompting, só faça fine-tuning se necessário.

❌ Ignorar a Opção Híbrida​

"Tivemos que escolher entre RAG e fine-tuning."

Solução: Combine abordagens para melhores resultados.


Árvore de Decisão​


Exemplo Prático: Construindo um Assistente Médico​

Requisitos:​

  1. Usar terminologia médica adequada
  2. Referenciar diretrizes de tratamento atuais
  3. Citar fontes para recomendações
  4. Seguir formatos de resposta compatíveis com HIPAA

Solução:​

# 1. Fine-tune para linguagem e formato médico
model = load_finetuned_model("medical-assistant-v1")

# 2. RAG para diretrizes e pesquisas atuais
guidelines = medical_db.search(patient_query)

# 3. Geração combinada
prompt = f"""
You are a medical assistant. Use the following current guidelines:
{guidelines}

Patient Query: {patient_query}

Respond using proper medical terminology and cite your sources.
"""

response = model.generate(prompt)

Principais Aprendizados​

✅ Fine-tuning é melhor para estilo, formato e comportamentos internalizados

✅ RAG é melhor para conhecimento dinâmico e fontes citáveis

✅ Prompting é melhor para iteração rápida e customização simples

✅ Abordagens híbridas frequentemente trazem os melhores resultados

✅ Considere custos tanto no setup quanto por consulta

✅ Adapte a abordagem aos requisitos do seu caso de uso


Próximos Passos​

Agora vamos explorar o panorama dos métodos e ferramentas de fine-tuning em Capítulo 3: Panorama do Fine-Tuning.


Verificação Rápida​

Antes de avançar, certifique-se de que você consegue responder:

  1. Quando você escolheria RAG em vez de fine-tuning?
  2. Quais são os trade-offs de custo entre as três abordagens?
  3. Como você projetaria um sistema de suporte ao cliente usando ambas as abordagens?