80B MoE 模型跑进 Chrome 标签页:llama.cpp WebGPU 按需从磁盘换页专家

naklitechie · reddit · 2026-10-13

作者把上周的手写磁盘换页方案移植进 llama.cpp 官方 WebGPU 后端,使其能跑任意 MoE 模型而无需按模型手写引擎。MacBook Pro M4 Pro (24GB) 实测(Chrome 真实录屏):Qwen3-Next 80B-A3B(48.4GB 文件,GPU 仅驻留 4.89GB)48 秒从磁盘加载,2.9 tok/s 概念验证;OLMoE 1B-7B 达 22.4 tok/s;LFM2 8B-A1B 达 17.1 tok/s;Qwen3-30B-A3B(14.7GB)也能跑。

原理:GGUF 一次性下载进浏览器私有存储 OPFS;GPU 存稠密层、KV cache 和每层固定数量的专家槽位;每个 MoE 层读回路由选择,未驻留的专家经 worker 的同步访问句柄从 OPFS 读入最久未用槽位。改动集中在新 buffer 类型、槽位映射的 MULMATID shader 与驻留逻辑。

正确性:同后端开/关换页输出逐字一致(9/9);与 Metal 版 llama.cpp 相比 9 条中 4-8 条一致,差异来自 WebGPU 与 Metal 在近似平局处的舍入——对照 CPU 后端,WebGPU 与 Metal 精度相当。

限制:80B 每生成一个 token 需从磁盘读约 359MB;prompt 处理仍慢;仅支持 Chrome/Edge 137+,仅在 Apple 芯片上测试。彩蛋:问这个 80B 模型自己能否在浏览器标签页运行,它答「不可能」——而它正在浏览器标签页里运行。

原文链接 →

「Infra」频道最新

更多「Infra」频道 AI 资讯 →