このプロジェクトについて
nanochatは、シングルGPUノード上で大規模言語モデルの学習を行うための、最小限で修正可能な実験用ハームネスです。トークン化、事前学習、ファインチューニング(SFTおよびRL)、評価、推論というLLMパイプライン全体をカバーしています。
このプロジェクトの中心的な哲学はシンプルさです。無数の設定ノブを公開するのではなく、nanochatは単一の複雑さダイヤル(`--depth`、Transformer層の数)を使用して、他のすべてのハイパーパラメータ(モデル幅、ヘッド数、学習率、トレーニング期間、重み減衰)を計算最適化された方法で自動的に導出します。このパラメータをスウィープすることで、異なるサイズのミニシリーズモデルを生成できます。
8×H100ノード上でGPT-2クラスのモデル(およそdepth 24〜26)をトレーニングするには約1.5時間かかり、コストは約48ドル(約3ドル/GPU/時間)です。スポットインスタンスを使用するとコストはさらに約15ドルまで下がります。2019年の元のGPT-2トレーニングは約43,000ドルかかりました。
主な機能:
- GPT-4スタイルのチャットレンダリングを備えたBPEトークナイザ
- バニラPyTorchによるGPT Transformer実装
- `torchrun`による分散トレーニング、シングルGPUおよび勾配累積への自動フォールバック付き
- `autocast`なしでの明示的な混合精度管理(bfloat16、float16、float32)
- DCLM COREスコア、バイトあたりのビット損失、タスクベンチマーク(ARC、GSM8K、MMLU、HumanEval)による評価
- チャットモデル用のRLおよびSFTトレーニングスクリプト
- KVキャッシュ対応の推論エンジン
- GPT-2グレードの能力に到達するまでのウォールクロック時間を追跡するスピードランリーダーボード
コードベースは研究用イテレーションを目的として設計されており、約12層のクイック実験(約5分)で開発者が変更をテストした後にフルトレーニングを実行できます。Andrej Karpathyによって書かれ、メンテナンスされています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.