Nível Técnico
5 horas 3 tópicos

🎓 Módulo 2.4: Fine-tuning e Customização

Aprenda a adaptar modelos de linguagem para tarefas específicas através de fine-tuning, preparação de datasets e avaliação rigorosa.

🎓 Fine-tuning de LLMs

O que é

Fine-tuning é o processo de treinar um modelo pré-treinado em dados específicos de um domínio ou tarefa para melhorar sua performance. Técnicas incluem full fine-tuning (ajuste de todos os parâmetros), LoRA/QLoRA (Low-Rank Adaptation para eficiência), e instruction tuning. Plataformas como OpenAI Fine-tuning API, HuggingFace PEFT, e Axolotl facilitam o processo.

Por que aprender

Modelos genéricos frequentemente falham em domínios especializados (médico, jurídico, técnico) ou em seguir formatos específicos de output. Fine-tuning pode melhorar performance em 30-80% para tarefas específicas, reduzir custos de inference (modelos menores fine-tuned > modelos grandes genéricos), e possibilitar controle total sobre o comportamento do modelo.

Conceitos chave

  • Transfer Learning: Aproveitamento de conhecimento de modelos pré-treinados
  • LoRA (Low-Rank Adaptation): Fine-tuning eficiente ajustando apenas matrizes de baixa rank
  • QLoRA: Quantização + LoRA para fine-tuning em GPUs consumer
  • Instruction Tuning: Treinamento em pares (instruction, output) para seguir comandos
  • RLHF (Reinforcement Learning from Human Feedback): Alinhamento via preferências humanas
  • Hyperparameter Tuning: Learning rate, batch size, epochs, warmup steps

📊 Datasets e Data Preparation

O que é

Preparação de dados para fine-tuning envolve coleta, limpeza, formatação e validação de exemplos de treinamento. Datasets devem ser representativos, balanceados e de alta qualidade. Formatos comuns incluem JSONL com campos system/user/assistant para chat, ou input/output para completion. Data augmentation, synthetic data generation e active learning ajudam a aumentar quantidade com qualidade.

Por que aprender

"Garbage in, garbage out" - qualidade do dataset é o fator mais importante no sucesso de fine-tuning. Mesmo com algoritmos perfeitos, dados ruins levam a modelos ruins. 100 exemplos de alta qualidade superam 10.000 de baixa qualidade. Profissionais que entendem data preparation economizam semanas de trabalho e milhares em compute.

Conceitos chave

  • Data Collection: Web scraping, APIs, human annotation, synthetic generation
  • Data Cleaning: Deduplication, PII removal, format standardization
  • Train/Val/Test Split: 80/10/10 ou stratified sampling para datasets pequenos
  • Data Augmentation: Paraphrasing, back-translation para aumentar diversidade
  • Synthetic Data: Uso de LLMs para gerar exemplos de treinamento
  • Quality Metrics: Inter-annotator agreement, data diversity scores

🔬 Evaluation e A/B Testing

O que é

Avaliação de modelos fine-tuned combina métricas automáticas (perplexity, BLEU, ROUGE, accuracy) e avaliação humana. A/B testing compara modelos em produção com usuários reais, medindo métricas de negócio (engagement, task completion, satisfaction). Frameworks como Weights & Biases, MLflow, e LangSmith facilitam tracking de experimentos e comparação de modelos.

Por que aprender

Sem avaliação rigorosa, é impossível saber se fine-tuning valeu o investimento ou se degradou o modelo. Métricas automáticas nem sempre correlacionam com qualidade percebida - A/B testing com usuários reais é o gold standard. Empresas sérias exigem evidências estatisticamente significativas antes de deploy de novos modelos.

Conceitos chave

  • Perplexity: Métrica de quão "surpreso" o modelo fica com novos dados
  • Task-Specific Metrics: F1 para classification, BLEU/ROUGE para generation
  • Human Evaluation: Expert review, crowdsourcing para quality assessment
  • A/B Testing Framework: Randomização, sample size calculation, statistical significance
  • Business Metrics: Conversion rate, retention, revenue per user
  • Overfitting Detection: Train vs validation loss monitoring, early stopping

🚀 Workflow Completo: Fine-tuning do Zero à Produção

Fase 1: Preparação de Dataset (1-2 dias)

Coleta e Limpeza

  • • Mínimo 100 exemplos, ideal 500-1000+
  • • Formato JSONL: {{"prompt": "...", "completion": "..."}}
  • • Remoção de PII e dados sensíveis
  • • Deduplicação com embeddings
  • • Balanceamento de classes/categorias

Validação de Qualidade

  • ✓ Revisão manual de amostra (50+ exemplos)
  • ✓ Consistência de formatação
  • ✓ Diversity score > 0.7
  • ✓ Token count médio 100-500
  • ✓ Split: 80% train / 10% val / 10% test
