内容提要
SGLang 团队联合 Qwen、NVIDIA、AMD 为 Qwen3.8-Flash-Next 提供首日支持。该模型是 Qwen4 架构预览,采用 GDN+QSA 混合注意力、门控残差和 N-gram 嵌入,总参数 125B,每 token 激活 6B。SGLang 实现了 GDN+QSA 的 KV 缓存管理与 Radix Cache 兼容,并通过 IndexShare MTP 复用 QSA 选择以加速推测解码;N-gram 嵌入卸载至主机内存,节省显存且几乎无额外开销。
延伸解读
混合注意力如何降低长上下文成本
Qwen3.8-Flash-Next 采用 GDN 与 QSA 混合注意力:每 4 层中 3 层为 GDN 线性注意力,将历史压缩为固定大小状态;仅 1 层为 QSA 稀疏注意力,负责全上下文精确检索。因此 48 层中只有 12 层存储随序列增长的 KV 缓存,其余 36 层使用固定状态。QSA 本身不丢弃 KV,而是用压缩索引键选出重要块,最终 softmax 仍基于原始 K/V。这种设计在保持检索精度的同时,显著降低长序列的计算与显存访问开销。
N-gram 嵌入卸载的显存收益与代价
模型在第二层解码块引入 512 亿参数的 N-gram 嵌入表,BF16 下约 95.4 GiB。SGLang 将该表分片放在固定主机内存,每个 token 仅按哈希取出 16 行,并用独立 CUDA 流与首层计算重叠。在 H200、TP4 配置下,目标模型每 GPU 权重从 83.91 GiB 降至 60.45 GiB,KV 容量从 184 万增至 328 万 token,提升约 78.5%,而匹配吞吐几乎不变。代价是依赖主机内存带宽与异步预取,若重叠不充分可能影响延迟。
IndexShare MTP 为何能加速推测解码
QSA 层的索引器需对全部压缩块打分,长上下文下其开销超过稀疏注意力本身。推测解码时,每个 MTP 迭代原本要执行 N 次索引器。IndexShare 复用 draft-extend 阶段对已接受 token 计算出的 top-k 选择,整个 draft 循环只运行一次索引器,并用额外列补上后续草稿位置。由于查询最多移动 N 个位置,复用排序基本等同于重算,接受长度不变,但 draft 索引器工作量从 N 次降为 1 次,长上下文下加速明显。
HyperConnection 内核优化的实际效果
门控残差将残差流扩展为 4 条分支,Mix 和 Combine 需按 token 数 M 选择不同内核。小 M 时采用 split-K GEMM 与融合 epilogue,大 M 时切换 cuBLAS 或融合内核。在 B300 上 M=4 时,Mix 延迟从 12.36 降至 6.03 微秒,Combine 从 4.17 降至 2.13 微秒;端到端推测解码吞吐分别提升 7.6% 和 5.49%。这说明该优化主要利好低延迟解码场景,预填充阶段则依赖大 M 路径的带宽效率。
Q&A
Qwen3.8-Flash-Next 是什么模型?它的架构有什么特点?
Qwen3.8-Flash-Next 是 Qwen 团队开源的多模态 MoE 模型,也是 Qwen4 架构的早期预览。它采用 GDN+QSA 混合注意力、门控残差和 N-gram 嵌入,总参数 125B(另有 51B N-gram 嵌入),每 token 激活 6B,共 48 层(36 层 GDN 线性注意力 + 12 层 QSA 稀疏注意力),MoE 层使用 512 个专家、top-10 路由。
SGLang 为 Qwen3.8-Flash-Next 提供了哪些首日支持?
SGLang 联合 Qwen、NVIDIA、AMD 提供了首日支持,包括:GDN+QSA 混合架构的 KV 缓存管理并兼容 Radix Cache;IndexShare MTP 复用 QSA 选择以加速推测解码;N-gram 嵌入卸载至主机内存;以及通过 FlashInfer 优化的 Gated Residual 高性能算子。
Qwen Sparse Attention (QSA) 是如何工作的?它如何降低长上下文开销?
QSA 使用轻量级索引器在微块粒度上估计重要性,选择最相关的块。具体地,每 4 个原始索引键压缩为 1 个,索引器扫描约 L/4 个压缩键,保留最佳 512 个块(扩展为 2048 个逻辑 token 位置,加上当前不完整块最多 3 个 token,共最多 2051 个位置),然后稀疏 GQA 只读取这些位置的原始 K/V。这样大幅降低了长序列的注意力计算和内存访问,同时最终 softmax 和值聚合仍使用原始未压缩的 K/V。
IndexShare MTP 是什么?它如何加速推测解码?
IndexShare MTP 是一种在 MTP 迭代中复用 QSA 索引选择的技术。每个 MTP 迭代开始时,对目标模型刚接受的 token 执行 draft-extend 并运行索引器,捕获每个请求最后接受的行的选择结果,然后在后续所有 draft 解码步骤中复用该选择(加上新起草的位置),从而跳过索引器调用。这样每个 MTP 迭代的索引器调用从 N 次减少到 1 次,在长上下文下显著加速 draft 步骤,且接受长度不变。
N-gram Embedding 是如何实现显存节省的?
N-gram Embedding 是一个哈希寻址的学习型 N-gram 嵌入表,位于第二个解码块,参数量 51.2B(BF16 下约 95.4 GiB)。由于每个 token 只触及 16 行(8 个 2-gram 头和 8 个 3-gram 头),SGLang 将每个 rank 的词汇并行表分片放在固定主机内存中,仅将选中的行收集到小型 BF16 GPU 缓冲区,并通过专用 CUDA 流与第一个解码块重叠。这样几乎不占用 GPU 显存,且异步预取带来几乎零额外开销。
SGLang 对 Gated Residual 的 HyperConnection 算子做了哪些优化?效果如何?
SGLang 与 NVIDIA 合作,通过 FlashInfer 实现了高性能的 Mix/Combine HyperConnection 算子。Mix 使用低延迟 split-K CuTe GEMM(M≤16)和融合 epilogue,在 B300 上 M=4 时延迟从 12.36 µs 降至 6.03 µs(2.05 倍加速),端到端吞吐提升 7.6%。Combine 对小 M 采用按隐藏维度拆分的双核实现,M=4 时延迟从 4.17 µs 降至 2.13 µs(1.96 倍加速),端到端吞吐提升 5.49%;大 M 时融合核比 cuBLAS 基线快 2.54 倍,有效带宽达 6144 GB/s。