XMerge 砍四层:七模型里六个 CORE 第一,十四格零崩盘

2026-09-23

PayPal 的 XMerge 用幅度与夹角选出安静层,再把两层映射重拟合进一个幸存块。七个 0.5B–8B 模型砍四层时,CORE 六比一领先,十四个评测格子零崩盘,推理不加参数。

这篇在解决什么

推理时 Transformer 一层接一层串行,深度直接变成延迟和 KV cache 流量。整层砍掉的好处是服务接口不变:隐层宽度、注意力、词表都还在,浅一层的标准 Transformer 能跑在现有基础设施上。宽度剪枝要改张量形状,非结构化稀疏要专用核,深度压缩躲开这两件事。

代价是质量掉得不均匀,而且不同方法对「砍哪一层、砍完怎么吸收」意见不合。有的直接丢掉,有的把相邻参数解析折叠或平均,有的再插一个新模块去补。PayPal AI 把任何深度压缩写成两步:\(C = M \circ S\)。选择器 \(S\) 决定去掉哪一块,结构算子 \(M\) 决定邻居怎么吸收。失败也分成两种:选中了不该动的层,或选对了却没保住两层合在一起的映射。

方法

XMerge 把两步都写死。

选择器不用任务标签。相对幅度 RM 看一层把隐状态往外推了多少;夹角轴沿用 ShortGPT 的 Block-Influence,看方向转了多少。两轴各自在合格层上标准化,取 \(sl = \max(zl^{RM}, zl^{BI})\),挑最小的。用 max 不用平均,是为了不让一轴很小把另一轴的大变化藏住,也没有可调权重。一块层必须两轴都安静才算可砍。

合并时留下相邻两层里的一块幸存标准块,用 300 步 Adam 把注意力、MLP 和归一化全部重拟合,目标是匹配原来两层的输出边界,损失是对 WikiText-2 训练集激活的 MSE。固定超参:学习率 \(10^{-5}\),batch 16,128 条长度 512 的序列,所有模型同一套,不加推理参数,也不做端到端微调。关掉这 300 步,方法就退化成「选完直接丢」,分数会掉到已发表基线下面。增益主要来自重拟合,不来自选层。

\(k>1\) 时选择顺序按原模型算一次,每次合并后刷新重构目标。跨轴融合在 7 个骨干里有 5 个与纯 RM 字节级相同,只在 Qwen3-0.6B 和 Qwen3-1.7B 上改了层集合,而那两处 RM 与 BI 几乎不相关。

结果

评了 Llama-3.2-1B/3B、Llama-3-8B、Qwen2.5-0.5B、Qwen3-0.6B/1.7B/8B,对照 ShortGPT、LaCo、MKA、SWM、CoMe,砍层层数 \(k \in \{1,2,4\}\)。主指标 CORE 是 22 项任务的中心化聚合,另报 zero-shot MMLU 和 WikiText-2 测试困惑度。Setting A 只比构造出来的检查点,不做后续治愈。

\(k=4\) 时 XMerge 在 7 个骨干里 6 个 CORE 第一、6 个 MMLU 第一、5 个两项同时第一。相对稠密模型,\(k=4\) 平均保住 69% 的 CORE,最强合并基线约 60%,ShortGPT 约 54%。\(k=1\) 时 XMerge 与 ShortGPT 都约 94%,温和压缩下简单丢层就够用,优势出现在砍得更狠的时候。

模型XMerge CORE最强基线
Llama-3.2-1B0.201MKA 0.130
Llama-3.2-3B0.406ShortGPT 0.373
Llama-3-8B0.534ShortGPT 0.528
Qwen2.5-0.5B0.178ShortGPT 0.168
Qwen3-0.6B0.179MKA 0.165
Qwen3-1.7B0.271MKA 0.289
Qwen3-8B0.310SWM 0.262

任务级 bootstrap 里,三处最大优势的 95% 区间不含零;其余窄胜以及 Qwen3-1.7B 的落败,区间都穿过零,应按平局读。六胜一负的符号检验 \(p=0.06\)。困惑度上,只有 XMerge 与 LaCo 避开了 \(10^2\)–\(10^4\) 量级爆炸,且 XMerge 在 6/7 上低于 LaCo。

14 个(模型 × 零样本/上下文)格子里,XMerge 是唯一从不崩盘的算子(中心化 CORE 从不低于 0.10),最差一格仍是 +0.172,两套体制都是 7/7 进前二。CoMe 崩了 7 格。消融里,固定选择只比丢层与重拟合:Llama-3.2-3B 从 0.344 到 0.406,Qwen3-0.6B 从 0.136 到 0.184。校准只在 Llama-3-8B、\(k=4\) 上探了一次,XMerge 的 ECE 相对稠密模型 +0.010,MKA 是 +0.110。

同深度下 batch-1 解码加速与方法无关,均值约 1.04/1.09/1.17×(k=1/2/4)。构造要多花梯度时间,约数分钟到 4.4 小时,按测得的加速大约 1.9k–24k 次 256 token 请求后收回。

为什么重要

想用现有 serving 栈、又想少几层延迟的人可以直接试:输出仍是普通的 \(L-k\) 层 Transformer,不用稀疏核,也不用新模块。标定数据只要 WikiText-2,不要下游标签。

这是渐进改进,而且改进集中在砍得比较狠的时候。\(k=1\) 时 ShortGPT 经常打平或更好。重拟合是本地、无标签的,更像后训练量化那一类校准,不是一次端到端恢复。8B 封顶反映的是单卡 40 GB 分区预算,不是方法本身的上限。

局限与存疑

单一种子 42,任务 bootstrap 管的是 22 项任务的抽样噪声,不管重构随机性。模型只覆盖稠密 decoder-only 的 Llama/Qwen,0.5B–8B,没有 MoE、encoder–decoder、多模态。WikiText-2 测试困惑度与校准语料同域。合并方向启发式 \(S{patch}\) 没有消融。

XMerge 不是处处第一:Qwen3-1.7B 的 CORE 输给 MKA,Qwen3-8B 的困惑度不是最低。重构目标是逼近稠密模型的隐状态,CORE、MMLU、困惑度都部分在量同一件事,三指标同向不能当成三次独立证实。校准只做了一个骨干,也没有测幻觉或拒答。Setting A 故意不给合并基线它们论文里的 LoRA/蒸馏,和「作者原版流水线」不是同一场比赛。

术语

原文与代码

社区讨论

全部论文解读