🎓 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
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
⚖️ 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.