12GB 显存装下 100B 级 MoE:Strata 用专家分层缓存给出 94 tok/s 的本地解码
12GB 显存装下 100B 级 MoE:Strata 用专家分层缓存给出 94 tok/s 的本地解码
【免费下载链接】StrataQwen3.8-Flash-Next on any consumer hardware: one-click install for Windows / Linux. Strata inference engine, OpenAI/Anthropic API on localhost, optional image input.项目地址: https://gitcode.com/gh_mirrors/strata11/Strata
显卡只有 12GB,却想本地跑一个 48 层、24,576 个专家的 MoE。Strata 把冷门专家换到内存和 SSD,让 GPU 只算热专家,在 12GB 上给出官方 94 tok/s 的解码。本文验证:这个数字在你的硬件上,边界在哪。
右侧的实时速度、显存与请求状态,是本文反复引用的数据来源类型。
第一眼:Strata 是什么,和 llama.cpp 差在哪
MIT 协议,C++/CUDA/HIP 实现,在localhost:8080暴露 OpenAI/Anthropic 兼容接口,附带桌面 Chat 与终端监控。与最接近的 llama.cpp 相比,它不靠「换权重进显存」的套路,而是把全部 24,576 个专家按热度分到显存、内存、SSD 三层,并用 CPU 在 GPU 运行时并行算未缓存的专家。
一个 token 的旅程
以生成一个 token 为例。路由器先为这一层挑出 10 个专家;命中显存槽位的交给 GPU 的 grouped kernel,没命中的落到内存专家池,由 CPU 的 AVX-512/AVX2 kernel 并行算,两边互不等。类比厨房:热专家摆在台面(显存),冷专家放储藏室(内存),整箱的堆在仓库(SSD)。源码把动机写得很直白——include/strata/core/expert_cache.hpp注释:每 token 要从内存读 663.6 MB 专家字节,约 40 GB/s 即 16.2 ms,且 96% 暴露在关键路径,唯一解法就是「别读这些字节」。
再类比速记员抢答、主考官批:MTP 草稿层一次最多猜 3 个 token,src/spec/controller.cpp的 CostModel 以 0.86 的先验接受率加实时命中率决定猜几个,一次遍历全部 48 层校验,平均一次产 2.4-3.2 个 token,整体快 1.6-1.8 倍。长文侧,prefill 按最大 8,192 token 分块,下一层专家经 PCIe 预取,长文档读取超 1,000 token/s;SSD 上还有 28.8 GB 的 n-gram 查表(PLE),每 token 只读几行。工程结论见 docs/HOW_IT_WORKS.md。
数据回执
| 测试环境 | 量化档位 | 解码速度 | 预填充(32K) | 上下文 |
|---|---|---|---|---|
| 官方:RTX 5070 12GB / R5 7600 / 64GB,引擎 0.1.26 | Q2_0 | 94 / 76(128K) | 2,650 tok/s | 32K |
| 同上 | IQ2_XS | 79 / 63(128K) | 2,090 tok/s | 32K |
| 社区:RTX 5090 32GB / Ultra 9 285K / 64GB,引擎 0.1.29 | IQ2_XS | 179.4(4K) / 175.7(32K) / 165.0(128K) | 4,269.8 / 5,543.2 / 5,778.7 tok/s | 131K |
| 社区:RTX 5090 32GB / R9 5950X / 96GB,引擎 0.1.39 | IQ3_S | 177.9 | 5,605 tok/s | 14.7K |
社区 5090 的解码约为官方 5070 的 1.9 倍,方向与更大显存(专家缓存 17,463 槽)、更快 PCIe(探针 50.0 对 28.3 GB/s)一致,不是数量级偏差。5090 报告含固定 commit、GGUF SHA-256、逐请求 timing 与命中率 97.8-99.7%、needle 检索 6/6。数据来源:docs/MODELS.md、bench/results/2026-09-30-community-rtx-5090/README.md、bench/results/2026-10-01-community-rtx-5090-5950x/README.md。
这张社区截图显示 2x RTX 3080 20GB 配置下 decode 约 109 tok/s,说明双卡分层下数字并非只有旗舰卡才拿得到。
细看代价
- 内存是主门槛,不是显存:Q2_0 需 37.6 GB、IQ3_S 需 54.8 GB(
docs/MODELS.md),48GB 内存只够 Q2_0/IQ2_XS;显存大的卡更快但不降内存需求,64GB 才全档位可用。 - 下载与冷启动:三个较小档下载 66-76 GB,另加约 6 GB 的 MTP 草稿层;首次启动要把 34-55 GB 读入 RAM 并锁页,
docs/DETAILS.md故障表明确「PC 会卡几分钟,第二次启动(文件还在 OS 缓存)更快」。 - 不适合高并发服务:
serve/server.py开头注明请求「背后是一个 FIFO,一次一个序列」,--batch是可选实验路径,KV 流式每上下文 token 还占约 13.7 KB;当多租户 API 网关用,方向就错了。
这张槽位状态栏对应服务端真实调度:默认同时只有一个序列在执行,多请求要排队。
岔路口
如果你有 12GB+ 显存、64GB 内存、且要本地跑 Qwen3.8-Flash-Next 这类百亿级 MoE——选 Strata。只想要「一条命令跑起小模型」,llama.cpp 生态更省事;要服务器级多租户吞吐,vLLM 是另一条路。适用区间:单台消费级 PC、百亿级 MoE、可读速度。
最小验证
先打印安装计划,不下载、不改机器(秒级,输出模型大小、RAM 档位与专家槽位估算):
strata launch --plan
启动后跑一次标准化测速(约 10 分钟,不改机器,输出可分享的 speed 报告,含 decode/prefill tok/s 与区间,模板见 docs/COMMUNITY_BENCHMARKS.md):
./bench.sh
把验证权交还给你。
【免费下载链接】StrataQwen3.8-Flash-Next on any consumer hardware: one-click install for Windows / Linux. Strata inference engine, OpenAI/Anthropic API on localhost, optional image input.项目地址: https://gitcode.com/gh_mirrors/strata11/Strata
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考