一张 RTX 5090 跑 321B MoE:GLM-5.3-Flash 分层推理验证记【转载】
-
GLM-5.3-Flash 有 3,210 亿参数,一张 RTX 5090 加 96GB 内存就能跑到 30 tok/s 以上。做法是把 MoE 专家按冷热分到显存、内存、SSD 三层:常用的放显卡,不常用的放远一点。本文经 CBS 调研逐条核对了原始出处,数字以官方仓库为准。
一、为什么专家可以拆开放
以下直接取自 zai-org/GLM-5.3-Flash 的 config.json:
项目 数值 层数 45(前 3 层 dense FFN) MoE 层 42 层,每层 288 个路由专家 + 1 个共享专家 每 token 激活 8 / 288 个路由专家(不到 3%) 单专家体积 3 × 4096 × 2048 ≈ 2,520 万参数 路由专家总量 42 × 288 × 25.2M ≈ 3,048 亿(占总量 95%) 总参数 / 激活 321B / 约 18B 原生上下文 1M(1,048,576) 每个 token 每层只碰 288 个里的 8 个,GPU 不必同时装下全部专家,只要用到时能及时拿到。
二、三层存储,速度差几十倍
层级 容量 带宽 RTX 5090 显存 32 GB 1,792 GB/s 内存 → 显存(PCIe 5.0 x16) 96 GB 单向约 64 GB/s PCIe 4.0 NVMe TB 级 顺序读约 7 GB/s Maya-S 平均约 2.4 bit/参数(96.5 GB 反推),每 token 用到的路由专家约 2.5 GB。若一半不在显存,要从内存搬 1.27 GB,按 PCIe 理论带宽约 20 毫秒,上限约 50 tok/s;这一半若落 SSD,一个 token 要 0.18 秒,只剩约 5 tok/s。
三、速度看命中率
Project Maya(github.com/mw00/project-maya)把对话中最常用的专家放显存、次常用的放内存、其余放 NVMe,边聊边换。可行性依据是专家使用不均匀、相邻 token 常用同一批专家——2023 年 arXiv 2312.17238(Mixtral offloading,LRU 缓存 + 预取,Colab 上验证)就是这个思路。
官方 README 与实测一致:启动时最慢(缓存未热);SSD 持续忙 = 内存不够放专家;启动会锁住几乎所有空闲内存,只留约 6 GB 给别的程序;32 GB 内存即可跑,越多越快。官方实测表节选:
硬件 量化 decode prefill 4× RTX 4090 Maya-S24 118 t/s 4,129 t/s RTX 5090 32GB + 96GB DDR5 Maya-M 30+ t/s ~2,000 t/s 2× Tesla V100 32GB + 30GB RAM Maya-S ~40 t/s ~670 t/s 单卡 RTX 3090(社区实测) Maya-S 17 t/s 377 t/s 量化档位与 FP8 原版对比(官方模型卡):
档位 体积 zero-shot 保持 与 FP8 同 token Maya-S(默认) 96.5 GB 97.9% 83.3% Maya-S24(24GB 卡) 94.7 GB 97.7% 83.1% Maya-M 116 GB 97.9% 86.2% Maya-L 156.3 GB 99.2% 90.0% 四、更激进:不在显存里的专家干脆不算
Maya 引擎改自 Strata(官方致谢明说"started from Strata's")。Strata 0.1.42(2026-10-10)在 CUDA 上默认开启
STRATA_ROUTE_TAIL_SKIP=7:MTP 验证窗口内,一个不在显存、且窗口中每个 token 都把它排在第 7 名以后的专家,不搬也不算,其余专家保留路由权重。机器 decode 提升 top-1 一致率 RTX 3060 12GB, IQ3_XXS +15.6%(5/5 轮) 97.7% RTX A4000 16GB, Q2_0 +12.9%(5/5 轮) 98.2% 2× A4000(99.7% 专家常驻) −0.2%(无提升) — KL 散度均值仅 0.003–0.006(作为参照,IQ3_XXS 与 Q2_0 之差约 0.10);设
=0可完全还原。验证窗口本身也在帮忙:草稿一次猜多个 token,验证时一起算,搬进来的专家服务窗口内所有 token。注意 0.1.43(10-11)已再提速 5–38%(按卡而异)。五、两台 DGX Spark:另一条路
RTX 5090 2× DGX Spark 内存 32 GB 显存 + 96 GB RAM 128 GB×2 统一内存 带宽 显存 1,792 GB/s,卡在 PCIe 64 GB/s 273 GB/s 统一内存,卡在带宽 模型 Maya-S/M 96.5–116 GB,三层摆放 EXL3 4bpw 175.7 GB 全常驻 5090 显存带宽是 Spark 的 6.5 倍但装不下;Spark 慢在带宽但全装得下。Mia-AiLab 官方模型卡实测:双 Spark 跑 EXL3 4bpw(TensorFold),单路 prose decode 61.8 t/s(4 路并发 103 t/s),131K prefill 1,824 t/s——原文的 62.2 t/s 量级一致。
六、实用判断
- 跑大 MoE,内存容量往往比显卡更关键;32 GB 能跑,越多越快。
- NVMe 只放冷专家;热专家落 SSD,速度掉一个数量级。
- llama.cpp 手动分:
--cpu-moe全部专家进内存,--n-cpu-moe N只放前 N 层(官方 server 文档确认)。 - 量化越低越装得下:Maya-S 与 FP8 同 token 83%,Maya-L 达 90%。
- 新坑(lcz.me 实测):MTP 接受率对温度敏感,T=1.0 时仅 6%,降到 0.3 + top_p 0.9 后跳到 70%,差近 10 倍。
一句话:消费级显卡能跑多大的 MoE,取决于热专家放进显存多少,以及内存和 PCIe 有多快。
来源:zai-org/GLM-5.3-Flash config.json;mw00/project-maya README;peasantsmith/GLM-5.3-Flash-Maya-GGUF 模型卡;Niko1221/Strata v0.1.42 release notes(PR #1668);Mia-AiLab/GLM-5.3-Flash-EXL3-4bpw-TensorFold 模型卡;arXiv 2312.17238;llama.cpp server README;lcz.me topic/2195。检索:CBS Google/Bing 4+2 组 × 15-20 条,2026-10-12。
纯转载,在X上面看到一篇推文,觉得可能有用,就让HERMES上网调研了一下,然后写成的这个文章。
-
-
5090才 30tok/s , 那我自己3090能搞到 28tok/s 也是很欣慰了。帖子: https://lcz.me/topic/2195
@kos-or 当然会明显强, 我用 20多 tok/s 跑了几个场景, 明显要更聪明, 就好像 QFN跟 27B 的区别一样明显。但是QFN 能跑到 90-100tok/s , 这个差距还是有点明显的。
-
5090才 30tok/s , 那我自己3090能搞到 28tok/s 也是很欣慰了。帖子: https://lcz.me/topic/2195
@kos-or 当然会明显强, 我用 20多 tok/s 跑了几个场景, 明显要更聪明, 就好像 QFN跟 27B 的区别一样明显。但是QFN 能跑到 90-100tok/s , 这个差距还是有点明显的。