Dan Woods 用 Apple 论文在 MacBook 上跑 Qwen 397B
Dan Woods 做了一项有趣的研究:他让一个定制版的 Qwen3.5-397B-A17B 模型在 48GB 内存的 MacBook Pro M3 Max 上跑了起来,速度达到每秒 5.5+ token。要知道,这个模型在磁盘上要占 209GB(量化后 120GB)。
Qwen3.5-397B-A17B 是一个混合专家(Mixture-of-Experts,MoE)模型,这意味着每个 token 只需要用到模型权重的一部分。这些专家权重可以从 SSD 流式加载到内存中,不用一次性全塞进 RAM。
Dan 用上了 Apple 在 2023 年那篇论文 LLM in a flash: Efficient Large Language Model Inference with Limited Memory 里描述的技术:
这篇论文要解决的是如何在内存容量不足的情况下高效运行 LLM。方法是将模型参数存储在闪存中,按需加载到 DRAM。我们构建了一个推理成本模型,考虑闪存特性,重点优化两点:减少从闪存传输的数据量,以及以更大、更连续的块读取数据。
他把论文喂给 Claude Code,并采用了 Andrej Karpathy 自动研究模式 的一个变体,让 Claude 跑了 90 次实验,生成了能尽可能高效运行模型的 MLX Objective-C 和 Metal 代码。
最终的代码和一份主要由 Claude Opus 4.6 撰写的 PDF 论文 都放在了 danveloper/flash-moe 仓库里。
模型里的专家权重被量化到了 2-bit,但嵌入表和路由矩阵这些非专家部分保持了原始精度,加起来 5.5GB,在模型运行时常驻内存。
Qwen 3.5 通常每个 token 会用到 10 个专家,但这个设置降到了 4 个。据称,质量下降最明显的是降到 3 个专家的时候。
目前还不清楚模型输出质量具体受到了多大影响。Claude 声称「在这些评估中,2-bit 的输出质量与 4-bit 无法区分」,但它对评估过程的描述比较简略。
更新:Dan 的 最新版本 将专家量化升级到了 4-bit(磁盘占用 209GB,速度每秒 4.36 token)。因为他发现 2-bit 版本在处理工具调用(Tool Calling)时会出问题,而 4-bit 版本表现良好。
觉得有用?分享给更多人