从0训练LLM · 现代大模型体系 实验 实验 ≈ 40 分钟 页内实验 ×4
C15 前沿解剖:2026 开源模型各自改了什么、为什么 实验课

实验课:12 个模型的官方 config 放在一张表上,2026 年趋同了什么、分歧在哪?

实验课:12 个模型的 config 并排,趋同与分歧
这一课不讲新概念。把 12 个模型的官方 config 放进同一张表、同一套公式:每 token 的 KV 在哪一刀上压、1M 上下文时每条序列要存多少、每个新 token 要读多少、MoE 与残差与截断各是什么。趋同的是「哪里要省」,分歧的是「怎么省」;表里每一格都要说得出来自 config、报告还是推测。
🧪

这一课不讲新概念。前四课各拆了一家;这里把 12 个模型的官方 config 放进同一张表、同一套公式,核对前四课的每一条结论。所有 config 类数字都在你的浏览器里由 frontier-models.json 现算,并与数据文件里的核对值比对(✓);报告类信息(优化器、预训练 token、后训练)标明出处,官方没披露的写「未公开」,调研没覆盖的写「未核实」。

这一课先不碰:评测分数(C14 与读报告岔路课);我们项目的新实验(本章不需要)。

一、先猜,再看:谁在哪一刀上压 KV

先写下你的预测:12 个模型里,每 token 全局 KV 最大的是哪一个?最小的是哪一个?GLM-5.3 与 Kimi K3 谁大?然后看表:

KV 账本:谁在哪一刀上下手

口径: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。

读这张表要回答三个问题:① 只有一家四刀都下,是谁?(第 3 课)② 同样用 MLA,GLM-5.3 为什么比 K3 大 3 倍多?(差在「层」这一刀:78 层全存对 24 层存)③ Qwen3-32B 和 Qwen3.8-27B 差 4 倍,差在哪一刀?(C11 揭晓的 48 层 GDN,就是这里的「层」)

二、1M 上下文难在哪:存与读分开算

把 1M 放大到具体的数:注意力要算的分数是 1,048,576² ≈ 1.1×10¹² 个——FlashAttention 省的是不把这张表存下来(C9),省不掉计算;KV 则随长度线性增长。锚点 Qwen3.8-27B 每 token 64 KiB,1M 时一条序列 64 GiB——旧版课程用一个假想配置也算出过「64 KB / token」,却写成「GQA 8 组 = 4 个 KV 头」、又把 GB 与 GiB 混用算出「占 H100 的 86%」;这里全部换成真 config,容量统一用 GiB。

KV 账本:上下文越长,每条序列要存多少

口径: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。

🎯

试三件事:① 默认 1M:读表里「这条路」一列——固定状态 + 少量全局层(Qwen、K3、GLM-5.3-Flash)、全存只读 top-k(GLM-5.3)、压缩 + 跨层 + 低精度(DeepSeek-V4.1),还有全存全读的对照 Qwen3-32B;② 看 GLM-5.3 那一行:每个新 token 只读 78 × 2,048 条,KV 却是 93 GiB——省计算 ≠ 省显存;再看「索引器打分的 key」一列:稀疏把「读多少」降下来了,但索引器还要给全部历史打分,这是下一个瓶颈;③ 把长度拖回 4K:每家都只有零点几 GiB,这些机制都是为长上下文设计的,短上下文里没有优势。

旧版课程的这一段用三家的「示意模型」画过同一张图(压缩率 4、滑窗 1,024、top-512、0.25、0.55、0.56 这些常数都是示意的,两个 MLA 模型还用了不一致的系数)。现在每一格都由 config 字段计数:唯一的外部常数是 V4.1 原生 FP4 条目的字节数(288 B 与 68 B),它们复现出了官方的 890 B。

三、并排:共识与分歧

12 个模型 + 我们的小模型:点任一行看为什么是共识或分歧
选列( 个模型)

🎯

试三件事:① 点「选列」,把 DeepSeek-V2、V3、67B 也勾上,看「每 token 全局 KV」一行怎样从 389,120 B 一路降到 890 B;② 筛「分歧」:注意力层构成、位置编码、残差、MTP、发布精度、许可证——每一行点开读它为什么分歧、各家的理由是什么;③ 筛「含未核实 / 未公开」:空格集中在哪几列?为什么?(Qwen3.8-27B 与 GLM-5.3-Flash 只有模型卡与博客;K3 的训练 token 数没有被独立核实。)

最右边那一列是我们自己从 0 训练的小模型:参数量与 KV 由公式现算,再和项目导出的实测值对账(✓)。它在每一行上的选择——RoPE、Pre-Norm + RMSNorm、SwiGLU、MHA、dense、不截断——都是 2023 年前后的「教科书配方」;前沿模型在这张表上改动的地方,恰好就是 C8–C13 一章一章讲过的东西。

四、Top 5 共识与 Top 5 分歧

把表收成两列(R3 §3.12 的归纳,本章四课逐条核过):

