Qwen3.8 到底改了什么?
本课一问:Qwen3.8 比 Qwen3.5 强,它的架构到底改了什么?每一处改动,证据在哪?
这一课先不碰:Gated DeltaNet 这类线性注意力本身怎么算(C11)、DSA 的索引器打分(C11 第 5 课;QSA 的选块见本课下文)、Qwen3.8 的后训练(官方没有公开)。这一课只做一件事:用前面各章学过的工具,把 Qwen3.8 一代的三个型号拆开。
从已有出发
「小明把苹果给了小王」这句话,用 Qwen3.8 的真 tokenizer 切成 5 个 token(C1)。C1 到 C9 一路用的锚点模型就是 Qwen3.8-27B:这 5 个 token 进入 64 层,其中 16 层全注意力各留下 KV,每个 token 65,536 B(64 KiB),5 个 token 一共 327,680 B;另外 48 层线性注意力不存 KV,只维护一个与长度无关的状态,37,748,736 个元素(C11 揭晓)。
上面高亮的四个环节,正是 Qwen3.8 这一代有型号动过的地方。这一章的实验对象换了:模型本身跑不动,我们拿它们的官方 config 和技术报告当实验台——config 能逐字段核验,报告里的数字要分清是谁测的、在什么规模上测的。例句仍然用这一句,只是从这一课起,它要被送进好几个不同的模型。
数字口径:KV 字节、固定状态、稀疏度、GLM 的参数差值都由 frontier-models.json / anchor-model.json 的官方 config 在构建时现算,并与数据文件的 _meta.checks 逐项核对(对不上就构建失败);V4.1 的 890 B 另用了两个格式常数(FP4 条目 288 B、索引 key 68 B,见 R3 §1.5e)。其余文字出自各家技术报告与模型卡,归属判断见 R2 §0.1、R3 §1.7。
先自己设计:看版本号判断改了什么
读一份新发布,最省事的判断是「版本号涨了,架构就变了」。先拿 Qwen3.8 的主力型号试一下:
- ① 朴素方案
- ② 它在哪失败
- ③ 改进方案
| 型号 | 发布 | config 里的 model_type | 与上一代的 config 差异 |
|---|---|---|---|
| Qwen3.5-27B | 2026-02 | qwen3_5 | — |
| Qwen3.6-27B | 2026-04 | qwen3_5 | 0 个字段不同 |
| Qwen3.8-27B | 2026-08 | qwen3_5 | 0 个字段不同(参数 27,781,427,952) |
先把同一代的三个型号并排读 config(每一格都由官方 config 现算):
选列( 个模型)
2.4T-A95B 的 model_type 是 qwen3_5_moe_text:同一套 3 : 1 混合注意力,放大到 92 层、hidden 8,192、512 个专家选 10——只是放大。真正换了架构的是 Flash-Next:config 的类名已经写着 Qwen4ExpForConditionalGeneration,官方称它是 Qwen4 架构的实验预览。
「版本号 = 架构」在 2026 年失败得很彻底:同一个月,GLM-5.3 的 config 也和 5.2 逐字段相同(第 2 课)。所以读新模型的第一步永远是 diff config——它是开放权重里唯一能独立核验的部分 证据等级 · 数学可证明 在写明的前提下可以严格推导出来,不依赖实验。只要前提成立,换数据、换规模仍然成立。 本条字段比较是确定的;HF 上的 config.json 可以自己下载核对。 出处待补 。
改进:把 27B 和 Flash-Next 逐行对一遍
diff 出来的每一行,先分三类:机制变了、只是数值变了、没变;再问一句「这个机制对领域也是新的吗」。先自己判断,再揭晓:
先自己判断每一行属于哪一类,再点「揭晓」。机制变了 = 新增、换掉或删掉了一个部件;数值变了 = 同一个东西放大或缩小;没变。
两列都由官方 config 读取:27B 来自 anchor-model.json,Flash-Next 来自 frontier-models.json;优化器、batch 两行来自 Flash-Next 技术报告(R2 §1.5.2,官方自报)。
试三件事:① 先只做第一级,不看提示把 15 行都判一遍,再点揭晓——「FFN 从 dense 变成 MoE」对 27B 是机制变化,对 Qwen 家族却不是新东西,这正是第二级要问的;② 揭晓第二级,数一数「对领域首创」有几行(答案是 0 行,3 行算一半):Flash-Next 的每一个部件都有前人或同行的影子,Qwen 的贡献在组合、具体变体和消融;③ 点「注意力层构成」一行,看出处里写的引用缺口——Qwen 报告没有引用思路更早的 NSA 与 DeepSeek-V4 的 CSA,这不代表它自称首创,只是读报告时要自己补上。
每个改动的证据:Flash-Next 技术报告
Flash-Next 的技术报告(标题是 On the Design of Qwen3.8-Next Architecture)是这一代唯一一份逐个部件给出消融的一手报告。它自己定下的规矩值得先记住:每个改动都从三个维度评估——loss 与下游基准、训练 / prefill / decode 三段的成本、对最优超参与稳定性的影响;报告反复强调 loss 和下游基准会不一致。下面每一条都是官方自报,规模写在「设置」里:
试三件事:① 按「③ 纯自报」筛选——这一份报告里的数字全部是这一层,不是因为它不可信,而是还没有人独立复现过;② 打开「4 倍学习率压力测试」,读红框:183 → 0 同时换了两样东西,哪一组才是单变量对照?③ 打开「QSA 怎么接进一个已经训好的模型」,核对页面上的两个 token 数是怎么由步数、每步条数和 256K 算出来的。
下面把最重要的四组改动,各自放回它回扣的那一章看。
注意力:从全注意力到 QSA(回扣 C3 的 KV 账、C11 的稀疏注意力)
「为什么混合」有消融撑腰:全注意力 49.87、SWA 混合 51.15、GDN 混合 53.81(25B-A3B,官方自报) 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条28 层、25B-A3B 的 MoE,4K 训 400B token 再 32K 训 80B;9 个基准平均。3 : 1 的比例本身没有理论推导。 出处Flash-Next 技术报告 ↗需联网 。Flash-Next 在此之上把每 4 层里那 1 层全注意力换成 QSA:先把索引 key 每 4 个 token 平均池化成一块,用一个很小的索引器(4 个 query 头、1 个 key 头、128 维)给块打分,每个 query 只读分数最高的 512 块,即 2,048 个 token。在原生长度 262,144 上走一遍形状:
| 维度 | 含义 | 真实规模 | 小规模 |
|---|---|---|---|
| T | 上下文长度(原生最大值) | 262,144 | 16 |
| B | 块数 = T ÷ indexer_compress_ratio | 65,536 | 4 |
| dI | 索引维度 indexer_head_dim | 128 | 4 |
| HI | 索引 query 头数 indexer_n_heads | 4 | 2 |
| kB | 选中的块数 = indexer_budget ÷ 4 | 512 | 2 |
| kT | 选中的 token 数 indexer_budget | 2048 | 8 |
| Hkv | QSA 层的 KV 头数 | 2 | 1 |
| dh | 主注意力每头维度 | 256 | 4 |
存储上,Flash-Next 与 27B 在两刀上下手:条目(GQA 更激进,24 个 Q 头共用 2 组 KV)与层(12 / 48 层全局)。最后加回压缩后的索引 key:
口径:BF16 每元素 2 B,只算随序列长度增长的全局 KV(与 frontier-models.json _meta.checks 同一口径,✓ = 现算值与核对值一致);线性注意力的固定状态与滑窗常数不随长度变,另列。V4.1 的原生格式用两个格式常数:FP4 KV 条目 288 B(256 B E2M1 + 32 B E4M3 scale)、索引 key 68 B(OCP MXFP4 推算),出自模型卡、FlashMLA README 与 R3 §1.5e。
每 token 24,576 + 768 B,对照 27B 的 65,536 B 与 2.4T 的 94,208 B(点上面的模型按钮切换)。QSA 换来的是计算:报告自报 1M 长度下内核级 prefill 快 7.6 倍、decode 快 4.9 倍,MRCR@1M 从 20.71 升到 26.44 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条官方自报,未经第三方复现;MRCR 在 1M 处只有二十几分,窗口不等于有效长度(C2 第 5 课)。 出处Flash-Next 技术报告 ↗需联网 。
残差:从一条流到四条流(回扣 C4 第 2 课、C8)
C4 第 2 课与 C8 第 2 课留了一个问题:残差流把所有层的写入挤在一个向量里,越往后,一层的写入占比越小。Flash-Next 的答案是把残差流加宽成 4 条,但和 DeepSeek 的 mHC(第 3 课)不同,它去掉了 n × n 的残差混合矩阵:
报告自己的归纳是「读侧的粒度比写侧重要」。这一组数字的差距不大(GR 比动态 mHC 只高 0.19 分),单次训练、没有方差,所以只能算实验层的弱证据 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条25B-A3B、560B token 的一次对照;官方自报。 出处Flash-Next 技术报告 ↗需联网 。
查表:n-gram embedding(回扣 C1 的 embedding、C4 的参数账本)
报告里关于 n-gram 最值得记的一句是反直觉的:单独扩大 n-gram 表时 loss 一直下降,下游基准却饱和。只看 loss 会高估它。
训练配方(回扣 C5、C6)
- 优化器:Muon 负责注意力、GDN 的投影、专家与 n-gram 的 k/v 投影;AdamW 负责 embedding、lm_head、MoE router(用 Muon 会让 router 早期不稳定)、Gated Residual 的低秩投影与输出门;Newton-Schulz 8 步,融合矩阵先按头或 gate / up 拆开再正交化(C5 第 7 课)。
- 超参缩放律重新拟合:10.8B-A0.89B、4T token 时最优 batch 是 25.2M(旧配方 12.6M,loss 好 7.2×10⁻³);156B-A7B 时最优学习率 1.76×10⁻³(旧配方 6.8×10⁻⁴)——超参要随规模与结构一起重调(C6 第 4 课)。
- 取消 batch warmup:6.3M → 25.2M 渐增,不如一开始就用 25.2M,还多花 18.8% 的步数。和 C5 岔路讲的「开局噪声尺度小、大 batch 浪费」方向相反;同月 DeepSeek-V4.1 也全程固定 batch。
两条「后训练才暴露」的反例
① 全局层去掉 RoPE。预训练阶段看不出差别,后训练之后「停不下来、无限生成」的比例明显升高,所以 Qwen 保留了 RoPE。K3 与 GLM-5.3-Flash 却选了 NoPE(第 2、4 课)——两条路线都做到了百万级上下文。
② 只读门控值最高的 2 条残差流。为了省推理成本做的简化:预训练指标几乎不变,后训练之后质量明显变差,没有采用。
两条合起来是一句话:预训练 loss 相同,不等于两个设计一样好。很多设计差别要到后训练、甚至上线之后才显形——这是「小实验能预测大决策吗」(C14)最具体的反例。报告只给了定性描述 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条定性结论,官方自报,没有给出比例的具体数字。 出处Flash-Next 技术报告 §2.1.1 ↗需联网 。
⚠ 常见误解
「Qwen3.8 是全新架构。」27B 与 2.4T 沿用 Qwen3.5 的架构(config 的 model_type 都是 qwen3_5 系),只有 Flash-Next 是新架构,而且官方称它是 Qwen4 的实验预览。
「Gated DeltaNet 是 Qwen 发明的。」它出自 NVIDIA 与 MIT 的论文(arXiv 2412.06464,2024-12);Qwen 的贡献是先在 Qwen3-Next 把它和全注意力按 3 : 1 做成量产架构。Gated Attention(注意力输出后乘 sigmoid 门)才是 Qwen 首创(arXiv 2505.06708)。
「4 倍学习率下 0 次尖峰,说明 Muon 更稳。」那一组对比同时换了优化器和残差结构。单变量的只有 GatedNorm 那一组(32.0 → 3.2)。引用时要把两个变量一起说出来(C5 第 7 课已经用它当过反面例子)。
「消融赢了,放大之后也会赢。」这份报告的消融都在 25B-A3B、35B-A3B 这类规模上做;Flash-Next 本身是 125B-A6B。报告在更小规模上选、在目标规模上训,中间的外推没有证明。
在演进图上的位置
Qwen 这条线的节奏很清楚:Qwen3 是 C1–C9 教的那套配方;Qwen3-Next 引入 3 : 1 混合与自家的 Gated Attention;3.5 把它推广到全系,之后三代 27B 的 config 没有再动;新架构的实验放在 Flash-Next 上单独做。上面的泳道图里,点「Qwen3.8 三个型号」一格看它借了谁。
证据三问
| 问 | 本课的回答 |
|---|---|
| ① 它解决什么问题? | 27B / 2.4T:在不改架构的前提下靠训练变强、靠放大扩容量;Flash-Next:在同样的 3 : 1 混合骨架上,把全局层的计算压下来(QSA)、把残差流加宽(GR)、加一条查表的稀疏轴(n-gram),并换成 Muon 与新超参 |
| ② 数学上为什么可能有效? | 稀疏选块把每个 query 的主注意力读取封顶在 2,048 个 token(计数) 证据等级 · 数学可证明 在写明的前提下可以严格推导出来,不依赖实验。只要前提成立,换数据、换规模仍然成立。 本条由 config 的 indexer_budget 决定。 出处待补 ;n-gram 查表不增加矩阵乘(结构性质) 证据等级 · 数学可证明 在写明的前提下可以严格推导出来,不依赖实验。只要前提成立,换数据、换规模仍然成立。 本条查表只是按地址取向量。 出处待补 ;加宽残差缓解「单一向量」瓶颈只是理论动机 证据等级 · 有理论动机 有数学或机制上的理由说明它可能有效,但没有证明它一定更好。最后是否采用,仍然要看实验。 本条HC 家族的共同动机,没有证明。 出处待补 |
| ③ 实验上为什么最后选了它? | 报告的消融:混合 53.81 > 全注意力 49.87;GR 54.66 ≥ mHC 54.47;QSA 长短上下文都不掉、1M 时更快 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条全部官方自报,规模 25B-A3B / 35B-A3B;没有第三方复现。 出处Flash-Next 技术报告 ↗需联网 |
一句话
版本号不等于架构:先 diff config,再给每个改动找消融。
先停在这里:记住「27B 与 2.4T 只改训练与规模,新架构都在 Flash-Next」和「预训练看不出、后训练才暴露」这两条反例。
再深一层:读 Flash-Next 报告的注意力与残差两节,把 ReportClaims 里每一条的「设置」和原文对上。
下一个缺口
Qwen 的新架构每一处都有消融撑腰。可同一个月,另一家的新版本连 config 都没动,官方却说它在编码和网络安全上大幅变强——如果一个新版本连 config 都没动,提升从哪来? → 第 2 课:GLM-5.3
你可能会问
这一课还没有收到真实提问;你的提问会记到 05-问答记录/C15-L1.md。
- 「为什么 27B 不直接换成 Flash-Next 的新架构?」 官方没有说明。能确定的只有:Flash-Next 被称为 Qwen4 架构的实验预览,而 27B 的架构已经连续三代没动——新架构先在一个型号上验证,这是常见做法,但这里是推断,不是官方理由。
- 「报告里这么多数字,该信多少?」 本课的数字全部是第 ③ 层(官方自报);怎么系统地给一份报告的数字分层,见岔路课:怎么读一份前沿技术报告与 C14。
- 「QSA 和 DeepSeek 的 DSA 有什么不同?」 DSA 按 token 选、索引器扫全部 token;QSA 先把索引 key 每 4 个池化成一块、按块选。二者的机制细节在 C11。