Lean-QwenFlash:16GB 显存 8GB 内存跑全量 Qwen3.8-Flash-Next,262K 上下文 20 tok/s
Reddit 用户 MaxDev0 10 月 25 日发布 Lean-QwenFlash:在 16GB 显存、只分 8GB 内存的 RTX 4090 上跑通全量 Qwen3.8-Flash-Next(125B),262K 满窗上下文生成 20 tok/s、预填充约 1,600 tok/s。专家权重全部留在 NVMe 上,缓存未命中时经 O_DIRECT 直读、在 GPU 上完成计算,项目已在 GitHub 开源。
125B 全量模型,专家权重留在 SSD 上
Qwen3.8-Flash-Next 的官方参数拆分是 125B 主模型(每 token 激活 6B)、51B n-gram 嵌入表、4B MTP,合计 180B。主模型 48 层、每层 512 个路由专家,每个 token 只取其中 10 个,约 2% 权重参与一次前向。官方模型卡写明 n-gram 嵌入表「比 MoE 更适合 offload」——这类读多算少的大张量,适合留在盘上按需取。
但现有的主流本地跑法(如社区方案 Strata)仍把约 2.4 万个专家全部钉在系统内存里,48-64GB 内存起步,普通台式机和笔记本够不到。Lean-QwenFlash 的目标就是把内存需求砍到 8GB。
从 GLM-5.3 方案适配而来
作者在帖子里说,起因是注意到 sybil-solutions 的 glm-flash-lite 用异常低的内存跑 GLM-5.3-Flash。那个项目(10 月初开源,MIT 协议,340 stars)把 EXL3 3.05bpw 的 GLM-5.3-Flash(权重共 125GB)放进单张 RTX 3090:显存放热专家,内存钉一层,剩下的 117GB 专家库按每专家一条 4K 对齐记录放在 NVMe 上,O_DIRECT 绕过页缓存直读,CPU 侧再开一条 AVX2 通道就地计算冷专家,16GB 内存档实测 14.7 tok/s 生成。
Lean-QwenFlash 内置 ExLlamaV3 fork,把这套 NVMe 预读和内存分层架构移植到 Qwen3.8-Flash-Next,并改了一处:去掉 CPU 通道,缓存未命中的专家经 PCIe 直接进 GPU 算,绕开主机内存带宽的限制。
三层分装,计算全在 GPU
| 介质 | 装什么 |
|---|---|
| 显存 16GB | attention 混合器、DeltaNet 状态、路由、共享专家、输出头、4-bit KV cache、自适应专家缓存 |
| 内存 4-16GB(可配) | 最近激活的专家 |
| NVMe | 约 47GB 打包专家库 + 32GB n-gram 表 |
未命中的读取走异步环形缓冲,提前于计算流预读。多轮会话有前缀缓存:循环状态检查点随 KV 一起保存,命中的后续请求 0.8-1.4 秒内出第一个 token。
实测:4090 满窗 20 tok/s
以下为作者实测(EXL3 3.05bpw 量化加 4-bit KV,4090 限 16GB 显存、8GB 内存):
| 上下文 | 预填充 | 生成 |
|---|---|---|
| 8k | 1,080 tok/s | 28-33 tok/s(散文)/ 19-22 tok/s(代码) |
| 100k | 1,536 tok/s | 20.8 tok/s |
| 262k(满窗) | 1,627 tok/s | 20.0 tok/s |
RTX 3080 Laptop(16GB 显存、32GB 内存)在 100k 上下文下生成 17.6-20.9 tok/s、预填充 647-693 tok/s,显存峰值 15.5GB,内存占用 19-24GB。
部署门槛与社区反馈
要求:Linux x86_64、NVIDIA 显卡至少 16GB 显存、NVMe 读速 3GB/s 以上(PCIe 3.0 或 4.0)、CUDA 12.4+、Python 3.10-3.12。下载约 85GB(EXL3 checkpoint 加 n-gram 表),再用打包脚本把路由专家压成约 47GB 的直读库。服务端是 OpenAI 兼容 API(端口 30000),支持流式输出、四档 reasoning effort、function calling,可直接接 Pi、OpenCode、Claude Code 这类编码代理。
评论区两点值得留意:
- 质量未独立验证。有用户指出 sybil 原仓的 KL 散度质量测试语料只有几千 token 的简单问答题,会低估量化加流式的质量损失;Lean-QwenFlash 沿用这套口径,尚未附独立评测。
- SSD 寿命影响有限。读取不计入 SSD 寿命,有用户实测运行时额外写盘只有每小时几 MB。
对照同类:社区方案 Strata 加 --low-ram residents 参数也能低内存跑,有用户在 5060 Ti 16GB 加 32GB 内存上跑 Q2_0,预填充从 100 tok/s 提到 800 tok/s;作者自己说内存够用的机器直接用 Strata 更省事,Lean-QwenFlash 面向的是内存只有 8GB 的场景。
与剪枝版路线的取舍
Qwen3.8-Flash-Next 的低配部署现在是两条路。一条是先剪后量:ISTA-DASLab 的剪枝版把每层 512 个专家去掉一半,用 llama.cpp 分层装载,8GB 显存加 24GB 内存可跑 262K 上下文,生成约 8 tok/s,代价是模型本身已削掉一半专家、剪枝目标域之外的能力有损。Lean-QwenFlash 是另一条:模型一个参数不剪,用 16GB 显存和更快的 SSD 换回全量模型和 20 tok/s 生成。两条路线的量化体系也不同——前者走 GGUF,后者走 EXL3,文件互不通用。
12GB 和 8GB 显存的适配还在项目 TODO 里,尚未实测;AMD 显卡与 Windows 原生不支持(评论区建议走 WSL)。
参考链接
- MaxDevv/lean-qwenflash — 项目仓库(README、打包脚本、实测数据)
- 原帖 Lean-QwenFlash(r/LocalLLaMA)
- Qwen/Qwen3.8-Flash-Next 官方模型卡 — 参数拆分(125B + 51B + 4B)与 n-gram 嵌入说明
- sybil-solutions/glm-flash-lite — 上游 GLM-5.3 NVMe offload 方案
- turboderp/Qwen3.8-Flash-Next-exl3 — EXL3 量化 checkpoint
- ISTA-DASLab/Qwen3.8-Flash-Next-GSQ-RCO-Coder-GGUF — 剪枝版模型卡(176.9B 口径出处)