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.