# Preparação de dataset com OpenAI format import json def prepare_dataset(raw_data): formatted = [] for item in raw_data: formatted.append({{ "messages": [ {{"role": "system", "content": "You are a helpful assistant."}}, {{"role": "user", "content": item["input"]}}, {{"role": "assistant", "content": item["output"]}} ] }}) with open("train.jsonl", "w") as f: for item in formatted: f.write(json.dumps(item) + "\\n")

Fase 2: Training (2-8 horas)

OpenAI Fine-tuning

  • • GPT-4o-mini: $3/1M tokens
  • • GPT-3.5-turbo: $8/1M tokens
  • • Training time: 10-60 min
  • • Automatic hyperparameters

LoRA Fine-tuning

  • • Llama 2 7B: 1-4 horas
  • • GPU: A100 40GB ou 4x RTX 4090
  • • QLoRA: Treina em 24GB VRAM
  • • HuggingFace PEFT library

Hyperparameters

  • • Learning rate: 1e-5 to 5e-5
  • • Batch size: 4-32
  • • Epochs: 3-10
  • • LoRA rank: 8-64

$20-200

Custo típico training

30-80%

Melhoria vs base model

3-5 dias

End-to-end timeline

Fase 3: Evaluation & Deploy (1-2 dias)

Checklist de Avaliação:

  • Quantitative: Perplexity, F1, BLEU scores no test set
  • Qualitative: Human eval de 50+ outputs aleatórios
  • A/B Testing: 10% tráfego em modelo fine-tuned vs base
  • Safety: Red teaming, prompt injection testing
  • Cost Analysis: Comparar custo inference fine-tuned vs prompting
ROI Típico: Fine-tuning GPT-3.5 ($100 setup) pode substituir GPT-4 ($300/mês inference) com performance similar em tarefas específicas

⚖️ Comparativo: Métodos de Fine-tuning

Método Complexidade Custo Performance Melhor Para
OpenAI Fine-tuning Muito Baixa $3-8/1M tokens Alta Começar rápido, production-ready
LoRA (Low-Rank Adaptation) Média $10-100 Muito Alta Balance custo/performance, controle
QLoRA (Quantized LoRA) Média $5-50 Alta GPU consumer (RTX 4090, 24GB)
Full Fine-tuning Alta $500-5000+ Máxima Research, customização extrema
Prompt Engineering Muito Baixa $0 setup Média Começar, validar necessidade

✅ Quando Fine-tunar?

  • ✓ Formato de output muito específico (JSON, XML estruturado)
  • ✓ Domínio técnico especializado (médico, jurídico)
  • ✓ Performance inadequada com prompting
  • ✓ Custo de inference muito alto (GPT-4 → GPT-3.5 fine-tuned)
  • ✓ Latência é crítica (modelo menor fine-tuned > modelo grande)

⚠️ Quando NÃO Fine-tunar?

  • ❌ Dataset < 50 exemplos de qualidade
  • ❌ Tarefa resolve bem com prompting + RAG
  • ❌ Conhecimento precisa ser atualizado frequentemente
  • ❌ Não tem forma de avaliar objetivamente
  • ❌ Ainda testando product-market fit

📊 Guia de Preparação de Dataset: Quality > Quantity

Regra de Ouro: 100 exemplos excepcionais > 10.000 exemplos mediocres. Qualidade do dataset é o fator #1 de sucesso.

✅ Best Practices

Diversidade Balanceada

Cubra todos os casos de uso. Se classifying, cada classe com 50+ exemplos.

Formato Consistente

Mesmo estilo, tom, estrutura. Inconsistências confundem o modelo.

Outputs Concisos

Evite verbosidade. Modelos aprendem a imitar comprimento dos exemplos.

Human Review

Revisão manual de 100% dos dados. Automatizar coleta, humanizar quality control.

❌ Erros Comuns

Data Contamination

Test set com overlap de train. Métricas infladas, modelo ruim.

Synthetic Data Overload

Gerar tudo com LLM cria viés. Mix: 70% real + 30% synthetic.

Ignorar Edge Cases

Dataset só com casos comuns. Modelo quebra em inputs inesperados.

PII não Removida

Dados sensíveis no dataset. Violação LGPD/GDPR = multas milionárias.

📈 Sizing Guidelines por Task

Classification

50-100 exemplos por classe. Min 3 classes, max ~50.

Generation

200-500 exemplos. Priorize diversidade de inputs.

Extraction

100-300 exemplos. Cubra todas as entidades alvo.

Format Adherence

50-150 exemplos. Consistência é mais importante que volume.

Módulo Anterior Próximo Módulo