系列:前沿架构解码手记

前沿架构解码手记(七):Qwen3.8 双 checkpoint 对比——稠密 27B vs 稀疏 Flash-Next(360GB 权重只为换 6B 激活)

0. 结论先行

这两个 checkpoint 不是同一模型的大小版本,而是两套架构与权重组织方式明显不同的权重:

Flash-Next 的权重文件是 27B 的 6.48 倍,但它并不是每个 token 都计算全部权重——大量存储来自 512 个专家和 N-gram 查表参数。“Flash” 主要体现计算/访问效率设计,不代表下载文件更小。两者 tokenizer、视觉预处理、生成配置多项相同,但 config/索引/权重全不同,不能混用分片。

型号勘误更新(2026-08-28):本系列 fa6(Gated DeltaNet)曾据当时快照判断”qwen3.8-27B 不存在、Qwen3.8 为 2.4T-A95B 这类 MoE”。本文基于 2026-08-28 的仓库直接扫描确认:Qwen3.8-27B 作为一个稠密 checkpoint 真实存在(55.6GB BF16,架构 Qwen3_5ForConditionalGeneration)。fa6 的判断在其当时快照下成立,本仓库现已可见 27B 稠密 checkpoint,特此校正。两仓库 revision 短 ID:Flash-Next 2741eec1、27B 1098534a。

1. 架构总览:同样词表/上下文,骨架相反

两者共享 248,320 词表(padding 后)与 262,144 原生上下文,但”堆容量”的方式完全相反:Flash-Next 走窄主干 + 专家/N-gram 查表,27B 走宽主干 + 单层稠密 FFN。

同样 248,320 词表 · 262,144 上下文,骨架与容量哲学相反 Qwen3.8-Flash-Next Qwen4Exp · 稀疏 MoE · 125B 主模型 窄主干 宽度 2,560 · 48 层 512 专家 MoE(每 token 选 10+1) 51B N-gram 查表(128 分片) 每 token 激活 ≈ 6B · 权重 360 GB Qwen3.8-27B Qwen3_5 · 稠密 · 27B 宽主干 宽度 5,120 · 64 层 每层一套稠密 FFN(中间维 17,408) 无专家 · 无 N-gram 额外轴 每 token 激活 = 全部 27B · 权重 55.6 GB
图:两者词表/上下文相同,但 Flash-Next 用"窄主干 + 512 专家 + 51B N-gram 查表"堆容量,27B 用"宽主干 + 单层稠密 FFN"直接撑容量。

2. 精度与容量口径

两份仓库都是 BF16,不是 FP8。config 均声明 text_config.dtype = bfloat16(mamba_ssm_dtype: float32 仅 SSM 计算用,不代表权重 FP32)。头部扫描确认:Flash-Next 为 1,655 个 BF16 张量 + 3 个 I64 元数据;27B 为 1,199 个 BF16 张量。两仓库均无 quantization_config。独立量化仓库:Flash-Next-FP8 ≈ 185.5 GB、27B-FP8 ≈ 30.9 GB。

项目Flash-Next27B
分片数13118
索引 payload359.999963 GB / 335.276 GiB55.562856 GB / 51.747 GiB
实际 .safetensors 总和360.000193 GB / 335.276 GiB55.563007 GB / 51.747 GiB
模型卡参数量口径主 125B + 51B N-gram + 4B MTP27B
许可证qwen-community-1.0Apache-2.0

容量差异基本全部来自权重本身(非权重文件两者均约 23 MB,几乎相同)。

3. 架构差异(来自 config.json)

维度Flash-Next27B对权重的影响
语言模型宽度2,5605,120Flash 投影更窄,但专家更多
语言层数486427B 层数更多
混合层布局12×(3×[GDN→MoE]→1×[QSA→MoE])16×(3×[GDN→FFN]→1×[Gated Attn→FFN])都是 3 线性 + 1 全注意力周期
线性注意力层36(48 V head/16 QK head/dim 128)48结构相同
全注意力层12 个 QSA 层16 个 Gated Attention 层Flash 有 QSA indexer 权重
FFN 形式512 专家;每 token 10 routed + 1 shared每层一套稠密 FFNFlash 存全部专家,27B 只存一套
专家/FFN 中间维度routed/shared = 640稠密 FFN = 17,408Flash 靠专家数扩展,27B 靠单 FFN 宽度
N-gram embedding有;基准词表 2,000,000,拆 128 表分片,接第 2 层无Flash 多出约 51B 查表参数
ResidualGated Residual,4 branch,rank 320;hyper-connection 张量无对应Flash 多一组残差混合权重
视觉→语言投影输出2,5605,120预处理相同,连接层权重不同

4. 权重索引里的组织方式

Flash-Next 的专家权重按专家打包成大张量:layers.0.mlp.experts.gate_up_proj 形状 [512,1280,2560],第一维 512 对应专家,大张量再分布到 131 分片。每 token 只路由 10 个 routed + 1 shared,但 checkpoint 必须保存全部 512 个专家——计算量接近激活的少数专家,磁盘/可用存储仍接近全部专家。

