写在前面
我们常常会在大模型发布会上听到:多少分、排第几、超越谁。而大模型中的 config.json 里讲的是预算:层数多少、每个 token 激活几个专家、KV 每个 token 占多少字节,这两件事经常对不上。所以每次有新模型开源,我第一件事不是看评测表,是把配置文件拉下来读一遍 - 因为分数会骗人,结构不会。一个模型想在 1M 上下文上跑得便宜,它在配置里必须留下痕迹;如果没有,那宣传里的"1M"就是服务侧外推出来的数字。
这篇文章想回答三个问题:
- 国内开源大模型在结构上到底差在哪?
- 每个设计在省什么,又付出了什么代价?
- 为什么有些反直觉的结论会成立(比如"稀疏注意力不省显存"、“混合架构反而更贵”)?
上一篇我单独拆了 Kimi K3.1 Pro 的 69:24,这一篇把它放回牌桌上,和其他的模型一起对比。
方法与口径:配置来自 2026-11-07 这个日期的 Hugging Face 仓库。config.json 只描述结构,不含实际权重;文中参数量是按结构粗算的,不是官方数字。
一、先看三块内容:参数、KV、注意力
如果你只想记住一件事,记住这个:大模型的成本由三个数决定,而这三个数全都写在 config 里。
1.1 总参数与激活参数
MoE(混合专家)模型的参数分两个口径:
- 总参数:权重文件里一共有多少个参数。它决定显存要装多少。
- 激活参数:生成每一个 token 时真正参与计算的参数量。它决定算力和带宽要花多少。
两者之间差着一个数量级。以 Kimi K3 为例:2.8T 总参数,但每 token 只激活 104B - 因为它从 896 个专家里只挑 16 个。
打个比方:总参数是一整座图书馆的藏书量,激活参数是你每次去借的那十几本。图书馆越大不等于你读书越快,但馆子越大,地皮越贵。
1.2 KV cache:长上下文真正的账单
模型在读一个 token 时,会把它的 Key/Value 向量存下来,供后面所有 token 查用。这份"笔记"就是 KV cache。
它的可怕之处在于线性增长:上下文翻倍,KV 也翻倍;上下文到 1M,KV 就按 1M 算。而它的大小可以用一行公式估出来:
KV/token = Σ(随长度增长的层数 × 每层维度 D) × 2 字节(BF16)
D 怎么取值,取决于注意力类型:
| 注意力类型 | 每层维度 D | 说明 |
|---|---|---|
| MHA / GQA / MQA | kv_heads × head_dim × 2 | K 和 V 分开存,所以要乘 2 |
| MLA(DeepSeek 系) | kv_lora_rank + qk_rope_head_dim | 把 K/V 压进一个低秩潜向量,不乘 2 |
举个具体例子。GLM-5.3 是 MLA,kv_lora_rank = 512、qk_rope_head_dim = 64,78 层全部随长度增长:
78 × (512 + 64) × 2 B = 89,856 B ≈ 88 KB / token
再举个 GQA 的。Qwen3.8 只有 23 层随长度增长,但它是 4 个 KV 头 × 256 维:
23 × (4 × 256 × 2) × 2 B = 94,208 B ≈ 92 KB / token
这两行算完,你就明白为什么"层数多"的模型不一定更贵 - 决定账单的是 增长层数 × 每层维度,不是总层数。
1.3 省钱的三种姿势
长上下文太贵,于是大家想了三条路:
- 压缩派:历史照存,但"缩微"。要么按比例合并(每 4 个 token 并成 1 份),要么只保留稀疏的索引。
- 线性派:不存历史,改成一个定长的记忆状态。上下文再长,这份状态大小不变。
- 稀疏派:和 KV 无关,省的是算力 - 每个 token 只激活少数专家。
前两条改的是注意力,第三条改的是 FFN。它们不互斥,事实上现在的旗舰是三条一起上。
下面的牌桌,就是按这三条路线摆的。
二、牌桌:五家一梯队,两家二梯队
| 厂商 | 旗舰(2026-11) | 总参 / 激活 | 注意力路线 | 上下文 | 许可 |
|---|---|---|---|---|---|
| 深度求索 | V4-Pro / V4.1-Flash | 1.6T / 49B;284B / 13B | CSA + HCA 压缩 | 1M | MIT |
| 阿里 | Qwen3.8-2.4T-A95B | 2.4T / 95B | Gated DeltaNet,全:线 = 1:3 | 256K(config)/ ~1M(API) | 自定义(MaaS >$50M 需另谈);27B 为 Apache 2.0 |
| 月之暗面 | Kimi K3.1 Pro | 2.8T / 104B | KDA 69 层 + Gated DSA 24 层 | 1M | 自定义(非标准 MIT) |
| 智谱 | GLM-5.3 / GLM-5.3-Flash | 744B / 40B;320B / 18B | DSA + IndexShare;线性 + 稀疏 | 1M | MIT |
| 腾讯 | 混元 Hy4 | 770B / 49B | MoE + 视觉 / Computer Use | 1M | 待开源(gated) |
| MiniMax | M3 | 428B / 23B | MSA 块级稀疏 | 1M | 权重已开 |
| 百度 | ERNIE-5.5-Flash | 280B / 14B | 128× 压缩 + Hyper-Connections | 1M | 权重已开 |
把这张表按"注意力怎么省"重排一遍,三条路线就非常清楚了:
- 压缩 KV + 稀疏检索:DeepSeek 的 CSA/HCA、GLM 的 DSA+IndexShare、ERNIE 的 ÷128、MiniMax 的 MSA。保真度高、KV 可控,实现最复杂。
- 线性 / 状态空间混合:Qwen 的 Gated DeltaNet、Kimi 的 KDA、GLM-5.3-Flash 的线性层。长上下文吞吐最好、KV 最省,但要靠少量稀疏层补召回精度。
- 极致稀疏 MoE:所有旗舰都在做,激活比压到 3%–6%,Kimi 更是 16/896 ≈ 1.8%。
一句话:竞争已经从"参数多大"变成"每个激活参数换多少能力、每百万 token 要多少 KV"。
三、第一课:参数量是怎么从配置里算出来的
先看规格表,为后面所有推理提供"原始数据"。
| 模型 | 架构类 | 层数(+MTP) | hidden | heads/KV | head_dim | 专家 总/激活/共享 | expert FFN | ctx(config) |
|---|---|---|---|---|---|---|---|---|
| GLM-5 | GlmMoeDsa | 78(+1) | 6144 | 64/64 | 256 (192+64) | 256/8/1 | 2048 | 202,752 |
| GLM-5.2 | 同上 | 78(+1) | 6144 | 64/64 | 256 | 256/8/1 | 2048 | 1,048,576 |
| GLM-5.3 | 同上 | 78(+1) | 6144 | 64/64 | 256 | 256/8/1 | 2048 | 1,048,576 |
| GLM-5.3-Flash | glm5_next_text | 45(+1) | 4096 | 64/64 | 256 | 288/8/1 | 2048 | 1,048,576 |
| DeepSeek-V3.2 | DeepseekV32 | 61(+1) | 7168 | 128/128 | MLA 576 | 256/8/1 | 2048 | 163,840 |
| DeepSeek-V4-Flash | DeepseekV4 | 43(+1) | 4096 | 64/1 | 512 | 256/6/1 | 2048 | 1,048,576 |
| DeepSeek-V4-Pro | 同上 | 61(+1) | 7168 | 128/1 | 512 | 384/6/1 | 3072 | 1,048,576 |
| Qwen3.5-397B | qwen3_5_moe | 60(+1) | 4096 | 32/2 | 256 | 512/10/1 | 1024 | 262,144 |
| Qwen3.6-35B-A3B | 同上 | 40(+1) | 2048 | 16/2 | 256 | 256/8/1 | 512 | 262,144 |
| Qwen3.8-2.4T | 同上 | 92(+1) | 8192 | 64/4 | 256 | 512/10/1 | 2048 | 262,144 |
| Kimi K3 / K3.1 | KimiLinear | 93(+0) | 7168 | 96/96 | 128+64 | 896/16/2 | 3072 | 1,048,576 |
| 混元 Hy3 | HYV3 | 80(+1) | 4096 | 64/8 | 128 | 192/8/1 | 1536 | 262,144 |
| MiniMax M3 | MiniMaxM3Sparse | 60(+7 MTP) | 6144 | 64/4 | 128 | 128/4/1 | 3072 | 1,048,576 |
| ERNIE-5.5-Flash | Ernie5_5_Moe | 43(+1) | 4096 | 64/64 | 512 | 512/10/1 | 2048 | 1,048,576 |
四行值得先圈出来:
- DeepSeek V4 把
kv_heads压到 1,head_dim拉到 512。这是"极小 KV 头、极大头维"的极端设计,和 V3.2 的 128 头、MLA 576 维完全是两种审美。 - Qwen 全系
max_position_embeddings都是 262,144,没有一代是 1M。API 标称接近百万,是服务侧外推,不是权重原生。 - Kimi 和 GLM-5.3-Flash 的线性层在 config 里都叫
kda_layers,同名不是巧合 - 线性注意力的实现正在快速趋同。 - Hy3 是全场唯一没有稀疏、没有索引器的旗舰:80 层纯 GQA(64/8)。
3.1 粗算公式
MoE 的参数绝大部分在专家里,所以可以这样估:
N ≈ MoE 层数 × 专家数 × 3 × hidden × expert_ffn
乘 3 是因为每个专家有三个矩阵(gate / up / down)。这个方法漏掉了注意力、embedding、共享专家和 lm_head,所以结果会略低于官方数字。
和官方口径对比:
| 模型 | config 粗算 | 官方 | 偏差 |
|---|---|---|---|
| GLM-5.3 | 727B | 744B | −2% |
| GLM-5.3-Flash | 306B | 320B | −4% |
| DeepSeek-V4-Pro | 1,549B | 1.6T | −3% |
| DeepSeek-V4-Flash | 278B | 284B | −2% |
| Qwen3.5-397B | 389B | 397B | −2% |
| Qwen3.6-35B-A3B | 33B | 35B | −6% |
| Qwen3.8-2.4T | 2,375B | 2.4T | −1% |
| Kimi K3 | 2,726B | 2.8T | −3% |
| 混元 Hy3 | 287B | 295B | −3% |
| MiniMax M3 | 413B + emb | 428B | ≈0 |
模型全部落在 ±6% 以内,说明这套公式和厂商口径是同一套账。 漏掉的部分本来就只有百分之几,所以偏差集中在负方向、且很小 - 这反过来证明了这些参数是可信的。
3.2 一个把 2.8T 装进 1.56TB 的技巧
Kimi 的 2.8T 是怎么"装下"的?靠 routed_expert_hidden_size = 3584:
专家不是在全宽 7168 维上计算,而是先被投影到 3584 维的潜空间里,算完再投回去。如果按 7168 直算,同样结构会膨胀到 5.5T。
这就是"Latent MoE"四个字值钱的地方 - 它不是营销词,是省掉一半显存的具体手段。
四、压缩派:把历史记录"缩微"
压缩派的核心假设很朴素:不是每一个历史 token 都值得保留一份完整的 KV。
4.1 DeepSeek:把压缩率写成一个数组
DeepSeek V4 的配置里有一个非常直白的字段:compress_ratios,取值 0 / 4 / 128。
它的含义是"每多少个 token 合并成一份 KV":
- 0:不压缩,逐 token 保留;
- 4:4 个 token 合成 1 份 - 分辨率降到四分之一;
- 128:128 个 token 合成 1 份 - 只留"大意"。
V4-Pro 的分布是:1 层不压、30 层四压一、31 层一百二十八压一。折算成等效层数是 1 + 30/4 + 31/128 ≈ 8.7 层 - 从 61 层降到 8.7 层,KV 直接砍掉 85%。
为什么近处细、远处粗? 因为注意力的需求本来就是分层的:最近几十个 token 决定了续写的连贯性,需要高分辨率;几万 token 之前的内容只提供背景,粗略即可。这跟人读文档的习惯一样 - 上一段逐字看,前面几章只记结论。
配套还有两个动作:
kv_heads = 1,head_dim = 512:把 KV 头压到 1 个(MQA 思路),用超大的 head_dim 保住表达能力。V3.2 是 128 头、MLA 576 维,V4 换成了完全相反的比例。- 前 3 层 hash 路由:最前面几层用哈希决定路由,省掉打分。
4.2 GLM:让 4 层共用一次索引
GLM 走的是稀疏路线,但加了一个很巧的设计:IndexShare。
DSA(DeepSeek Sparse Attention)的原理是:用一个轻量索引器给每个 query 打分,只挑 top-k 个 token 做真正的注意力。问题是 - 每一层都要算一遍索引,这笔开销不小。
GLM 的观察是:相邻层的 top-k 选择高度重叠,实测重叠度 70%–100%。既然四层里挑的东西差不多,那为什么要各算各的?
于是配置里出现了:
indexer_types:21 个full+ 57 个shared;index_topk_freq = 4。
意思是每 4 层共享一次索引,被共享的层不再重新选位置,但注意力输出仍然每层独立计算。
这是"省一次打分"和"保每层表达"之间的折中 - 索引共享了,计算没有偷工。
4.3 ERNIE:几乎是 DeepSeek V4 的同一套配方
看完 ERNIE-5.5-Flash 的配置,我有点意外:kv_heads=1、head_dim=512、压缩率 128、hyper_connections、mqa_dsa。
这就是 DeepSeek V4 那套"极小 KV 头 + 大 head_dim + 高压缩率"的组合。
连 hyper_connections 这种细节都一致,说明"高效基座"的配方已经在行业里流通了。
4.4 MiniMax:块级稀疏,省算力不省显存
MiniMax M3 是另一种稀疏:block 128、top-16 块、4 个索引头。
它以 128 个 token 为一块,只挑最相关的 16 块做注意力。计算量降到 16/总数,但KV 仍然全量存储 - 因为你不知道下一次会挑哪一块。
这是一个关键区别,后面算账时会用到:稀疏注意力省的是计算,不是显存。
4.5 压缩派的共同代价
- 分辨率损失:压缩比越高,召回细节的能力越弱,必须靠低压缩层和稀疏层补偿;
- 实现复杂度:压缩器、索引器、路由三套机制要一起调,出问题很难定位;
- 外部不可验证:压缩质量好不好,只能看厂商自测。
五、线性派:用定长记忆换无限上下文
如果压缩派是"把档案拍照缩小",线性派就是换个思路 - 压根不存档案,只维护一本摘要。
5.1 一个公式看懂它为什么便宜
标准注意力要存所有历史 token 的 KV,成本随长度线性增长。线性注意力换了一种实现:它维护一个固定大小的状态矩阵,每读一个 token 就更新一次。
结果就是:上下文从 1K 涨到 1M,这份状态的大小不变。
代价也很直接 - 状态容量有限,精确回忆某个具体位置的能力会弱。所以纯线性模型在长文检索上总是吃亏。
5.2 KDA:比"遗忘"更细一档
Kimi 用的 KDA(Kimi Delta Attention)是在 Gated DeltaNet 上改的。
Gated DeltaNet 的遗忘门是每个头一个标量 - 一个头共用一个遗忘速率。 KDA 把它拆成每个特征维度一个遗忘率:通道级的细粒度门控。
差别在哪?打个比方:一个团队共用一本笔记本(头级),和每个人各有一本(通道级)。后者的记忆管理显然更精细 - 重要的维度可以长期保留,不重要的快速清空。
实现上,KDA 用了一种 “Diagonal-Plus-Low-Rank”(DPLR)转移矩阵的特殊变体,把每一步的更新压缩成可以分块并行计算的形式 - 这是它能在 GPU 上跑得快、而不是退化成 RNN 串行扫描的关键。
5.3 三种混合比例,其实是同一个数
线性派都不敢全用线性层,必须留一部分"全注意力"或用稀疏层补精度。有趣的是,三家最终都收敛到同一个比例:
| 模型 | 全 / 稀疏层 | 线性层 | 全 : 线 |
|---|---|---|---|
| Qwen3.5 | 15 | 45 | 1 : 3 |
| Qwen3.6 | 10 | 30 | 1 : 3 |
| Qwen3.8 | 23 | 69 | 1 : 3 |
| Kimi K3 / K3.1 | 24 | 69 | 1 : 2.9 |
| GLM-5.3-Flash | 11 | 34 | 1 : 3.1 |
三家、五个模型、跨度从 35B 到 2.4T,比例全部落在 1:3 附近。 这不是巧合,是被同一组约束逼出来的平衡点:线性层再少,长上下文吞吐上不去;线性层再多,召回精度掉得厉害。
这里有个容易混淆的说法要澄清:很多地方说"1:4 交错",指的是周期为 4(每 4 层插 1 层全注意力),换算成比例是 1:3。周期和比例是两个概念,看配置里的层数数组才不会搞错 - Qwen3.8 是 23 个全注意力层配 69 个线性层,算出来就是 1:3。
5.4 为什么线性派最适合长上下文服务
回到 1.2 节的公式:MLA/GQA 的成本是 层数 × 维度,线性层的成本是常数。
所以对 Kimi 来说,93 层里只有 24 层随长度增长,另外 69 层的开销在 1K 和 1M 上下文下完全一样。这就是为什么它的每 token KV 只要 27 KB - 不到 GLM-5.3 的三分之一。
代价是那 69 层的定长状态本身要占显存,而且在短上下文场景下这笔开销是白付的。所以线性派在"1M 长文"上是赢家,在"8K 短对话"上未必划算。
六、稀疏派:MoE 的行业共识
第三条路和注意力无关,改的是 FFN。
所有旗舰都在做同一件事:把专家切细、每次只激活少数。896 选 16(Kimi)、512 选 10(Qwen3.8、ERNIE)、384 选 6(V4-Pro)、256 选 8(GLM、Qwen3.5),激活比全部压在 3%–6%。
再加两个通用技巧:
- 共享专家:留 1–2 个对每个 token 都生效的专家,路由失手时兜底;
- Latent 压缩:先把表示压到低维再分发(Kimi 3584、DeepSeek 系同理),省显存也省专家并行的通信量。
这条路线已经没有差异化空间了 - 它是所有旗舰共同的地基。真正的差异全在前两条:注意力怎么省 KV。
七、KV 账单:每 token 的真金白银
把前面的公式套到每个模型上,只算随序列长度增长的 KV(BF16,每 token):
| 模型 | 增长层 | 每 token 维度 | KV/token | 1M 单请求 | 说明 |
|---|---|---|---|---|---|
| MiniMax M3 | 60 | 1024 | 120.0 KB | ~129 GB | 稀疏只省计算,不省 KV |
| Qwen3.8 | 23 | 2048 | 92.0 KB | ~99 GB | 4 KV 头 × 256 × (K,V) |
| GLM-5.3 | 78 | 576 | 87.8 KB | ~94 GB | MLA 512+64,全部层都涨 |
| DeepSeek-V3.2 | 61 | 576 | 68.6 KB | ~74 GB | MLA |
| Kimi K3 | 24 | 576 | 27.0 KB | ~29 GB | 69 层 KDA 定长 |
| DeepSeek-V4-Pro | 61 | 等效 8,952 | 17.5 KB | ~19 GB | 1 全 + 30÷4 + 31÷128 |
| GLM-5.3-Flash | 11 | 576 | 12.4 KB | ~13 GB | 34 层线性定长 |
看最后一列。 一个跑满 1M 上下文的请求,GLM-5.3 光 KV 就要 94 GB - 比一张 H100 的 80 GB 显存还多。MiniMax M3 更是要 129 GB。而 GLM-5.3-Flash 只要 13 GB,一张消费级卡都塞得下。
这就是"1M 上下文"背后的真实账单:能不能跑满,不取决于参数量,取决于注意力结构。
两个反直觉的结论
第一,Qwen 的混合架构并不省 KV。
直觉上,“用了线性注意力应该很省”。但 Qwen3.8 只有 23 层随长度增长,每层却是 4 个 KV 头 × 256 维 × 2 = 2048 维 - 涨起来和 MLA 一个量级(92 KB vs 88 KB)。
它省的是计算(只有 23 层是平方复杂度),不是显存。它的优势在高并发下的 FLOPs,不在单请求的显存占用。
第二,“稀疏"和"线性"省的完全不是一回事。
- 稀疏(M3、GLM 的 DSA):只对少数 token 做计算,但KV 仍然全量存;
- 线性(Kimi、Flash):KV 根本不按长度存,改成定长状态。
所以论"省显存"的排序是:线性 > 压缩 > 稀疏。论"保精度"的排序恰好反过来。这是一条明确的取舍曲线,没有免费午餐。
口径说明:FP8 KV 可再减半;线性层的定长状态与 DSA 索引器缓存另计。
KV 为什么这么涨、涨在哪几层,我在 KV Cache 上下篇 里拆过。
八、三代演进:谁真的换了架构
判断"换代"有个简单标准:config.json 有没有变。
变了架构字段(层数、注意力类型、专家数、压缩率),叫换架构;只改了量化配置或权重,叫做后训练。按这个标准看最近三代:
| 厂商 | 三代 | 架构真正变了什么 |
|---|---|---|
| DeepSeek | V3.2 → V4 → V4.1 | V3.2 首次上 DSA;V4 换架构(CSA/HCA、mHC、Muon、FP4、kv_heads=1);V4.1 换家族(原生多模态,我单独拆过:见这篇) |
| 阿里 | 3.5 → 3.6 → 3.8 | 3.5 验证线性+稀疏(397B-A17B);3.6 下放到 35B-A3B;3.8 把同一套放大到 2.4T、92 层 |
| 月之暗面 | K2.6 → K3 → K3.1 | K3 换架构(KDA + Attention Residuals + 896 专家);K3.1 在 24 层 MLA 之上加 DSA,其余靠后训练 |
| 智谱 | 5 → 5.1 → 5.2 → 5.3 | 5 上 DSA;5.1 纯后训练;5.2 上 IndexShare 做到 1M;5.3 零架构改动 |
| 腾讯 | Hy3 → Hy4 | Hy3 是 295B/21B 的 GQA 模型;Hy4 放大到 770B/49B,加视觉与 Computer Use |
真正换架构的只有两次:DeepSeek V4 和 Kimi K3。 GLM-5.3 和 Kimi K3.1 都属于"同一基座、后训练放大”。
GLM 这条有硬证据:把 GLM-5.2 和 5.3 的 config 做 diff,除了 quantization_config(5.3 加了 FP8 block-wise)和 transformers 版本号,逐字节相同。所谓"编程能力提升",确实全部来自后训练。
Kimi K3.1 则是个有意思的中间态:官方说它是 K3 的后训练版,但 config 显示它在 24 层 MLA 之上加了 DSA(dsa_layers 正好是 4、8、12……92、93,共 24 层,top-k 2048)。架构动了一点点,能力主要来自后训练 - 这种"小数点版本"的做法,正在变成行业惯例。
九、开源
| 档位 | 代表 | 实际含义 |
|---|---|---|
| A. 权重 + 宽松许可 + 部分基础设施 | DeepSeek(MIT)、GLM(MIT) | 可商用、可改、可自部署;DeepSeek 还开源了 MegaMoE、DeepGEMM、TileLang |
| B. 权重 + Apache 2.0 | Qwen 27B/35B、混元 Hy3 | 商用无障碍,但训练数据、训练代码基本不给 |
| C. 权重 + 营收门槛 | Qwen3.8-2.4T(MaaS 年营收 > $50M 需另谈)、Kimi K3(自定义许可) | 权重能下,规模化商用要谈判 |
| D. 只有 API / 口头开源 | 字节豆包、混元 Hy4(发布时)、各家 Max 闭源版 | 不能算开源 |
必须说清楚:“开源权重"不等于"开源”。 没有任何一家放出完整训练数据,训练代码也只有少数基础设施组件。
判断"真开源"看四件事:权重能否下载、许可证是否允许商用、是否给推理代码、是否给可复现的训练说明。四条全中的,目前一个都没有。
混元 Hy4 是这一轮的典型:11 月 4 日发布会说"模型权重近期开源",但到今天,HF 仓库是 gated(401),ModelScope 上找不到,config 拿不到。在权重真正落地之前,它只能算 D 档。 选型时把它写进"可私有化"清单,是会踩坑的。
十、评测口径与工程可用性
10.1 同一模型换个 harness 能差 30 分
这是目前最不可比的一块,也是最容易被话术带偏的一块。
2026 年 10 月的论文《Finding the Right Fit》测了 66 种"模型 × harness"组合:在 Terminal-Bench 4 上,Claude 在 OpenHands 里领先 GPT 7.94 分,在 PI 里却落后 30.16 分;五个模型里有四个的"最佳 harness"随 benchmark 变化;厂商自家 harness 不一定最好。另一篇《The Scaffold Effect》结论一致。
而厂商自报普遍是跨 harness 比较:Qwen 用 OpenCode 测,Claude 用 Claude Code(avg@10、5 小时超时),GPT 用 Codex。超时、token 预算、重试策略全不同,数字只能当营销材料。
再加上 benchmark 版本混用:Terminal-Bench 2.1 / 3.0 / 4.0 难度差一个数量级。GLM-5.3 在 TB3 是 28.3,DeepSeek V4.1-Flash 在 TB4 是 31.2,不能直接对比。还有一堆自建 bench - Z.ai Code Bench、DSBench、Kimi Code Bench、Hy4 内部办公评测 - 外部无法复现。
自己验的最小方案:固定同一个 harness、同一 token 预算、同一超时;拿 20–50 条真实业务任务;同时记录通过率、输出 token 数、墙钟时间、人工修改量。只看通过率,会被"话多但能过"的模型骗到。
10.2 分数之外,行为质量更能说明问题
- 输出风格差异极大:同一组前端任务里,GLM-5.3 平均写 ~710 行、~5.4 万输出 token;Kimi K3 最紧凑 ~450 行;DeepSeek V4-Pro 最快(~114 tok/s)。“谁更强"之外,token 成本能差 30%–50%。
- 工具调用鲁棒性比分数更重要:harness 论文发现 Kimi 常发出格式错误的 tool call,在能"修复/重试"的 harness(openJiuwen)里表现最好;GPT 则在"精简脚手架”(PI)里最好。选模型时要把 harness 的容错能力算进去。
- 长程稳定性仍是分水岭:有实测指出 DeepSeek V4-Pro 的 coding agent 前两轮很强,多轮后产物开始退化;GLM 的优势恰好在"守住工程约束、不越界修改"。
- 幻觉口径不统一:腾讯自报 Hy4 幻觉率 7.2%、猜测型错误 5.6%;Kimi 自报 K3.1 Pro 在内部压力测试上 claim-level 幻觉 23.4%→8.3%。都是厂商自建测试,只能看趋势。
- 安全开始影响可用性:GLM-5.3 因网络安全能力涌现而延迟放权重、加"可信访问";混元主动剔除攻击性安全数据。Open weights 不等于"无限制"。
10.3 能下载 ≠ 能跑
- 能私有化的其实只有中小杯:GLM-5.3-Flash(320B/18B)、Qwen3.6-35B-A3B、ERNIE-5.5-Flash(280B/14B)是现实选择;V4-Pro(1.6T)、Kimi K3(2.8T)要 64 卡级起步,1M 上下文更是显存黑洞(有工程侧估算 V4-Pro 跑满 1M 需 64 张 H20 级别)。
- 量化生态(原理与取舍见我写的 量化上下篇):FP8 已是云端主流;DeepSeek 有 FP4 QAT;社区 GGUF/Q4 让 744B 级模型能塞进 256GB 统一内存,但速度只有个位数 token/s。
- 推理框架:vLLM/SGLang 基本 day-0;GLM-Flash 还支持 TokenSpeed;国产芯片(昇腾、寒武纪、摩尔线程、海光、壁仞、沐曦、昆仑芯、平头哥)普遍 day-0 适配。
- API 兼容性:OpenAI Chat Completions 是标配,Anthropic Messages 与 OpenAI Responses 也在快速补齐,Claude Code / Codex / OpenCode 可直接接。
十一、怎么选
| 场景 | 首选 | 理由 |
|---|---|---|
| 私有化 + 低成本 + 多模态 | GLM-5.3-Flash、Qwen3.6-35B-A3B | MIT/Apache、单机可跑、视觉可用 |
| 最强 agentic coding,不管成本 | Kimi K3.1 Pro、DeepSeek V4-Pro | 长程任务与 Terminal-Bench 第一梯队 |
| 工程交付 / 守规范 / 长上下文 | GLM-5.3 | 1M + 强制思考 + 工程约束遵循 |
| 性价比 API、中文写作 | DeepSeek V4.1-Flash | MIT、便宜、中文自然 |
| 多语言 / 生态 / 微调底座 | Qwen3 的 27B | Apache 2.0、工具链最全 |
| 办公 / 视觉 / Computer Use | 混元 Hy4 | 视觉+GUI 是差异点,但要等权重 |
三条判断:
- 架构已经收敛到"MoE + 混合/稀疏注意力 + 长上下文",接下来的差异在后训练规模和推理经济学,不在参数量。
- 许可证正在分层:MIT/Apache 的"Flash 层"铺生态,营收门槛的"Max 层"收钱。选型先看许可证,再看分数。
- 所有榜单都要打折看:同一模型换 harness 能差 30 分。唯一可信的评测,是你自己业务任务上的那 50 条。
收尾
把开源大模型的配置读完,我最大的感受不是"国产模型真强",而是这一代的分工已经很清楚了:
DeepSeek 负责把单位成本打到最低,Kimi 负责把长程任务推到极限,Qwen 负责生态与多语言,GLM 负责工程交付,腾讯负责把模型塞进办公流。
而对做 Infra 的人来说,这是好事 - 当模型开始按场景分工,选型就不再是"谁分数高",而是"谁的账单和你的负载匹配"。
而这张账单,config.json 里写得清清楚楚。
数据来源:各模型 Hugging Face 仓库的 config.json(2026-11-07);厂商口径来自各官方博客与技术报告。参数量为按结构粗算,非官方数字;KV 为 BF16 下的等效估算,未计 FP8 与索引器缓存。混元 Hy4 无公开 config,未纳入统计。