Seu GPT
Seu GPT (Entregável Final)
Teoria: Decoder-only architecture, autoregressive generation
Prática: Juntar tokenizer + transformer blocks + training loop + geração
Papers Fundamentais#
GPT-1 (2018) - "Improving Language Understanding by Generative Pre-Training" - 12 layers, 768 dims, 12 heads, ~117M params
GPT-2 (2019) - "Language Models are Unsupervised Multitask Learners" - Byte-level BPE, pre-LayerNorm
Implementações de Referência#
Karpathy - nanoGPT - ~600 linhas que reproduzem GPT-2 (124M) no OpenWebText. Custo: ~$10 e ~1h no Lambda Labs
Karpathy - build-nanogpt - Vídeo de 4h + commits limpos para acompanhar passo a passo
jaymody/picoGPT - Forward pass em 40 linhas de NumPy - inferência com pesos reais do GPT-2
Hyperparameters de Referência (nanoGPT 124M)#
| Parâmetro | Valor | O que faz |
|---|---|---|
| Learning rate | 6e-4 | Tamanho do passo de atualização dos pesos. Muito alto = diverge, muito baixo = lento |
| Weight decay | 0.1 | Penaliza pesos grandes para evitar overfitting (multiplica pesos por 0.999 cada step) |
| Warmup | Linear → cosine decay to 10% | Começa com lr baixo, sobe linearmente, depois decai suavemente até 10% do pico |
| Dropout | 0.1 | Desliga 10% dos neurônios aleatoriamente durante treino, forçando redundância |
| Activation | GELU | Versão suave do ReLU (você viu em mlp-e-matrizes) |
| Position embeddings | Learned | Vetores aprendidos (não sinusoidais) indicando posição de cada token |
Apple Silicon (MLX)#
MLX Framework
nanoGPT_mlx - Port direto do nanoGPT para MLX
Datasets para Treino#
| Dataset | Tamanho | Ideal para |
|---|---|---|
| Tiny Shakespeare | ~1MB | Experimentos rápidos (incluso no nanoGPT) |
| TinyStories | 2.14M histórias | Modelos coerentes < 10M params em < 1 dia |
Entregável Final#
Marco intermediário (antes de treinar): Faça um forward pass com input aleatório. Verifique que o loss inicial é ~ln(vocab_size) (distribuição uniforme sobre o vocabulário).
Montagem passo a passo:
- Use seu tokenizer (tópico 6) para processar Tiny Shakespeare
- Use seus blocos Transformer (tópico 8) empilhados com embedding + head
- Adapte seu training loop (tópico 4) para PyTorch com AdamW
- Implemente geração autoregressiva (novo)
- Treine e avalie
Tier 1 - Laptop (sem GPU dedicada)#
GPT character-level, ~1M parâmetros. Após 5000 iterações, deve gerar texto com palavras reconhecíveis em inglês.
Tier 2 - Com GPU#
GPT token-level (BPE), ~10-30M parâmetros. Após treinamento completo, deve gerar histórias de 3-5 frases com coerência gramatical.
Você deve conseguir explicar: Por que o loss inicial deveria ser aproximadamente ln(vocab_size).
Guia de Hardware e Setup#
Setup PyTorch:
- NVIDIA GPU:
pip install torch(CUDA já incluso nas builds oficiais) - Apple Silicon:
pip install torch(suporte MPS automático desde PyTorch 2.0) - CPU only: Funciona, mas só viável para Tier 1
Tempos estimados de treino:
| Hardware | Tier 1 (~1M params) | Tier 2 (~10-30M params) |
|---|---|---|
| MacBook M1/M2 (MPS) | ~5 min | ~3-6h |
| NVIDIA RTX 3090/4090 | ~2 min | ~1-2h |
| Google Colab (T4 free) | ~5 min | ~4-8h |
Opções cloud (se não tem GPU):
- Google Colab - Gratuito com T4, suficiente para Tier 2
- Lambda Labs - ~$1/hr para uma A10G, treina Tier 2 em ~1h
Checklist#
Conclusão#
Você construiu um GPT. De um único neurônio com dot product até um transformer autoregressivo que gera texto - cada peça foi implementada e entendida por você.
Próximos passos sugeridos:#
- Fine-tuning: Adapte seu modelo para uma tarefa específica
- Scaling: Experimente aumentar layers, heads, dimensão - observe o que muda
- Leia GPT-3/LLaMA papers: Agora você tem vocabulário para entender as decisões de design
- RLHF/DPO: Entenda como modelos são alinhados após o pré-treino
Conexões#
Fundamento: Este tópico integra transformer e tokenizacao
Parabéns! Você completou a trilha LLM do Zero!
9 recursos
Este topico tambem pode ser acessado em /topicos/seu-gpt