37 层压缩、6 层全看:文心 5.5 Flash Base 把效率省在了哪四个地方

举报
HugoLiao 发表于 2026/11/06 18:20:58 2026/11/06
【摘要】 11 月 5 日,百度在世界大会上开源了文心 5.5 Flash Base(ERNIE 5.5 Flash Base),权重挂在 Hugging Face 上,FP8 与 BF16 两种格式。稀疏 MoE,总参数 280B,每 token 激活 14B,33.5 万亿 token 从零预训练。发布材料里有一句话,比任何分数都更像这份工作的说明书:从注意力、残差连接到 MoE 层和输出头,逐个...

11 月 5 日,百度在世界大会上开源了文心 5.5 Flash Base(ERNIE 5.5 Flash Base),权重挂在 Hugging Face 上,FP8 与 BF16 两种格式。稀疏 MoE,总参数 280B,每 token 激活 14B,33.5 万亿 token 从零预训练。

发布材料里有一句话,比任何分数都更像这份工作的说明书:

从注意力、残差连接到 MoE 层和输出头,逐个组件审视能力与效率的关系,将激活计算、KV cache 和长上下文处理开销纳入整体设计。

这句话是纲领。它说明这不是"堆参数再压一压",而是逐个组件算账。所以读这份发布,最有效的办法也是顺着它的顺序,一个组件一个组件看:改了什么、省了多少、代价在哪。

四个组件里,最值得看的是注意力那个——43 层里有 37 层只保留压缩视图,只有 6 层能看到全部 token。这个 37 比 6 的分工,决定了它在 1M 上下文下还能不能跑。

先说清楚一件事:这次放的是预训练终点的 Base 权重,没有中训练、没有后训练。 它不会聊天,下载下来直接调只会得到续写。所有"同尺寸 SOTA"的分数都建立在这个前提下,第五到七节会反复回到这一点。


一、底盘:43 层与那组数字

先把结构参数摆出来。官方给得比多数开源发布细。

项目 数值
层数 43 层 Transformer
hidden size 4096
注意力头数 64
总参数 280B
每 token 激活 14B(5.0%)
预训练 token 33.5 万亿
预训练上下文 128K
微调 / 推理上下文 1M
MoE 配置 每块 512 个路由专家,每次选 10 个 + 1 个共享专家
专家隐空间 4096 维投影到 2048 维,专家在隐空间计算后映射回

【推算】14 ÷ 280 = 5.0%。这个激活比例和同代产品基本一致:GLM-5.3 是 40 ÷ 753 = 5.3%,DeepSeek-V4-Flash-Base 是 13 ÷ 284 = 4.6%,Hy3-preview-Base 是 21 ÷ 295 = 7.1%,MiMo-V2.5-Base 是 15 ÷ 310 = 4.8%。5% 上下是当前这代 MoE 的行业惯例,不是文心的特色。 真正的差异在下面四个组件里。

再核一处:43 层 ÷ 7 ≈ 6.1,而官方说"每七层保留一层做全 token 访问",实际 MLA 层是 6 层。规则与结果对得上。


二、组件一 · 注意力:37 层压缩,6 层全看

这是整套设计里最反直觉的一处。

长上下文的标准做法是让每一层都能看到全部历史,然后靠稀疏化(只算一部分位置)来省算力。文心反过来:绝大多数层干脆不看原始 token,只看压缩后的摘要。

具体分两层:

37 层走 HCA(重度压缩注意力)。 每 128 个 token 压缩成 1 条缓存条目。这一层做注意力时,是在这些压缩条目 + 最近一小段未压缩 token 构成的窗口上做稠密注意力。也就是说,它对远距离历史只有粗粒度视野,对眼前一小段保持精细。

6 层走 MLA(多头潜在注意力)。 这 6 层保留每个 token 的细粒度访问,但配了 DSA 稀疏注意力:一个轻量 indexer 给历史位置打分,核心注意力只在得分最高的 top-k 上计算。官方说,采用 DSA 后这些层的预训练 loss 与稠密注意力持平,训练速度显著提升。

为什么是这个分工?官方给的理由很实在:大多数层只需要对远距离历史有一个粗粒度的视野。

