Dan Woods 用 Apple 论文在 MacBook 上跑 Qwen 397B

深度Simon Willison2026年3月18日2 分钟阅读
Dan Woods 利用 Apple 的「LLM in a Flash」研究,在 48GB 内存的 MacBook Pro M3 Max 上,让 Qwen3.5-397B-A17B 模型以每秒 5.5+ token 的速度运行。他通过 Claude Code 自动执行了 90 次实验,生成了优化的 MLX 和 Metal 代码。

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 版本表现良好。

本文编译自 Autoresearching Apple's "LLM in a Flash" to run Qwen 397B locally,版权归原作者所有。

觉得有用?分享给更多人

获取每周 AI 工具精选

工具推荐、实战教程和生态洞察,每周更新。

相关文章

Simon Willison 正在重构 LLM Python 库的抽象层,以支持服务器端工具执行等新功能。他利用 Claude Code 分析了四大 LLM 提供商的客户端库,生成了用于测试的 curl 命令和 JSON 输出。这些调研材料已开源,旨在帮助设计更通用的 API 抽象。

深度Simon Willison·4月5日·1 分钟

智能体技能——包含程序性知识和可执行资源的结构化包,供智能体在推理时动态加载——已成为增强 LLM 智能体的可靠机制。然而,推理时技能增强存在根本性限制:检索噪声引入无关指导,注入的技能内容带来大量 token 开销,而模型从未真正习得它所遵循的知识。我们提出一个问题:技能是否可以被内化到模型参数中,使其在无需任何运行时技能检索的情况下实现零样本自主行为?我们提出 Skill0,一个专为技能内化设计的上下文强化学习框架。Skill0 引入了一种训练时课程,从提供完整技能上下文开始,逐步撤除。技能按类别离线分组,并与交互历史一起渲染为紧凑的视觉上下文,教授模型工具调用和多轮任务完成。动态课程机制…

深度·4月5日·17 分钟

评论