Top 5 共识证据Top 5 分歧证据
1M 级旗舰不再每层都用全注意力七个 1M 旗舰的 config 都是如此 线性混合(KDA / GDN)、压缩稀疏(DeepSeek)、全层 MLA + 稀疏(GLM-5.3),还是滑窗混合各家自报的消融;3 : 1 的比例没有理论
细粒度 MoE(几百个细专家、top-k)config 的专家数与 top-k 字段 NoPE,还是部分 RoPE + YaRNQwen 的 NoPE 反证 vs K3 的外推自报
Muon 管矩阵、AdamW 管其余K2 / K3、GLM、DeepSeek-V4、Flash-Next 的报告 MTP 联合预训练,还是后置草稿器(DSpark、EAGLE-3)V4.1 没有给去掉 MTP 的消融
FFN 激活截断,为低精度服务截断后有界是数学 ;稳训练是自报残差:加宽(mHC、Gated Residual)还是跨层注意力(AttnRes)双随机约束的稳定性可证明;收益都是自报
GRPO 系 RL + 多教师 on-policy 蒸馏 + 异步 rollout + 推理力度可控各家报告与博客 稀疏度(32 到 64)、要不要共享专家、均衡用偏置(DeepSeek、GLM、K3)还是全局 batch 辅助损失(Qwen)、要不要查表记忆(Engram、n-gram)config 可核,取舍的理由多为自报
⚖️

「趋同」要分两种。一种是独立收敛:互不引用的团队走到同一处(K3 与 DeepSeek 的「专家分练 + 蒸馏合一」;Qwen 与 DeepSeek 同月取消 batch warmup;Qwen 与 DeepSeek 同月加上查表记忆)——这比任何一家的自述都更有说服力。另一种是快速外溢:一家验证过的部件被别家直接用上(K3 的 KDA 与衰减下界一个月内出现在三家的 config 里;DeepSeek 的 mHC、DSA、MLA 出现在 GLM)。两种都不是「抄袭」,但证据分量不同。

加宽残差为什么在 2026 年成为共识的苗头?用第 3 课的模拟再确认一次核心性质,这次把层数拖到 100:

mHC:把残差映射约束成双随机矩阵,深堆不放大

五、把结论对回前四课

课那一课的结论在这张表上看什么
第 1 课版本号不等于架构Qwen3.8-27B 与 Qwen3-32B 的差别在注意力层构成,而 3.8-27B 与 3.5-27B 没有差别(config 相同,不在表里)
第 2 课config 不变也能变强;参数差值反查架构GLM-5.3 的参数一格 753.3B(与 5.2 相同);Flash 一列几乎每一行都换了
第 3 课四刀同时下,KV 压到 890 BKV 矩阵里只有 V4.1 四个「刀」格都是红字
第 4 课新旧分离后,真原创只有几项K3 一列的残差、截断、负载均衡三行,在别家都找不到同款
⚖️

这张表的边界:config 只能说明「它是什么」,说明不了「它为什么好」 ;「为什么」要回到各家的消融,而那些消融全是官方自报、只在它们各自的规模上成立 。实验课的价值不在「证明谁最好」,而在练习只比能比的东西,并把每一格的来源说清楚。

六、为项目拍板

🧭

你要拍板的三件事(对应章首页的项目里程碑):

  1. 给我们的模型写一页「技术报告式」的 config 解剖:上面最右一列的每一格,都要能说出公式、字段与回扣哪一章;参数与 KV 必须和导出的实测值对上。
  2. 做一张对照锚点的新旧分离表:我们用了 Qwen3.8-27B 的哪些做法(RoPE、Pre-Norm + RMSNorm、SwiGLU),没用哪些(GQA、QK-Norm、输出门、混合注意力、MoE、Muon),各自为什么。
  3. 如果只加一个 2026 年的部件,加哪一个?要写清它的证据等级、代价,以及在「3.7M 参数、训练长度 256」这个规模上它有没有意义——例如混合注意力省的是长上下文的 KV,而我们的训练长度只有 256。
🔍 为什么我们的小模型「几乎什么都没用上」反而是对的

前沿模型的大多数改动都在解决两类问题:一是长上下文(KV、N²、位置外推),二是超大规模(稳定性、通信、低精度)。我们的模型训练长度 256、参数 3.7M、单卡 FP32——两类问题都还没有出现。在一个问题出现之前加上它的解法,只会增加一个你无法验证的变量。C14 讲过「小实验能预测大决策吗」;本章第 1 课的两条反例(预训练看不出、后训练才暴露)说明,就算加了,我们这个规模也很可能看不出它的好处。

一句话

📌

趋同的是「哪里要省」,分歧的是「怎么省」;表里每一格都要说得出来自 config、报告还是推测。

全课的最后一个缺口

从已有出发 · 累计数据流 点已学环节看形状与参数
解码层

从 C0 的「下一个词的概率怎么算」到这里,上面这条数据流的每一环你都亲手拆过。下一份前沿报告发布时(K4、DeepSeek-V5、GLM-6……),用这一章的方法自己拆一遍:先 diff config,再分新旧,再追出处,再给每个数字标层级。后训练之后的故事——模型怎么从「会答题」走到「会做事」——在编码 Agent 课接着讲。回到本章首页看项目里程碑与三档资料。