新しいリポジトリをリリースできることを嬉しく思います:nanochat! (これは私が書いた中で最も狂ったものの一つです)。 事前トレーニングのみをカバーした以前の同様のリポジトリ 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のモデルをRL - KV キャッシュ、シンプルなプリフィル/デコード、ツールの使用 (軽量サンドボックス内の Python インタープリター)、CLI または ChatGPT のような WebUI を介してモデルと通信するエンジンでモデルを効率的に推論します。 - 1 つのマークダウン レポート カードを作成し、全体を要約してゲーム化します。 100 ~100 ドルという低コスト (8XH100 ノードで ~4 時間) でも、会話ができ、物語や詩を書いたり、簡単な質問に答えたりできる小さな ChatGPT クローンをトレーニングできます。約~12時間はGPT-2 COREメトリックを上回っています。さらに ~1000 ドル (~41.6 時間のトレーニング) に向けてスケールアップすると、すぐに一貫性が高まり、簡単な数学/コードの問題を解いたり、多肢選択式テストを受験したりできます。たとえば、24時間トレーニングされた深さ30のモデル(これはGPT-3 Small 125MのFLOPとGPT-3の1/1000にほぼ等しい)は、MMLUで40秒、ARC-Easyで70秒、GSM8Kで20秒になります。 私の目標は、完全な「強力なベースライン」スタックを、まとまりのある、最小限の、読みやすく、ハッキング可能で、最大限にフォーク可能な1つのリポジトリにまとめることです。nanochatは、LLM101n(現在も開発中)のキャップストーンプロジェクトになります。また、以前のnanoGPTに似た研究手段、つまりベンチマークに成長する可能性もあると思います。決して完成もチューニングも最適化もされていないが(実際、簡単にできる成果はかなりあると思う)、全体的な骨格は十分に問題ないところにあると思うが、GitHubに載せてすべての部分を改善できる。 リポジトリへのリンクとナノチャットのスピードランの詳細なウォークスルーは返信にあります。
GitHub リポジトリ: より詳細で技術的なチュートリアル: WebUI での 100 ドルの 4 時間のナノチャットとの会話の例。それは...楽しい:)より大きなモデル(たとえば、12時間の深度26または24時間の深度30)は、すぐに一貫性が高まります。
そして、100ドルのスピードランによって生成されたいくつかの要約指標の例を、まずレポートカードに示します。現在のコードベースは8000行強ですが、クリーンでコメントがうまくいっているようにしました。 さて、チューニングとヒルクライムの楽しい部分が来ます。
1.9M