Stawianie modded-nanogpt na polskim od zera: pięć rzeczy, które się wywaliły (i czemu)
Observations
- data: 2026-06-15 ↗
- status: clean ↗
- baza: modded-nanogpt (Muon + RoPE + RMSNorm + QK-norm + SwiGLU, 124M) na clean korpusie PL (3.47B tok, polski BPE 32k), 1×H100 ↗
- metoda: adaptacja 8×H100 speedrunu pod 1×H100 + polski tokenizer + własne shardy; cel: pobić GPT-2. Debug iteracyjny do pierwszego zdrowego biegu. ↗
- harness: torchrun –standalone –nproc_per_node=1 train_gpt.py ↗
- Bug 1 — kompilacja kernela CUDA: triton_kernels.py miał hardkod cuda_include_dirs=/usr/local/cuda/include (nie istnieje na boxie) → nvrtc nie znajdował cuda_bf16.h. Fix: wskazać include na pakiety pip (nvidia-cuda-runtime-cu12) ↗
- Bug 2 — max_num_docs (crash na step 500): bufor granic dokumentów stuningowany pod FineWeb (długie doki); nasze gęste krótkie wiki-doki przepełniły go (81 doków > 64) → RuntimeError. Fix: dzielnik //48 zamiast //300 + większa tablica ↗
- Bug 3 — 51 GB H100 zajęte: Livebook (Erlang/EXLA, root-owned) prealokował 51 z 80 GB; trening dostał 27 GB. Fix: sudo kill beam.smp (XLA agresywnie grabi VRAM nawet idle) ↗
- Bug 4 — własny błąd: patch zostawił przecinek za komentarzem (vocab_size=32896 # …,) → przecinek zakomentowany → SyntaxError. Banał, kosztował relaunch ↗
- Bug 5 — thrashing launchy: kilka równoległych biegów walczących o GPU; pgrep-guard złapał zdychający proces i nie odpalił nowego. Fix: czysty kill → JEDEN bieg + persistent compile cache (TORCHINDUCTOR_CACHE_DIR), żeby 7-min warmup nie powtarzał się przy każdym relaunchu ↗
- Detal — vocab a potęgi 2: 32768 to czysta potęga dwójki (ryzyko gorszej ścieżki cuBLAS, ostrzeżenie Karpathy’ego); model spadowany do 32896 (×128, NIE potęga 2), tokenizer zostaje 32768 — nadmiarowe wiersze to ‘useless dimensions’, nigdy nie są targetem ↗
- Wniosek: cudze speedruny są stuningowane pod ICH dane (FineWeb = długie doki); adaptacja do innego rozkładu długości dokumentów wymaga przejrzenia zaszytych stałych. Plus znów: jeden proces, checkpoint/resume, cache kompilacji — inaczej traci się godziny na crashach i warmupie ↗
Related
uses-benchmark: INCLUDE-44 (PL)
Referenced by
- NVIDIA (mentions)
- GPT (mentions)
- FineWeb (mentions)
- ICH (mentions)
- INCLUDE (mentions)
- FIX (mentions)
- CUDA (mentions)
- BPE (mentions)
- GPU (mentions)
- VRAM (mentions)
- CZYSTY (mentions)
Local graph
Stawianie modded-nanogpt na polskim od zera: pięć rzeczy, które się wywaliły (i czemu)