我通过从SSD流式传输MoE专家权重,在36 GB MacBook上运行35B–480B编码模型——自包含应用,并且我也公开了那些*失败*的基准测试
摘要
Slipstream 通过从SSD而非RAM流式传输MoE专家权重,使得在36 GB MacBook上运行大型编码模型(35B–480B)成为可能。基准测试显示,35B模型约13–19 tok/s,118B模型约2.8 tok/s,并诚实报告了失败的方法。
我厌倦了"你的Mac无法运行这个"的说法,于是 fork 了 llama.cpp,使MoE模型的专家权重能够从SSD流式传输,而不是强行载入RAM。MoE每token只激活少数专家,因此大部分权重处于闲置状态——Slipstream 保留始终需要的权重在内存中,并按需流式传输路由的专家,进入一个有界RAM缓存,该缓存拒绝加载任何会导致Mac交换内存的数据。它以原生macOS应用的形式发布,引擎已内置其中——下载.dmg,拖到应用程序文件夹,打开。无需编译。将 Kilo/Cline/Cursor/OpenCode 指向 localhost:8080。(尚未公证,因此首次启动需要右键单击→打开。)由于这个 sub 需要真实数据,首先是基于事实的部分:
- Qwen3.6-35B-A3B(Q4),从内部NVMe流式传输:10 GiB缓存(命中率78%)下约13 tok/s,14 GiB缓存下约19 tok/s。35B的模型适合交互式工作。
- Laguna 118B-A8B,它无法放入36 GB内存:约2.8 tok/s。可用于批量编码,不适合聊天。
- 最大的杠杆并非巧妙的kernel——我将一个文件(流式传输的专家权重)移到更快的磁盘上,性能提升了2.7倍。存储位置胜过一切。
- 我原本错误地否定了一条零拷贝路径,但在实际缓存大小下,它带来了13–24%的提升——现在默认启用。
还有那些*没成功*的,因为这是诚实的一部分:
- 双SSD条带化:内部NVMe + 慢速USB(共享总线)效果为负。
- 投机性预取预测器(静态+在线):-8%。预测无法超越读取成本。
- HOT专家保留:-1%到-6%(它缩小了通用缓存)。
完整文章(包括负面结果):BENCHMARKS.md。
仓库 + 自包含的.dmg在链接中。采用MIT许可,完全在设备上运行。受 JustVugg/colibri(为CPU/CUDA实现此功能)启发;我将其适配到Apple Silicon + Metal。
乐意回答基准测试问题——如果有人拥有两块快速NVMe驱动器并想测试双SSD路径(应该会胜出),我很期待数据。
相似文章
@tom_doerr: 在 16GB 内存 Mac 上运行 35B 模型 https://github.com/walter-grace/mac-code…
该工具支持通过从 SSD 流式加载模型权重,在 16GB Mac 上运行 Qwen3.5-35B 等大型语言模型,经优化配置后最高可达 30 tok/s。
Show HN: 在48GB Mac上运行104GB Qwen3.8-Flash-Next,速度约12 tok/s
slotstream 是一个开源工具,它通过从SSD流式传输模型权重,使得在内存有限的Mac上运行像Qwen3.8-Flash-Next这样的大型AI模型成为可能,在48GB Mac上实现了大约12 tokens每秒的速度。
我实测了:将密集27B模型换成30B-A3B MoE模型如何改变本地并发上限(与先前测试相同平台,仅改变一个变量)
作者在MacBook Pro上测试并比较了密集与MoE AI模型的并发性能,发现由于每个token的内存带宽使用更低,MoE模型的扩展性显著更好。
我在一台6GB RTX 4050笔记本上尝试运行1.56TB MoE模型,结果如下
在配备6GB RTX 4050的笔记本上测试1.56TB混合专家模型,需借助NVMe进行修补式内存流式传输,解码速度达到0.106 tokens/s。
有人在32GB Mac上使用opencode、claude code或类似工具,通过Qwen3.6-35B-A3B-UD-Q4_K_M实际完成编码工作吗?
我在一台配备32GB RAM的M2 Macbook Pro上运行Qwen3.6-35B-A3B-UD-Q4_K_M。我使用的是相当新版本的llama.cpp和opencode。为了避免llama-server因内存耗尽而直接崩溃,我必须将上下文窗口设置为32768个token。这一点后来被证明很重要。作为一次希望能有些参考价值的测试,我给opcode布置了一个之前Claude Code配合Opus 4.7能够完成的任务。项目不算大,但任务涉及深入挖掘应用程序的前后端,并找出一个连我(作为原始开发者,在AI之前)都没有一眼看出的问题。