前几天刷到 DeepGrove 发布的 Maple-Preview,一个 20B 参数的推理模型,宣称在 Mac mini M4 上能跑到 218 tok/s。我第一反应是:20B?我本地跑的 Qwen3.6-35B-A3B 是 MoE,激活参数差不多,但体积和速度完全不在一个量级。再一看 checkpoint 才 5.31GB,我开始有点信了。

Maple-Preview 的核心就两个手法。第一是三值权重——每个参数不是存完整的浮点数,而是只存三种值:负、零、正。用 2bit 就能表示,整个模型从原本 38GB(BF16)压到 5GB 出头。计算时也不需要浮点乘加,只要做符号翻转和加法,这也是为什么它在 CPU 上也能跑出几百 tok/s 的预填充速度。第二是MoE 稀疏激活:256 个专家网络里,每轮只唤醒 8 个,实际每 token 只算约 1.5B 参数。DeepGrove 强调这不是后量化,是训练时就按三值精度做的,所以推理能力保留得比”先训练再压缩”要好。
我手头是 16GB 内存的 Mac,理论上完全装得下。但折腾的第一步就发现坑:标准 llama.cpp 和 Ollama 都不认这个格式。DeepGrove 提供了一个 mlx-lm 的 fork,也有专门的 llama.cpp fork,你得专门去 clone 它们的版本。
我试了 mlx-lm 那条路。克隆、建 venv、装依赖,倒还顺利。setup.sh 里就几行:用 uv 建环境,pip install -e 装本地包。但下载模型时卡住了——5GB 说大不大,从 Hugging Face 拖下来还是花了点时间。等模型下完,我准备跑一条生成命令看看实际速度。

先看官方给的 benchmark。AIME 2026 87.5%、HMMT 2026 78.8%、LiveCodeBench v6 75.1%、GPQA-Diamond 73.5%。这个水平在同参数级别里算顶尖了,甚至能跟一些更大的模型掰手腕。作为参考,Qwen3.5-35B-A3B 在同套题上的平均分大概是 82.9%,Maple-Preview 差得不多,但激活参数只有对方的三分之一。不过模型卡上也写得很直白:agentic 能力几乎没有后训练,复杂工具调用链大概率会崩。它就是个纯推理引擎,适合数学、代码分析这类需要”想几步”的任务,不适合当万能助手。
有个细节挺有意思。Maple-Preview 用了 3:1 的滑动窗口注意力(SWA-512)和全局注意力混排,131K 的上下文窗口在 16GB 机器上居然只吃掉约 6.5GB 内存(含 KV cache)。作为对比,传统 attention 堆到 131K 早把内存撑爆了。这说明架构设计本身就是围绕”在消费级设备上跑”来优化的。

三值权重本身不是新概念,学术界搞了很多年,但之前大多停留在论文里。Maple-Preview 的意义在于:它证明了原生 2bit 训练出来的模型,推理质量可以打到这个水准。对本地部署党来说,这意味着 16GB 内存的 Mac 以后可能不止跑 7B 模型,20B 级别的专用推理模型也能碰一碰。
目前最大的障碍是生态隔离。TQ1_0/TQ2_0 格式只有 DeepGrove 的 fork 能读,想集成进现有工具链还得等社区适配。但如果你需要一台离线的数学/代码分析引擎,又不满意 7B 模型的深度,Maple-Preview 是个值得关注的选项。至少 5GB 的体积,试错成本不高。
我准备跑几组测试看看实际速度。如果真能在我的机器上稳定跑起来,以后本地推理又多了一个选项。