这句话可以推演:如果一层只负责"这一层楼大致是什么风格",它不需要看到每块砖;只有少数层需要精确寻址"第三排第二个货架上的那瓶水叫什么"。把精确寻址集中到 6 层,其余 37 层降级为摘要阅读,等于把一个全局的稠密问题拆成一个局部稠密 + 全局稀疏的问题。

还有一个配套设计值得单独说:头维度按层类型反向匹配。

层类型 头维度 为什么
HCA(37 层) 512 维宽头 在 128 倍压缩后的序列上做注意力,计算量小,宽头额外开销很低
MLA(6 层) 256 维窄头 逐 token 访问上下文,计算量大,必须用窄头压住

这和常见做法相反。多数模型全模型统一 head_dim,省事但浪费——计算量小的层本来可以用更宽的表示换取表达力,计算量大的层则需要收紧。按计算量反向分配维度,是一个几乎零成本的收益。


三、这笔账:KV cache 压到了标准配置的多少

37 和 6 这个分工,最直接的后果在 KV cache。

【推算】用"以标准全 token 层为单位"的相对开销算,只依赖官方明确给的两个数(37 层 HCA、128 倍压缩),不涉及 MLA 自身的压缩率:

43 层全部做全 token 访问 = 43 个单位
37 层 HCA:37 ÷ 128 = 0.289 个单位
6 层 MLA:6 个单位(按全 token 计,未计入 MLA 自带压缩)
合计 = 6.289 个单位
相对开销 = 6.289 ÷ 43 = 14.6%

也就是说,光是把 37 层降级成 128 倍压缩,KV cache 就压到了标准配置的约 15%——反过来,全 token 方案是现在的 6.8 倍。

这个估算刻意保守:MLA 层本身的 KV 是压缩过的潜在向量,不是完整的每 token 每头缓存,所以实际值还要更低。没把这一块算进去,是因为官方没披露 MLA 的压缩维度。这条属于未披露,也意味着 14.6% 是一个上限。

这个数看着不起眼,但它决定了 1M 上下文是不是一句空话。KV cache 是长上下文推理的主要显存开销,压到 15% 意味着同样的卡能承载 6 到 7 倍的并发上下文长度——或者同一张卡从"1M 跑不动"变成"1M 可以服务"。

注意一个区分:128K 是预训练长度,1M 是微调与推理时支持的上下文。 两个数差 8 倍,说明 1M 是靠外推或长度扩展拿到的,不是原生训练出来的。扩展方法官方没披露,这一条直接影响 1M 区的实际质量,用之前必须自己测。


四、组件二 · 门控:用自己本来就会生成的东西

注意力层的输出门通常要一个独立的投影矩阵。文心的做法是:改用这一层本来就会生成的低秩 query latent 来计算输出门。

关键在维度。官方说 latent 维度只有隐状态的四分之一。

【推算】hidden size 是 4096,四分之一就是 1024。一层门控投影的参数量:

方案 计算式 参数量 相对
标准门控投影 4096 × 4096 16.78M 100%
低秩门控(用 query latent) 1024 × 4096 4.19M 25%
减少 — 12.59M 75%

算出来的 75% 与官方口径完全一致。这个一致性本身说明一件事:"参数减少 75%"不是一个实测数字,而是一个结构上的必然——输入维度降到四分之一,线性投影的参数就降到四分之一。

但真正值得记的是官方的半句话:“消融效果反而提升”。 参数少了四分之三,效果没有退化,还略有提升。这背后是一个常见的观察:门控信号本来就只需要低维信息(它做的是一个"该放多少"的连续调节,不是特征提取),给它一个全维投影矩阵,多出来的容量大多在拟合噪声。

顺带提另一项同层改进:虚拟头注意力(VHA),用带恒等跳连的轻量跨头低秩混合增强信息融合,推理时可以融合进注意力算子里,开销极小。相关工作《Virtual Head Attention》已被 NeurIPS 2026 接收。


五、组件三 · MoE:多路由器,成本不变

这一项是全篇唯一一个"不增加任何成本"的改进,所以值得单独一节。

传统 MoE 的流程是:token 进层,一个路由器打分,硬 top-k 选专家。问题有两个:

  • 打分与专家实际效用只是弱相关,中深层尤其明显;
  • 落选专家拿不到这个 token 的梯度,一旦选错就很难纠正,错误会自我强化。

第二个问题尤其麻烦。它意味着一次误判不是"这次差一点",而是"以后一直差"。

