このプロジェクトについて

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によって書かれ、メンテナンスされています。