Pré-Treino de LLMs
Scaling Laws
Kaplan et al. (2020) — OpenAI
- arXiv: 2001.08361
- Achado: Power-laws entre compute (C), parâmetros (N) e tokens (D): loss ∝ N(-0.076), loss ∝ D(-0.095)
- Regra empírica: ~1.7 tokens por parâmetro (subótimo — modelos 2020 foram undertrained)
Chinchilla — Hoffmann et al. (2022) — DeepMind
- arXiv: 2203.15556
- Achado: Ótimo de compute exige igual escala de modelo E dados: ~20 tokens por parâmetro
- Exemplo: GPT-3 175B deveria ter treinado com 3.5T tokens, não 300B
- Impacto: Toda decisão de pré-treino de 2022 em diante usa Chinchilla como referência
MFU — Model FLOP Utilization
- Métrica: FLOPS efetivos / FLOPS teóricos da GPU
- Referência: A100 com FlashAttention: 35–45% MFU; meta é >45%
- Fórmula: Para Transformers densos: ~6 × N × D FLOPS por token
Dados e Curadoria
Data Mixture
- Estratégia padrão (2024-2026): Web (60-70%) + Code (10-20%) + Books (5%) + Academic (5%) + Outros
- FineWeb (HuggingFace): 15T tokens de 96 snapshots do Common Crawl; melhor open dataset geral
- FineWeb-Edu: 1.3T tokens filtrados por qualidade educacional — melhor para knowledge/STEM
- Curriculum Learning: Multi-stage (web → high-quality data) melhora performance; adotado por OLMo 2, Phi-4
Deduplicação
- MinHash LSH: Deduplicação near-duplicate via hashing por similaridade de Jaccard
- Impacto: SlimPajama remove 49.6% do RedPajama-V1 por deduplicação — melhora qualidade
- Ferramenta: datasketch, datatrove
Filtragem de Qualidade
- Filtros padrão: Remoção de profanidade, spam, código malicioso, dados pessoais (PII)
- Qualidade de código: Filtrar por presença de testes, taxa de build passing, número de estrelas GitHub
Paralelismo e Infraestrutura
Data Parallelism (DP)
- Mecanismo: Replica o modelo em cada GPU; distribui batches; sincroniza via all-reduce
- DDP (PyTorch): Implementação padrão; eficiente para modelos que cabem em 1 GPU
Tensor Parallelism (TP)
- Mecanismo: Distribui parâmetros individuais de camadas entre GPUs
- Reduções necessárias: All-reduce a cada camada; latência de comunicação
Sequence Parallelism (SP)
- Mecanismo: Fraciona ativações ao longo da dimensão de sequência
- Combinado com TP: Cobre dropout, LayerNorm não cobertos por TP
Pipeline Parallelism (PP)
- Mecanismo: Distribui camadas entre GPUs; micro-batches em pipeline
- Trade-off: Complexidade vs economia de memória em modelos muito grandes
ZeRO (DeepSpeed)
- ZeRO-1: Particiona optimizer states (~4× economia de memória)
- ZeRO-2: + gradients (~8× economia)
- ZeRO-3: + parâmetros do modelo (~N× economia, N = número de GPUs)
- ZeRO-Infinity: Offload para CPU/NVMe — treina modelos de qualquer tamanho
FSDP (PyTorch Fully Sharded Data Parallel)
- Alternativa ao ZeRO: Nativo no PyTorch; integração direta
- FSDP2 (2024): Prefetching implícito/explícito; testado em modelos 1T parâmetros
- Recomendação: Padrão para a maioria dos times de fine-tuning (7B–70B em 2–8 GPUs)
Megatron-LM (NVIDIA)
- GitHub: github.comNVIDIAMegatron-LM
- Suporta: TP, PP, DP, Expert Parallelism, Context Parallelism
- Performance: FlashAttention integrado; mixed precision FP16BF16FP8
- Quando usar: Research e grandes clusters; curva de aprendizado alta
Otimizações de Treino
Gradient Checkpointing
- Mecanismo: Salva ativações apenas em checkpoints (ex: a cada 10 camadas); recomputa no backward
- Trade-off: ~33% mais tempo de treino; reduz memória de ativações em 10–20×
Mixed Precision Training
- BF16: Melhor para treino (range dinâmico maior que FP16); padrão em GPUs Ampere+
- FP16: Requer loss scaling; mais sensível a overflow
- FP8: Disponível em H100+; reduz memória e aumenta throughput; requer cuidado
FlashAttention (ver arquivo de arquiteturas)
- Obrigatório em qualquer treino de LLM moderno
Gradient Clipping
- Prática padrão: clip by norm (max_norm=1.0) — evita explosão de gradientes
Stack de Pré-Treino (Abril 2026)
| Componente | Ferramenta recomendada |
|---|---|
| Framework | PyTorch 2.x + FSDP2 ou DeepSpeed ZeRO-3 |
| Atenção | FlashAttention 3 |
| Checkpointing | Gradient checkpointing ativo |
| Precisão | BF16 (treino) + FP32 (optimizer states com ZeRO-2+) |
| Dados | datatrove + HuggingFace Datasets |
| Monitoring | Weights & Biases |
| Logs | wandb + TensorBoard |
Referências de Datasets de Pré-Treino
Ver 04-treinamento/datasets.md para catálogo completo.