Multi-Router Latent MoE 的思路是把"一个路由器说了算"改成"多个路由器综合评定":多个独立初始化的 sigmoid 路由器同时打分,专家只要被某一个强烈看好、或被几个同时看好就能入选。单次误判不再决定结果。

关键在于成本那一句:激活专家数、FLOPs、通信量与单路由器完全相同。 官方明确说推理时没有额外成本,提升主要体现在原本最弱的中深层。

这种改进在工程上很少见——大多数质量提升都要拿算力或显存去换,而这次只是把"打分委员会的构成"改了。

MoE 层还有两处结构设计:

设计 内容 收益(官方口径)
隐空间计算 token 从 4096 维投影到 2048 维,专家在隐空间内计算后映射回 通信量与专家 FLOPs 约减半
负载均衡 无辅助损失的 bias 修正 避免辅助损失干扰主目标

第一条值得注意:把专家计算搬到低维隐空间,等于在"专家容量"和"传输成本"之间重新切了一刀。280B 参数里有大量是专家权重,这些权重不用动,但每次前向搬进搬出的激活值减半——对多卡部署是实打实的带宽节省。


六、组件四 · 输出头:ECHO 一物两用

最后一个是训练目标上的改动,也是四个组件里最巧的一个。

多 token 预测(MTP)通常要额外加一个预测模块,多一个网络分支、多一份通信、多一批参数。文心的 ECHO 不加这个模块,直接复用主干最后一层去预测后续 token。

三个后果:

  1. 省掉了 MTP 模块的参数与通信。
  2. 主干自己学会了"提前规划序列走向",官方说这有效提升推理与代码能力。
  3. 复用的最后一层还能当投机解码的草稿模型。

第三条是这个设计最漂亮的地方。投机解码需要一个"小而快"的草稿模型来猜后续 token,猜对了就省掉大模型的验证成本;通常这个草稿模型要单独训练。ECHO 让主干最后一层兼职做这件事,而且官方说它只训练了单步,在多步起草上的质量却大幅优于辅助 MTP 模块。

一份训练目标,同时拿到三样东西:省参数、提能力、白得一个草稿模型。 这是全篇性价比最高的一处。


七、支撑层:FlashMask-4 与分布式 Muon

架构之外还有两项工程底座,容易被跳过,但它们决定了上面那些设计能不能在大规模训练里成立。

FlashMask-4 是面向大 head_dim 的注意力算子。前文提到 HCA 层用 512 维宽头,常规注意力算子在这个维度上效率不好——宽头意味着更大的寄存器压力和更差的分块效率。专门为大 head_dim 写算子,是"反向分配头维度"这个设计能落地的前提。

分布式 Muon 优化器 针对数万卡集群优化,重点是降低跨节点参数同步的通信开销。Muon 本身是近两年受关注的优化器方向,把它做到分布式可用,是训练 33.5 万亿 token 的必要条件。

这两项没有给出对比数字,属于只说明做了什么,没说明省了多少。这一条是本次发布里信息披露最薄的部分。


八、那 6 项输在哪

官方给的说法是:在同一套评测流程下,30 项基准里 24 项第一。这句话是准确的,但完整的表述应该包括另外 6 项。

基准 文心 5.5 Flash Base 对照最高 差距
MMLU(5-shot) 93.3 DeepSeek-V4-Flash-Base 89.4 +3.9
MMLU-Pro 78.4 69.2 +9.2
HumanEval+ 82.3 DeepSeek 69.5 +12.8
MBPP+ 81.5 — +14.3(官方口径)
LiveCodeBench 40.1 DeepSeek 31.9 +8.2
RepoQA 91.7 — —
ChineseSimpleQA 落后 DeepSeek 反超 —
InfiniteBench 落后 DeepSeek 反超 —
全栈代码基准 落后 Hy3-preview-Base 更好 —

三条必须写清的前提:

其一,全部为厂商自测,无第三方独立复现。 对照名单和评测管线都是发布方自己定的,这在这类发布里是常态,但引用时必须带这个前提。

其二,比较对象全是 Base 模型。 MMLU 93.3 是一个预训练终点、没有指令微调的模型的五样本分数。它能拿到这个分,靠的是 in-context learning,不代表它听得懂指令。这个分数不能和任何 chat 模型直接比。

