karpathy/nanochat
The best ChatGPT that $100 can buy.
何を解決するか
nanochat は、大規模言語モデル(LLMs)をゼロから訓練するための最小限で、カスタマイズ可能かつコスト効率の良いハーネスを提供します。LLM開発における認知的・財政的な複雑さを排除し、ユーザーが単一のGPUノード上で、トークン化、事前学習、ファインチューニング、評価、推論までを100ドル未満で処理できるようにします。
動作方法
このプロジェクトは、--depth(Transformerレイヤー数)という1つの「複雑さダイアル」を中心に構築されています。ユーザーが深度を設定すると、システムはTransformerの幅、ヘッド数、学習率、重み減衰などの他の最適なハイパーパラメータを自動的に計算します。精度を明示的に管理するために、自動キャストに頼らず、カスタム Linear レイヤーを使用しており、VRAMとパフォーマンスに対するより良い制御が可能になります。
対象ユーザー
- 研究者:スケーリング法則やマイクロモデルのパフォーマンスを実験したい方。
- 開発者:エンドツーエンドのLLMライフサイクルを理解できる、読みやすい「強力なベースライン」コードベースを求める方。
- 趣味の人:予算を抑えてGPT-2クラスのモデルを訓練したい方。
特徴
- エンドツーエンドのパイプライン:BPEトークン化と事前学習からSFT、RL、CLIによるチャットまでをカバー。
- 計算最適化:モデルの深度に基づいてハイパーパラメータを自動調整し、最適なパフォーマンスを確保。
- 高い効率性:8XH100 GPUノード上でGPT-2クラスのモデルを約1.5時間で訓練可能。
- ミニマルデザイン:複雑な設定オブジェクトやファクトリを避け、フォークしやすく、読みやすい設計を維持。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch