一台16GB显存+32GB内存的笔记本,运行了176B模型
实验动机
我想看看一台相当普通的笔记本面对一个巨大的 MoE 模型时,究竟能压榨出多少性能。
事实证明,Qwen3.8 Flash Next 176B 可以在以下配置上运行:
- RTX 3080 Laptop — 16GB 显存
- 32GB 系统内存
- SSD 硬盘
不需要 128GB/256GB 内存的专业工作站,也不需要多 GPU 机架。
我使用的推理引擎是 TensorSharp,这是我开源的一个本地 LLM 推理引擎:
对于我来说,有趣的并不是单纯让一个 176B 的模型加载起来,而是让一个远大于“显存 + 内存”容量总和的模型真正变得可用。
核心方法:量化 + MoE 感知的统一调度
方案基本上是这样的:
量化 + 面向 MoE(混合专家)的统一调度,横跨缓存、显存、系统内存和 SSD。
TensorSharp 并没有把 SSD 当作最后关头的交换空间,而是围绕 MoE 的执行来协调不同层级的存储/内存,尽量让恰当的专家/数据在恰当的时间出现在恰当的层级。
我之前曾经把 TensorSharp 和 llama.cpp 做过基准测试,结果很令人鼓舞。这一次我想和 Strata 对比,因为 Strata 在内存受限时运行大模型的方法特别有意思。
基准测试结果
以下是在这个测试中得到的对比结果:
| 指标 | TensorSharp | Strata |
|---|---|---|
| 解码速度(tokens/s) | 11.09(9.22–14.02) | 10.24(9.37–10.46) |
| 全流程耗时 | 16.54s(14.95–19.31) | 62.15s(59.76–66.89) |
| GPU 全设备峰值显存 | 14,832.5 MiB | 15,729 MiB |
| 系统峰值工作集 | 19.74 GiB | 18.51 GiB |
解码吞吐量比较接近:11.09 对 10.24 tok/s。
更让我惊讶的是端到端的差距:本次测试中 16.54s 对 62.15s。
结果说明与思考
我觉得这为本地 LLM 推理指明了一个有趣的方向。对于巨大的稀疏 MoE 模型,问题可能不再仅仅是:
> “我的内存/显存够不够装下这个模型?”
而是:
> “运行时的调度器能把显存、内存、SSD、缓存和专家激活策略协调得多高效?”
配合合适的量化和内存层级调度,你显然可以在消费级硬件上做出一些相当离谱的事情。
如果这里有人用 llama.cpp、Strata 或另一种 MoE/offloading 实现,在类似硬件上跑过同一个模型,我会特别感兴趣。能对比一下是很棒的事情。
社区评论精选
这里是原帖下的高票评论(原文共 39 条讨论):
[+13] u/DigitalguyCH:如果不说明量化方案,以上所有内容都显得很含糊。
[+8] u/leonbollerup:有趣的项目,但可以从 Strata 借鉴些灵感。同款显卡……我能达到 80 tok/s,解码大约 2200。
[+6] u/Toxaris71:给所有使用 8GB 显存(RTX 3070 Ti)和 32GB DDR4 内存的朋友参考:在 Qwen 3.8 Flash IQ3_XXS 下,我得到 11 tk/s 的文本生成(tg)和 30 tk/s 的提示处理(pp);在 IQ2_0 下则是 32 tk/s tg 和 80 tk/s pp。就目前来看,质量比 Orinth 1.5 35B 4-bit(32 tk/s tg、250 tk/s pp)更好,也比 Qwen 3.8 27B IQ4_XS 快得多(后者大约稳定在 2.8 tk/s tg 和 260 tk/s pp)。
[+5] u/wizard_of_menlo_park:量化参数呢?
[+2] u/UltraFOV:我会在我的笔记本上试试:RTX Quadro 5000(16GB)+ 32GB 内存。
[+2] u/mireisinterested:评论里那些喷 IQ1_M 的人不明白——不是所有量化方案都是一样的。在你下判断之前先自己试试。
[+1] u/Choice_Celery9481:嘿,我注意到你们支持一大票模型,这个支持 SM70 吗?
[+1] u/FerLuisxd:基于这次发现去提个 PR 吗?
[+1] u/okoyl3:Qwen 都让我开始支持中国马克思主义了。
[+1] u/braintheboss:Strata 的问题是它会把所有专家都加载进内存,在 32GB 内存下你没法跑大多数量化。但解决方案很简单,我今天就会给他们发 PR。
[+1] u/jeremyohara450:我能不能用这个跑任意模型?不像 Strata 那样有限制?
[+1] u/Independent_Grade612:这对你的配置来说是不是有点慢?还是说你的内存不够导致频繁从 SSD 上载?我在自己的笔记本(12GB RTX 3500 Ada + 64GB 内存)上,用 Strata 引擎和 Swift 1.5 Q2XS 能跑到 450/30。