N-gram 表是额外的容量轴:索引含 128 个 ple_embedding.ngram_embedding.shard_*.weight,形状 [2,500,012, 160],合计 51.2B 参数 / 102.4 GB。官方说明强调这类参数主要靠局部 n-gram 查表获取、不进每 token 常规矩阵乘法预算,设计目标之一是更易放 Host Memory 异步预取;但下载时不能省略这些分片,能否高效 offload 仍取决于推理框架。

27B 用普通稠密 FFN:gate_proj/up_proj/down_proj 形状 [17408,5120]/[5120,17408],每层一套,容量由 64 层 + 17,408 中间维度构成,无需保存数百专家副本。

5. 权重存储拆解(按张量名称归类)

权重去哪了?Flash-Next 95% 在「专家 + N-gram」,27B 62% 在「稠密 FFN」 Flash-Next · 360 GB(等宽比例条) Routed 专家 241.6GB · 67.1% N-gram 102.4GB · 28.4% 其他≈16GB (MTP/视觉/注意力) 27B · 55.6 GB(等宽比例条) 稠密 FFN 34.2GB · 61.6% 其他≈21.3GB (MTP/视觉/注意力) Routed 专家 FFN N-gram 查表 稠密 FFN 其他(MTP/视觉/注意力等) 要点:Flash-Next 大文件主要不是 attention/视觉塔,而是 全部 routed 专家 + N-gram 表;27B 更小不仅因层数少, 更因它没有 512 专家与 51B N-gram 这两块「额外轴」。
图:按张量名称归类的存储拆解(比例条等宽,便于比较结构占比)。Flash-Next 的 Routed 专家占 67% + N-gram 占 28% ≈ 95%;27B 主要是稠密 FFN(62%)。

6. 哪些文件相同 / 不能混用

SHA256 完全相同(可复用):chat_template.jinja、configuration.json、generation_config.json、merges.txt、preprocessor_config.json、tokenizer.json、tokenizer_config.json、video_preprocessor_config.json、vocab.json——tokenizer、词表、图像/视频预处理、生成配置高度一致。

必须视为模型专属(不可交叉替换):config.json、model.safetensors.index.json、全部 model-*.safetensors、README、LICENSE、.gitattributes。两仓库分片均用 model-00001-of-... 通用命名,但分片总数、索引映射、内部张量名完全不同——不能把一个仓库的第 1 分片与另一个仓库的索引配套。注意:视觉预处理文件相同 ≠ 视觉权重相同(语言隐藏维度 2,560 vs 5,120,连接层不同)。

7. 对推理部署的含义

核心原理:用「更大静态存储」换「更低 token 级激活」 静态存储(BF16,GiB) 335.3 51.7 Flash 27B 每 token 激活(B 参数) 27 6 Flash 27B 存储 Flash 是 27B 的 6.48×,但激活仅 6B(≈27B 的 22%)。"Flash" 省的是每 token 计算/显存访问,不是下载体积。
图:同刻度对比(存储以 335 GiB 为满刻、激活以 27B 为满刻)。Flash-Next 用 6.48× 的静态存储换到远低于 27B 的 token 级激活。

仅按静态权重(不含运行时/激活/KV cache/框架开销/碎片):27B ≈ 51.75 GiB(接近单卡/少卡部署);Flash-Next ≈ 335.28 GiB(通常需多卡、多机、量化或 Host Memory offload)。实际所需设备内存不能等价于”激活 6B”——专家权重与 N-gram 表仍需在某处可访问。

8. 选型判断

选择倾向更适合原因
本地部署门槛、存储、显存Qwen3.8-27B≈55.6 GB BF16,稠密结构直接
更大条件容量、更低每 token 激活Qwen3.8-Flash-Next125B 主模型 + N-gram 扩展,≈6B 激活
最小化下载/显存对应 -FP8 版本文两 URL 为非量化 BF16
一句话记忆:Qwen3.8-27B 是"单套稠密 FFN 的 27B 模型";Qwen3.8-Flash-Next 是"较窄主干 + 512 专家 + 51B N-gram 查表 + 特殊残差/注意力"的大容量稀疏体。前者权重小而直接,后者用更大的静态存储换更低的 token 级激活——文件 6.48×、激活 0.22×。

下一篇预告:Flash-Next 的 512 专家 + N-gram 查表在推理框架里如何切分与 offload(EP / Host Memory 预取 / 量化),以及它和 DeepSeek V4、MiniMax M3 的”注意力改造”路线有何本质不同。

觉得有用?欢迎点赞、收藏,或请作者喝咖啡 ☕️

支付宝收款码

支付宝

微信收款码

微信

💬 留言

评论由 Giscus 驱动(基于 GitHub Discussions)。 当前仓库 NaphJohn/LLM-blog 尚未启用 Discussions:请在 GitHub 仓库 Settings → General → Features 勾选 Discussions 后刷新本页,评论区即自动显示。