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