头版摘要
9 月 16 日,AutoArk 发布开源推理引擎 Edge0:把 Qwen3.5-35B-A3B 的专家权重整个留在 SSD 上,按需读取。在 24GB 的 Mac mini M4 Pro 上,峰值内存 2.9GiB、解码 20.4 tok/s —— 而传统全量加载是 18.2GiB、只有 3.9 tok/s。35B 模型只占 2.9GiB 内存,速度反而快 5 倍。这篇文章讲清楚它是怎么做到的,以及你该付出什么代价。
| 峰值内存占用 |
解码速度 |
相对全量加载 |
| 2.9GiB |
20.4 tok/s |
5.2 倍 |
先兑现标题的数字
Edge0-35B-A3B 基于通义千问开源的 Qwen3.5-35B-A3B(40 层、256 个专家、每个 token 只激活 4 个,约 3B 激活参数),4-bit 量化后的完整权重是 19.5GB 的文件。这台 Mac mini M4 Pro 只有 24GB 统一内存——按老思路,装下模型就没法干活了。

论文给了对照组:让 19.5GB 权重全部驻留内存(mlx-lm 原生跑法),解码只有 3.9 tok/s、占 18.2GiB;Edge0 把权重留在 SSD 上按需读,反而跑到 20.4 tok/s、只占 2.9GiB。内存省了 84%,速度还快了 5 倍多——这事违反直觉,所以值得拆开讲。
一、问题的另一半:内存墙有两堵
为什么 MoE 模型特别适合这招?因为专家权重「平时用不上」。MoE 把模型拆成几百个专家子模块,每个 token 只挑 4 个干活——计算省了,但字节还在:权重必须存在某个地方。老思路是把它们全塞进内存,塞不下就跑不了。
那放到硬盘上、用到谁读谁呢?问题来了,论文管它叫「内存墙的另一半」:第 N+1 层要用哪几个专家,取决于第 N 层的输出。等你算完第 N 层,再让硬盘去读,黄花菜都凉了——路由的答案出来的那一刻,留给硬盘的时间已经不够了。

一句话版本:硬盘不慢在「读多少」,慢在「来不及知道该读谁」。
二、核心机制:预路由
Edge0 的解法叫预路由(prerouter):给每一层单独训练一个小预测头,在第 N 层开算的同时,提前猜出第 N+1 层会选哪几个专家。最妙的设计在后面——这个预测不算「猜测」,它直接就是路由结果。传统方案是先猜、算完再校验、猜错了就补救加载;Edge0 是预读的专家集合和真正执行的集合严格相等,没有丢弃、没有兜底,把「近似」的代价一次性放在训练阶段解决。
效果体现在硬盘读取的形状变了:
- 传统按需读取:189.4 次加载 × 0.27 MiB → 等待 244 ms
- 预路由读取:44.7 次加载 × 1.32 MiB → 等待 101.9 ms
读的总字节数反而多了,但碎片大了 4 倍、次数少了 4 倍,而且提前发起——SSD 最怕的就是成千上万次小读取。等待时间从每步 244ms 降到 101.9ms,把磁盘读取和计算叠在一起做,仅「重叠」这一项就带来最高 59% 的解码吞吐提升。
三、代价清单:省下来的内存用什么换
天下没有免费的午餐,这篇论文难得的是作者自己把代价写得明明白白。4-bit 量化叠加「预测即路由」会掉分,团队用一个叫 Recover-LoRA 的轻量适配层(rank 16、不合并进权重)把大部分找回来,但仍有缺口:
| 测试集 |
35B 档 |
8B 档 |
| OpenCompass 平均 |
-3.9 分 |
-2.8 分 |
| AIME(长链推理) |
-6.1 分 |
-10.0 分 |
日常任务几乎无感,但数学推理是重灾区——作者自己在论文里写得毫不遮掩。
动手前必须知道的四条:
- 官方口径 20.4 tok/s 是论文单机数字;项目自己的表格写的是 14.9~17.7 tok/s,作者也承认这台机器上波动可达 ±40%。
- 2.9GiB 是「短上下文」口径——KV 缓存存在内存里,prompt 一长它会涨(8B 版在 3.3K token 时涨到 3.3GiB)。
- 一次只服务一个请求,FIFO 串行——它是「单人狂飙」,不是「多人共乘」。
- 框架、4-bit 模型、Recover-LoRA 全部开源(Apache 2.0),但尚无独立第三方复现,别急着上生产。
四、和你的关系:你的设备能跑多大的模型
Edge0 的 8B 版(基于 Ling 3.0,24 层 128 专家)更夸张:峰值内存 1~1.5GiB、解码 24~28 tok/s,官方还演示过在 iPhone 上以约 1GB 内存跑起来的画面。在 16GB 的 MacBook M2 上,预路由把解码从 3.5 tok/s 拉到 6.4 tok/s,提速 82%——越穷的设备,收益越明显。

「权重住硬盘」这条路对 Windows 用户同样有想象空间:它要的不是顶级显卡,而是一块够快的 SSD。不少读者的机器是 16GB 内存 + 普通固态硬盘,过去这类配置跟 35B 模型完全无缘,现在至少有了「能跑」的选项。不过要泼一盆冷水:目前 Edge0 只适配 Apple Silicon,Windows 版还得等社区移植——已经有第三方仓库在尝试了。
建议:
- Mac 用户(16GB 以上)→ 可以立即试,pip 装完拉 19.6GB 检查点就能跑,记得把模型放在最快的盘上。
- 要跑数学推理的人 → 先用小任务验证质量,AIME 掉 6 分不是小数字,写代码查资料无感,硬推理慎用。
- Windows / 显卡党 → 先关注社区移植进度,别急着重装系统,这套思路很快会有跨平台实现。
写在最后
过去十年,跑大模型的门槛是「你有多少显存」;Edge0 把瓶颈挪到了「你的硬盘有多快、你的预路由猜得多准」。前一个是花钱能解决的,后一个是算法问题——门槛从钱包转移到了设计。对买不起 24GB 显卡的大多数人来说,这是方向性利好。
模型不必整个住进内存,它可以需要谁,就把谁从硬盘里请出来。
开源地址:GitHub 上的 Edge0-AI/Edge0 仓库(Apache 2.0,含框架、两个 4-bit 模型与适配层)。装之前记得先清出 20GB 硬盘空间——从今天起,硬盘也是你的「显存」了。