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兆パラメータのモデルをコンシューマー向けハードウェアで実行可能にします。モデルの重みをメモリに完全に常駐させるのではなく、ディスクからストリーミングすることで、極端なメモリ要件という問題を解決し、マシンの総メモリ量に関わらず、わずか 8 GB の RAM でモデルを実行できるようにします。
仕組み
このエンジンは、メモリフットプリントを削減するためにいくつかの技術を使用しています:
- 重みのストリーミング (Weight Streaming): 「トランク」(dense layers) は単一のファイルにパックされ、ディスクからストリーミングされます。これに割り当てられるメモリ量は、プリセット (例:
laptop,server) を通じて調整可能です。 - エキスパートキャッシュ (Expert Caching): 1.45 TB のルーティングされたエキスパートは完全に常駐することはありません。代わりに、パックされた 4-bit 形式から直接乗算され、LRU (Least Recently Used) キャッシュを介して管理されます。
- アーキテクチャの最適化: KDA アテンション (メモリが増加しない) と MLA (Multi-head Latent Attention) を実装し、KV キャッシュのメモリオーバーヘッドを削減しています。
- ポータブル C99: エンジンはポータブルな C99 で記述されており、BLAS や重い AI フレームワークへの依存はありません。並列処理には OpenMP を、ハードウェアアクセラレーションには AVX2/NEON を使用しています。
対象読者
- AI 研究者および開発者: 高効率な推論やメモリ制約のある環境に関心がある方。
- ハードウェアに制限があるユーザー: GPU クラスターを必要とせず、標準的なノートパソコンやデスクトップで Kimi K3 モデルを実行したい方。
ハイライト
- 極めて高いメモリ効率: 2.78T パラメータのモデルをわずか 8.24 GB のピーク RSS で実行。
- GPU 依存ゼロ: 完全に CPU 上で動作。
- バイト単位で同一の出力: 8 GB の RAM で実行しても 224 GB の RAM で実行しても、全く同じ結果を生成。
- 最小限のフットプリント: 推論エンジン全体でわずか 176 KB。
- クロスプラットフォーム: Linux, macOS, Windows をサポート。
関連
- Dispatch
- プロジェクト
- プロジェクト
- Dispatch
- Dispatch