其三,反超的项目有规律。 DeepSeek 在 ChineseSimpleQA(中文知识密度)和 InfiniteBench(超长上下文)上反超,Hy3 在全栈代码上更好。这恰好是三种不同的能力维度:中文语料覆盖、长上下文外推、仓库级代码。文心在"标准学术基准"上优势明显,在"贴近真实工程的长上下文与仓库级任务"上并没有。

这个分布有解释力:33.5 万亿 token 的预训练数据"着重加强那些事后难以补足的能力,如仓库级代码与长上下文理解"——这是官方自己的话。也就是说,它已经把重点放在这些方向上了,反超依然存在,说明对手在这些方向上的积累更厚。


九、Base 的边界:哪些能力必须在预训练解决

官方在讲数据时有一句话值得单独拎出来:

预训练数据决定了后续一切训练所依托的能力底座,因此语料着重加强那些事后难以补足的能力,如仓库级代码与长上下文理解。

"事后难以补足"这五个字,是一条可以拿来做判断的标准。

任何能力,可以按"改变它需要多少分布内的新样本"来分档:

能力类型 例子 补足成本 谁来解决
世界知识与事实密度 常识、学科知识、多语言词汇 需要海量分布内样本 只能在预训练
长上下文建模 1M 序列上的注意力与检索 需要长序列训练数据 只能在预训练(外推有限)
跨文件依赖理解 仓库级代码、多文档一致性 需要真实工程语料 主要在预训练
指令遵循 听懂"用三句话总结" 数千到数万条示范 后训练可解决
输出格式 JSON、Markdown、特定模板 数百到数千条示范 后训练可解决
领域术语与话术 行业黑话、客服口径 数百条示范 后训练可解决
语气与人格 简洁、专业、活泼 数百条偏好数据 后训练可解决

分界线在第三行和第四行之间:上三行需要在预训练阶段把分布铺进去,下四行只需要少量示范。

这个划分能解释第八节那张表里的一处现象。DeepSeek 反超的两项——ChineseSimpleQA(中文事实问答)和 InfiniteBench(超长上下文)——恰好都在"只能在预训练解决"的那三行里。而文心领先的项目集中在 MMLU、MMLU-Pro 这类标准学术知识基准,也在那三行里,但属于"知识密度"这一档,可以通过堆高质量语料在较短时间内追平。

所以那张对比表真正说明的是:两家的预训练数据分布不同,不是一个比另一个强。 一家把中文事实和超长上下文铺得更密,一家把标准学术知识和代码铺得更密。

这对使用者的实际含义很直接:

  • 你的场景缺的是知识与长上下文(比如要读完整套法规、整个代码仓库、多年度财报)→ 这个底座帮得上,因为这部分它已经铺进去了,你省掉的正是最难补的那一段。
  • 你的场景缺的是格式与流程(比如要严格输出固定 JSON、要按客服话术回答)→ 任何 Base 都差不多,这类能力几百条示范就能教会。这种情况下,直接拿一个现成的 chat 模型做蒸馏,成本远低于自己走 SFT + RL。
  • 你的场景缺的是某个垂直领域的知识(比如特定行业的规范、内部文档)→ 要看量级。几千条文档靠 RAG 就够,上百万条才值得动预训练或继续预训练。

这就是"开源 Base"这个选择的真实价值所在:它把最贵、最难补的那一段交给你,同时把最便宜的决策权也交给你。 你要判断的是自己缺的到底是哪一段。


十、许可与部署:三道不能忽略的约束

第一道:这是一份自定义许可,不是 Apache。

文心 4.5 是 Apache 2.0,5.5 Flash Base 换成了「ERNIE 5.5 Flash Base Model License Agreement v1.0」。三条会直接卡住工程决策:

条款 内容 工程影响
地域 欧盟、英国、韩国不在授权范围内 这些区域的节点不能用、不能改、不能分发
商业门槛 连续 12 个月相关收入 ≤ 5000 万美元免费,需事先声明并标注 Powered by ERNIE 要在产品里加归属声明
超线 超过 5000 万美元需百度书面授权 大厂需走商务流程
用途限制 禁止用该模型或其输出去改进其他不相关的 AI 系统 不能用它产出蒸馏数据训自家模型

最后一条影响最大,也最容易被忽略——如果你打算拿它的输出去训练自己的模型,这在许可上是明确禁止的。 想做蒸馏的团队要先确认这一点。

