用純 C 在 8GB 記憶體跑 2.78 萬億引數 Kimi K3
FareedKhan-dev/kimi-k3-in-c
無需 GPU/框架/BLAS,用 176KB 純 C99 引擎在單 CPU 8GB 記憶體推理 Kimi K3 2.78T 引數模型
成熟度:維護活躍,最近提交 3 天前,當前 6 個 open issues,專案剛釋出(v0.1.0)
项目体检
许可 · Apache-2.0,允许商用(需保留版权声明和许可证副本)
活跃 · 新项目活跃维护中,v0.1.0 于 3 天前发布,2 位贡献者,最近提交 3 天前
解決什麼
主流大模型推理依賴昂貴 GPU 叢集和數百 GB 記憶體,讓個人開發者和資源受限場景難以實驗超大引數模型。該專案用純 C 實現 Kimi K3(2.78 萬億引數)推理引擎,通過四層最佳化將記憶體需求從理論上的數 TB 壓縮到 8GB,讓普通筆記本 CPU 也能執行萬億級模型。核心突破在於:將 1.56TB 檢查點通過 4-bit 量化、專家流式載入、線性注意力(KDA)和 MLA 壓縮技術,實現相同輸出在 8GB 到 224GB 任意記憶體預算下位元組級一致。
為何火
技術極客關注點:用 176KB 純 C 程式碼(無 BLAS/PyTorch/GPU 依賴)挑戰工程極限,證明通過精細記憶體管理和 SIMD 最佳化(AVX2)可在消費級硬體跑生產級模型。專案展示了四個遞進式最佳化——專家 4-bit 量化、KDA 常數記憶體注意力、MLA 頭壓縮、Trunk 流式載入——如何將理論不可能變為 8.24GB 實測峰值。對系統程式設計和深度學習交叉領域有教學價值,README 包含完整原理拆解和驗證路徑。
核心功能
- 極致記憶體最佳化:896 個專家(1.45TB)永不駐留記憶體,直接從 NVMe 以 4-bit 形式流式計算;93 層 Trunk 可配置駐留深度,剩餘層按需載入
- 多預設適配:提供 laptop(8GB)到 server(224GB)五檔預設,同一模型不同記憶體配置產生完全相同輸出
- 純 C99 實現:零依賴外部庫,所有矩陣運算、注意力機制、專家路由用手寫 AVX2 SIMD 核心,可移植到任意 x86-64 Linux
- LRU 專家快取:智慧快取熱點專家權重,通過 trace 分析最佳化命中率
- 增量生成:支援流式輸出和完整執行報告(記憶體峰值、token 速度、快取統計)
安裝
前置要求:
- 1.7TB 可用儲存(1.56TB 檢查點 + 109GB 打包 Trunk)
- 支援 AVX2/FMA 的 x86-64 CPU
- 8GB+ 記憶體(更多更快但輸出相同)
步驟:
# 1. 克隆倉庫
git clone https://github.com/FareedKhan-dev/kimi-k3-in-c.git
cd kimi-k3-in-c
# 2. 編譯(通用 AVX2 或針對本機最佳化)
make portable # 或 make native
# 3. 下載 Kimi K3 檢查點(需梯子訪問 Hugging Face)
# 按 README Full setup 章節說明下載 1.56TB 模型檔案
# 4. 執行推理
./bin/k3 ~/k3model --trunk ~/k3trunk --preset laptop \
--tok ~/k3model --prompt "你的提示詞" --gen 20
適合誰
- 系統程式設計學習者:想理解 LLM 推理底層實現(記憶體對映、SIMD、快取策略)的開發者
- 資源受限研究者:需在無 GPU 環境實驗超大模型的學術機構或個人
- 極客挑戰者:對"用最少資源跑最大模型"感興趣的工程師
- 不適合:生產環境(速度慢,laptop 預設 32 秒/token)、需要中文文件的初學者、無法承擔 1.56TB 下載成本的使用者
社群評價
暫無足量社群公開討論,以下為基於專案本身的中立評估:
該專案在技術實現上展現了教科書級的系統最佳化思路,README 詳盡到可作為深度學習推理工程的案例教材。四層最佳化策略(量化、線性注意力、頭壓縮、流式載入)邏輯清晰且有實測資料支撐。但實用性存在明顯侷限:1.56TB 檢查點下載門檻極高,國內使用者需梯子且儲存成本不菲;32 秒/token 的速度僅適合研究而非應用;作為 base 模型缺少對話模板,需額外適配才能實際互動。專案價值更多在教育和技術驗證,而非替代現有推理框架。
選型對比
| 維度 | kimi-k3-in-c | llama.cpp | vLLM |
|---|---|---|---|
| 依賴 | 零依賴純 C | 需 C++ 編譯鏈 | Python + CUDA |
| 記憶體下限 | 8GB(CPU) | ~16GB(量化) | 需 GPU 視訊記憶體 |
| 速度 | 極慢(32s/token) | 中等 | 快(GPU 加速) |
| 適用場景 | 學習/極限挑戰 | 通用 CPU 推理 | 生產部署 |
取捨:若追求極致資源利用和程式碼可讀性選本專案;需平衡效能和易用性選 llama.cpp;生產環境必選 vLLM 等 GPU 方案。
已知坑
- 儲存剛需:1.56TB 檢查點無法繞過,SSD 空間不足會卡在下載階段
- 國內網路:Hugging Face 需梯子,建議用海外伺服器中轉下載
- 速度預期:即使 server 預設(127GB 記憶體)也只能到 10 秒/token,不適合即時互動
- 平臺限制:僅支援 Linux x86-64,macOS 和 Windows 需虛擬機器或 WSL2
- Base 模型特性:輸出是續寫而非對話,需自行實現 chat template 才能問答
- 除錯門檻:純 C 程式碼無高階除錯工具,出問題需手動 gdb 排查
- AVX2 硬性要求:老舊 CPU(2013 年前)無法執行,
make portable也需 AVX2 支援
來源: GitHub 倉庫 + README 技術文件
安装方式:make