TurboFieldfare 能让 26B 模型在 2GB 内存里跑起来吗?MoE 外存推理的工程边界
如果你只看标题,TurboFieldfare 很容易被误读成又一个“神奇压缩模型”的项目:26B 参数,2GB 内存,任意 M 系列 Mac 都能跑。 我一开始也有点怀疑。因为做过本地推理的人都知道,内存不会凭空消失。模型权重、KV cache、运行时缓冲区、系统占用,哪一项都不是靠一句“优化”就能省掉的。真正值得研究的地方不是“它怎么把 14GB 变成 2GB”,而是它愿意用什么代价换掉这部分内存。 答案很工程化:TurboFieldfare 没有把完整模型塞进内存,而是把 Gemma 4 26B-A4B 的共享权重和 KV cache 留在内存里,把路由专家权重放在 SSD 上,每生成一个 token 时只读取当前会用到的专家。项目 README 明确说,它面向 Apple Silicon,用 Swift 和 Metal 写了一个模型专用 runtime,不是 MLX 或 llama.cpp 的薄封装。HN 上这条 Show HN 也拿到了很高讨论度,说明大家真正关心的是同一个问题:本地大模型推理,能不能从“必须买大内存机器”变成“接受慢一点,但普通机器也能跑”? 项目地址在这里:drumih/turbo-fieldfare,HN 讨论记录可见 HN Algolia 条目 49098510。我建议先把它当成一个外存推理实验看,而不是马上当成生产推理引擎看。 它省的不是模型大小,而是常驻内存 TurboFieldfare 选择的模型是 Gemma 4 26B-A4B 的 4-bit 指令版本,权重来源是 Hugging Face 上的 mlx-community/gemma-4-26b-a4b-it-4bit。按项目文档,它的文本部分安装后大约 14.3GB,但运行时常驻内存主要是 1.35GB 的共享权重、FP16 KV cache 和一些工作缓冲区。 关键在 A4B 这个 MoE 结构。Mixture-of-Experts 模型并不是每次都激活所有专家。TurboFieldfare 的系统设计文档写得很细:每层有 128 个 routed experts,router 每个 token 选择 8 个;同时还有 dense shared expert 分支。于是它把“专家权重”从常驻内存里拆出来,按层存成文件,推理时用显式 pread 把当前 token 需要的专家读进缓存槽。 ...