新しいリポジトリをリリースできて嬉しいです: nanochat! (これは私が書いた中で最もクレイジーなものの 1 つです)。事前トレーニングのみをカバーしていた以前の類似のリポジトリ nanoGPT とは異なり、nanochat は、依存関係が最小限の単一のコードベースで、シンプルな ChatGPT クローンの最小限の、ゼロからのフルスタック トレーニング/推論パイプラインです。クラウド GPU ボックスを起動し、スクリプトを 1 つ実行すると、わずか 4 時間後には ChatGPT のような Web UI で独自の LLM と通信できます。約 8,000 行の、かなりきれいなコードで、次の操作を実行できます。- 新しい Rust 実装を使用してトークナイザーをトレーニングします。- FineWeb で Transformer LLM を事前トレーニングし、多数のメトリックにわたって CORE スコアを評価します。- SmolTalk からのユーザー アシスタント会話、多肢選択式の質問、ツールの使用に関する中間トレーニング。 - SFT、世界知識多肢選択(ARC-E/C、MMLU)、数学(GSM8K)、コード(HumanEval)でチャットモデルを評価 - オプションで「GRPO」を使用してGSM8Kでモデルを強化学習 - KVキャッシュ、シンプルなプリフィル/デコード、ツール使用(軽量サンドボックス内のPythonインタープリター)、CLIまたはChatGPT風のWebUI経由で対話するエンジンでモデルを効率的に推論 - 全体を要約し、ゲーム化した単一のマークダウンレポートカードを作成します。わずか約100ドル(8XH100ノードで約4時間)のコストでも、会話したり、物語や詩を書いたり、簡単な質問に答えたりできる小さなChatGPTクローンをトレーニングできます。約12時間でGPT-2 COREメトリックを上回ります。さらに約1000ドル(約41.6時間のトレーニング)までスケールアップすると、すぐに一貫性が高まり、簡単な数学/コードの問題を解いたり、多肢選択テストを受けたりできるようになります。例えば、深度30のモデルを24時間学習させた場合(これはGPT-3 Small 125MのFLOP、GPT-3の1/1000にほぼ相当します)、MMLUで40秒台、ARC-Easyで70秒台、GSM8Kで20秒台などになります。私の目標は、完全な「強力なベースライン」スタックを、1つのまとまりのある、最小限で読みやすく、ハッキング可能で、最大限にフォーク可能なリポジトリにまとめることです。nanochatは、現在開発中のLLM101nの集大成となるプロジェクトです。nanoGPTのような、研究用ハーネス、あるいはベンチマークへと成長する可能性も秘めていると考えています。まだ完成、調整、最適化された段階ではありませんが(実際には、すぐに実現できる課題がかなりあると思います)、全体的なスケルトンは十分に完成しており、GitHubに公開してすべての部分を改良できる段階にあると考えています。リポジトリへのリンクとナノチャット スピードランの詳細なウォークスルーは返信にあります。
GitHubリポジトリ: github.com/karpathy/nanoc… より詳細で技術的なウォークスルー: https://t.co/YmHaZfNjcJ WebUIでgithub.com/karpathy/nanoc…白いですね :) より大きなモデル(例えば12時間深度26や24時間深度30)では、すぐに一貫性が増します。
まずは、$100スピードランで生成されたサマリーメトリクスの例をレポートカードに掲載します。現在のコードベースは8000行強ですが、簡潔にまとめ、コメントを充実させるよう努めました。さあ、いよいよ楽しい部分、チューニングとヒルクライミングです。