FareedKhan-dev/kimi-k3-in-c
A 2.78-trillion-parameter Kimi K3 running inference on a single CPU in 8.24 GB of RAM. Portable C99: no BLAS, no framework, no GPU.
何を解決するか
このプロジェクトは、Kimi K3推論エンジンのポータブルなC99実装を提供し、巨大な2.78兆パラメータモデルをコンシューマー向けハードウェアで実行可能にします。極めて高いメモリ要件という問題を解決するために、モデルの1.56TBのチェックポイントサイズに関係なく、わずか8GBのRAMを持つマシンでも、ディスクから重みをストリーミングすることでモデルを実行可能にします。
どう動くか
エンジンは、限られたRAMにモデルを収めるための複数のメモリ削減技術を使用しています:
- ストリーミングトランク: 緊密な層(「トランク」)は単一のファイルにパックされ、ディスクからストリーミングされます。これにより、メモリ要件が調整可能な「ダイヤル」として扱われ、より多くのRAMを使うことで速度が向上しますが、出力品質には影響しません。
- エキスパートキャッシュ: ルーティングされたエキスパート(1.45TB)はメモリに完全にロードされません。代わりに、圧縮された4ビット形式から直接乗算され、LRUキャッシュで管理されます。
- アーキテクチャ最適化: KDA(固定メモリ付きアテンション)とMLA(マルチヘッド潜在アテンション)を実装し、アテンション機構のメモリフットプリントを削減しています。
- ゼロ依存: エンジンはポータブルなC99で記述されており、BLASもGPUも重いAIフレームワークも不要です。libmとOpenMPのみを使用して並列処理を実現しています。
対象ユーザー
GPUクラスタを必要とせずに、ローカルのCPUオンリー環境で巨大なMoE(エキスパートの混合)モデルを実行したい研究者や開発者。
特徴
- 極めて高いメモリ効率: 最大2.78兆パラメータのモデルを、ピークRSSがわずか8.24GBで実行可能。
- バイト同一出力: 8GBまたは224GBのRAMで実行しても、まったく同じ結果を生成します。
- ポータブルC99: GPUや外部AIフレームワークを必要とせず、GCCまたはClangで迅速にビルド可能。
- 柔軟なメモリプリセット: ラップトップ、デスクトップ、ワークステーション、サーバー用のプリセットを提供し、利用可能なシステムRAMに応じてパフォーマンスを最適化できます。
関連
- プロジェクト
- プロジェクト
- Dispatch
- プロジェクト
- プロジェクト