あるエンジニアが3.8B LLMを0.384 COREまで998ドルで訓練した
Hugo Vergnesは3.8BパラメータのLlama系モデルを65Bトークンで43時間、8x B200上で1000ドル以下で訓練した。その記録は、実際に何が効いたのかを正直に綴った貴重なログである。
Hugo Vergnesは3.8Bパラメータのデコーダ専用LLMをゼロから訓練し、65.3Bトークンで0.384 COREを達成した。所要時間は43時間、コストは998ドル、ハードウェアは8x B200。このプロジェクトlittle-lmは、Karpathyのnanochatに触発された設定駆動型フレームワークである。注目すべきはスコアではなく、個人エンジニアにとっての能力あたりコスト曲線が示唆するものだ。
参考までに:GPT-2 1.5Bは0.2565 CORE。nanochat d32(約1Bパラメータ)は約1000ドルで0.310。little-lmは同じ予算で両者を明確に上回る。主な理由は、B200がnanochatの実行で使われたH100よりも作業単位あたりの価値で優れていたことだ。
アーキテクチャ
最終モデルはLlama系:RMSNorm、RoPE、GQA(クエリヘッド24、KVヘッド8)、relu² MLP、QK-norm、logit softcap、層ごとの学習可能な残差スカラー、ResFormer系の値埋め込み。値埋め込みはパラメータ数の19%を占める——vocab × kv_dimのテーブル14個で、1層おきに配置。トークン埋め込みと非結合のLMヘッドはそれぞれ154.5Mパラメータ、28のデコーダ層が2,818.7Mを担う。
実際に効いたもの
Vergnesは6日間を単一のA100で858MモデルをFineWeb-Eduで訓練するのに費やし、PIQA 60.45%という、2019年のGPT-2 124Mよりも悪いスコアだった。その事後分析から、ギャップを埋めた5つの変更が生まれた:
- 台形LRスケジュール。 5%ウォームアップ、フラット維持、最後の50%でピークの5%まで線形クールダウン。858M実行のコサイン・トゥ・ゼロスケジュールはステップの70%で平坦化したが、3.8B実行の評価損失は最終ステップでも下降を続けていた。
- 行列パラメータにMuon、それ以外にAdamW。 Muonは浅い蓄積のベンチマークで1ステップあたり約25%遅いが、そのコストは7回の勾配蓄積ステップでは約4%に希釈される。
- FineWeb-Eduの代わりにClimbMix。 Vergnesは収束速度の飛躍的向上と呼び、Karpathyの発見と一致する。
- FP8 + 語彙パディング。 3つのGEMMすべてに動的テンソル単位スケーリングを伴う
torch._scaled_mm経由のFP8、さらに語彙を50,257から50,304(64の倍数)にパディング。合わせてスループット+33%。 - コンテキスト1024(2048ではなく)。 コンテキストを半減すると固定メモリでバッチサイズがほぼ倍増し、実行がMLP支配のためトークンあたりスループットはほとんど変わらない。
定常状態は約480,000 tok/s。実時間35.9時間に対し純訓練が33時間なのはCORE評価——10回、各約15分、全体の7%。同じレシピを2048コンテキストで再実行すると0.3840対1024での0.3384。その差のほぼすべてはコンテキスト依存タスクから来ている。
ハードウェア面:SMアクティビティ92%、SM占有率40%、B200あたり約1,047 TFLOP/s持続(dense FP8ピークに対して約25% MFU、bf16に対して約50%)。分散戦略は単純なDistributedDataParallel——単一ノード上の3.8Bでは勾配通信は決して制約ではなかった。
単一RTX 5090でのスループット作業
ノードを借りる前に、Vergnesは858Mベースラインを1台の5090で26,144 tok/sから37,621 tok/sへ押し上げた。FP8で+25%。語彙パディングで累積+33%。融合線形クロスエントロピー(LigerのFusedLinearCrossEntropyLoss)は同一バッチサイズで1ステップあたり6%遅いが、約8 GBのVRAMを節約し、バッチサイズを6から10へ増やせるためスループットで勝る。SwiGLUゲートを外す(relu²、3回ではなく2回の行列積)と183,035 → 214,173 tok/sとなり6 GBを節約——ただし注意点として、SwiGLUの中間比率2.75はrelu²には移行できない。非ゲート型には4xを使うこと。bf16マスター重みはVRAMを27%削減し、1.5B設定でスループットを2.2倍にしたが、わずかな品質コストを伴う(4,000ステップでCORE 0.22対0.23)。
効かなかったもの
flex attentionによる文書境界マスキング——トークンごとの文書IDとカスタムアテンションマスク——は完全に削除された。ベストフィットパッキングが約10行で取って代わり、アテンションは無条件のF.scaled_dot_product_attention(..., is_causal=True)に戻った。Karpathyも同じことを発見している:BOS整列パッキング下での文書間リークはさほど害にならない。
nanochatの1000ドル構成とほぼ同じ金額で、little-lmは明確に先行する——そして評価損失は最終ステップでも下降を続けていた。
ディスカッション
0 件のコメント
最初のコメントを投稿しましょう。