第二道:部署门槛不是"几张卡",是"要不要上一台多卡机"。

【推算】权重体积按 总参数 × 每参数字节 估算:

精度 权重体积 说明
BF16 约 560 GB 8×H100(640GB)勉强装权重,留不出 KV
FP8 约 280 GB 4×H100 可装权重,8 卡配置从容

官方给了 vLLM 与 SGLang 两条推理路径,英伟达也提供了微调参考流程。结合第三节那个 KV 只有标准 15% 的结论,FP8 + 8 卡是这套东西比较现实的起点。

第三道:Base 不是成品,你还要自己走两段路。

要把它变成能对话的东西,至少还要 SFT 和 RL 两段。官方说后训练版 ERNIE 5.5 Flash"将随后推出",但没有给日期。

所以现在拿到它,合理的预期是:这是一份可以省掉预训练成本的起点,不是一份可以直接部署的产品。 预训练 33.5 万亿 token 的成本省下来了,中训练和后训练的活还得自己干——而这恰恰是最需要领域数据和工程经验的部分。


十一、关键要点

  1. 开源的是 Base,不是 Chat。 预训练终点权重,未做中训练与后训练,下载下来只会续写。所有"同尺寸 SOTA"分数都建立在这个前提下,不能与任何 chat 模型直接比。

  2. Base 的边界可以按「补足需要多少分布内样本」来划。 世界知识、长上下文建模、仓库级代码依赖必须在预训练铺;指令遵循、输出格式、领域术语、语气,几百到几万条示范就能教。上三行决定「能不能」,下四行决定「多好用」——这条线决定你到底该不该碰 Base。

  3. 37 层压缩 + 6 层全看,是这份设计最核心的一刀。 43 层里 37 层 HCA 只保留 128 倍压缩视图,6 层 MLA 保留全 token 精细访问并配 DSA 稀疏注意力。43 ÷ 7 ≈ 6,与"每七层留一层"的规则吻合。

  4. KV cache 压到标准配置的约 15%。 按"37 ÷ 128 + 6"算得 6.289 个单位,对 43 个单位是 14.6%——反过来说,全 token 方案是它的 6.8 倍。这个估算未计入 MLA 自带压缩,所以 14.6% 是上限。

  5. 头维度按计算量反向分配。 HCA 层用 512 维宽头(压缩后序列计算量小,宽头便宜),MLA 层用 256 维窄头(逐 token 计算量大,必须收紧)。多数模型全模型统一 head_dim,这里按层反向匹配,几乎零成本。

  6. 门控省 75% 参数是结构必然,不是实测。 latent 维度 4096 → 1024,线性投影参数 16.78M → 4.19M,正好 75%。真正值得记的是官方那句"消融效果反而提升"——门控只需要低维信息。

  7. Multi-Router 是唯一零成本的改进。 多个独立 sigmoid 路由器打分,专家只要被某一个强烈看好就能入选,单次误判不再决定结果。激活专家数、FLOPs、通信量与单路由器完全相同,提升集中在中深层。

  8. ECHO 一物三用。 复用主干最后一层预测后续 token,省掉 MTP 模块、提升推理与代码能力,还白得一个投机解码草稿模型——且只训练单步,多步起草质量就优于辅助 MTP。

  9. 128K 是原生训练长度,1M 是微调推理扩展。 差 8 倍,扩展方法未披露。1M 区的实际质量必须自己测,不能按"标称支持"直接用。

  10. 那 6 项反超有规律。 DeepSeek 在 ChineseSimpleQA 与 InfiniteBench 上反超,Hy3 在全栈代码上更好——对应中文语料覆盖、长上下文外推、仓库级代码三个维度。文心在标准学术基准上优势明显,在贴近真实工程的长上下文与仓库级任务上没有。

  11. 许可比上一代收紧,且禁止蒸馏。 欧盟、英国、韩国不在授权地域;年收入 ≤ 5000 万美元需声明并标注 Powered by ERNIE;超过需书面授权;禁止用模型或其输出去改进其他不相关的 AI 系统——想做蒸馏的团队要先把这一条确认掉。

  12. FP8 + 8 卡是比较现实的起点。 BF16 权重约 560GB,8×H100 的 640GB 勉强装权重不留 KV;FP8 约 280GB,4 卡可装、8 卡从容。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。