在4090 24GB上运行Qwen3.8-Flash-Next:用Strata替代Ollama

💡 原文英文,约1900词,阅读约需7分钟。
📝

内容提要

作者在RTX 4090 24GB上以Strata替代Ollama推理Qwen3.8-Flash-Next(512专家MoE),专家权重驻留内存、GPU仅缓存热专家,配256K上下文与int8 KV。解码中位约100–110 tok/s,冷预填充约2500–2800 tok/s。官方GSQ-RCO IQ3_S量化优于Unsloth,整体探索时间从12分钟降至8分钟。服务单请求串行,两三人使用尚可。

🔎

延伸解读

量化选择:官方 GSQ-RCO 优于 Unsloth

作者对比了 Unsloth UD-IQ3_XXS 和官方 GSQ-RCO IQ3_S。官方量化在解码 p50 和 p90 上更高,整体探索时间从约 12 分钟降至 8 分钟。但 Unsloth 的嵌入格式为 Q6_K,不被 Strata 接受,需手动转换为 BF16 并指定 --embd-gguf。若追求开箱即用,官方量化更省事;若已有 Unsloth 权重,则需额外转换步骤。

内存与显存配置:专家驻留内存,热专家缓存显存

在 126 GB 内存的机器上,专家权重约 45–50 GB 常驻内存,GPU 仅缓存约 16 GB 热专家。KV 缓存采用 int8,32K 驻留显存,其余约 3.09 GiB 固定在内存。这种设计让 24 GB 显卡能运行 512 专家 MoE,但需注意关闭 zram,避免专家页被压缩导致解码时解压延迟。

性能表现:解码超 100 tok/s,预填充约 2500–2800 tok/s

在 4090 D 上,解码中位约 100–110 tok/s,冷预填充 20k–40k 令牌约 2500–2800 tok/s。MTP 推测解码的接受率在代码和列表上约 80–90%,普通文本约一半。服务单请求串行,两三人使用尚可,但代理连续请求可能占满队列。长预填充(如 90k)需约 30 秒,需留意等待时间。

与 DGX Spark 对比:带宽与内存的权衡

作者曾用两台 DGX Spark 运行 MiMo-V2.6-Flash,单流解码约 44 tok/s,实际代码扫描时降至 15–25 tok/s。Spark 有 128 GB 统一内存但带宽仅 273 GB/s;4090 带宽高但显存仅 24 GB。Strata 通过专家驻留内存、热专家缓存显存,在 4090 上实现超 100 tok/s 解码,更适合代码分析任务。

❓

Q&A

在RTX 4090 24GB上运行Qwen3.8-Flash-Next,为什么选择Strata而不是Ollama?

因为Qwen3.8-Flash-Next是512专家的MoE模型,BF16权重超过300GB,但每个token只激活一小部分专家。Strata让专家权重驻留内存,GPU只缓存常用专家,从而在24GB显存下运行。而Ollama运行27B模型时,长代码生成会明显变慢。

Strata在4090 24GB上运行Qwen3.8-Flash-Next的性能如何?

解码中位速度约100–110 tok/s,冷预填充(20k–40k tokens)约2500–2800 tok/s。使用官方GSQ-RCO IQ3_S量化时,解码p50为111.7 tok/s,p90为133.3 tok/s,整体探索时间约8分钟。

如何配置Strata以支持256K上下文?

设置--max-context 262144,并添加--kv int8 --kv-resident 32768。每个QSA层在VRAM中保留32K KV单元,其余放在固定内存中,约3.09 GiB。VRAM占用约23900 MiB,从128K到256K几乎不变。

Strata服务能同时处理多少个请求?

服务一次只处理一个请求,后续请求排队。对于代码分析,中位等待约5–9秒,偶尔30–50秒。两三个人同时使用尚可,但一个持续发送请求的代理可能填满队列。

官方GSQ-RCO IQ3_S量化与Unsloth UD-IQ3_XXS相比有何优势?

官方IQ3_S在解码p50和p90上更高(111.7 vs 100.7 tok/s,133.3 vs 119.5 tok/s),整体探索时间从约12分钟降至8分钟。预填充速度两者相近。

设置Strata时遇到哪些问题,如何解决?

主要问题:Linux构建需本地编译(0.1.38无Linux预编译包);引擎拒绝Unsloth的嵌入格式,需将Q6_K嵌入张量反量化为BF16并用--embd-gguf指定;需关闭zram以避免专家页被压缩;可启用融合预填充内核(STRATA_PF_FUSED=1)。

🏷️

标签

➡️

继续阅读