1. 为什么这篇论文值得认真读
如果要我用一句最朴素的话概括这篇论文:
它让同一个大模型“先用前几层快速猜,再用后几层批量核对修正”,从而在不引入第二个草稿模型的情况下实现明显加速。
这件事看起来像“推理技巧”,但本质上是训练与部署的联合设计。
今天大模型推理的核心痛点是:
- 每生成一个 token,通常都要走完整网络深度;
- 自回归导致串行瓶颈,无法像训练时那样大规模并行;
- 延迟和成本都很高;
- 多模型 speculative decoding 虽然有效,但显存与工程复杂度上去了。
LayerSkip 的价值在于它不是简单“后处理加速补丁”,而是三步联动:
- 训练阶段让模型早层更有预测能力;
- 推理阶段允许早退层先草拟 token;
- 用同一模型剩余深层做校验修正,并复用缓存减少额外开销。
论文给出的代表性速度收益是:
- CNN/DM 最高 2.16×;
- coding 最高 1.82×;
- TOPv2 最高 2.0×。
如果你是系统工程师,这篇论文最重要的不是“2.16×这个数字”,而是它提出了一个更有长期价值的问题:
我们能不能在训练时就把“可加速推理”写进模型能力结构里,而不是等部署时硬抠?
这是一个方向性问题。LayerSkip 给出了一个可行答案。
2. 前置知识:理解这篇论文前需要知道什么
这一节我按“懂一点电脑、但没做过大模型”的标准讲。
2.1 为什么大模型推理这么贵
大模型像一个很长的流水线。每一层都要做大量矩阵运算。
你让它写一句话,它不是一次性写完,而是一个词一个词往外吐。每吐一个词,通常都要把整个深网络再跑一遍。
所以成本来源不是单点,而是“三重叠加”:
- 模型层数深;
- 序列越来越长;
- 生成是串行过程。
这就是为什么大家都在研究“每个 token 少算一点”。
2.2 什么是自回归解码
自回归就是:
- 先预测第一个 token;
- 把它拼回输入;
- 再预测下一个;
- 反复进行。
它的优点是稳定、泛化好;缺点是慢。
2.3 什么是 speculative decoding(猜测式解码)
经典 speculative decoding 一般是两模型:
- 小草稿模型先猜一串 token;
- 大模型并行验证这串 token;
- 能接受的就直接收下,冲突处再修正。
好处:通常比“每个 token 都让大模型慢慢写”更快。
代价:你要维护两套模型和缓存,显存与工程复杂度都上升。
2.4 什么叫 early exit(提前退出)
大模型有很多层。提前退出就是“走到中间某一层就不往后走了,直接解码”。
直觉上会更快,因为少算了很多层。
问题是:普通模型训练时只关心最后一层输出,中间层并不一定“会答题”,所以早退常常会掉质。
2.5 KV Cache 到底在做什么
KV Cache 是注意力机制的历史缓存。
你每生成一个新 token,不需要把前面所有 token 的键值再重算,可以直接拿缓存复用。
在工程上它非常关键:
- 决定了很多显存消耗;
- 决定了推理速度上限;
- 也是多模型 speculative decoding 复杂化的主要来源之一。
2.6 延迟、吞吐、显存占用不是一回事
这三个指标经常被混着讲:
- 延迟(Latency):一条请求多久完成;
- 吞吐(Throughput):单位时间处理多少 token/请求;
- 显存/内存占用(Memory Footprint):部署要多少资源。
某个方法可能提速但显存更大;也可能显存友好但延迟一般。LayerSkip 的优势在于它尝试同时兼顾“速度 + 单模型内存友好”。
3. 论文要解决的核心问题(精确定义)
本文的问题可以严谨写成:
标准大模型解码每 token 走全层,延迟高。纯 early exit 虽快但常掉质。传统 speculative decoding 能保质提速,但通常需要额外 draft 模型与更大内存/工程复杂度。能否通过训练改造,让同一模型早层做 draft、晚层做 verify,并利用缓存复用实现高效推理?
拆成三个子问题:
子问题 A:中间层默认不擅长直接解码
没有专门训练时,中间层输出不是“可直接当最终答案”的表示。
子问题 B:默认模型把太多“决定性计算”放在深层
即便某些 token 早就能猜对,模型也往往还是走到很后面才稳定输出。
子问题 C:两模型 speculative decoding 的部署成本高
两模型意味着:
- 两套权重、
- 两套缓存逻辑、
- 更复杂服务编排。
LayerSkip 的目标是:单模型里把这三件事一起解决。
4. 一段话看懂 LayerSkip
LayerSkip 的核心是“训练和推理一起改”:
- 训练时对层做结构化 dropout(浅层小、深层大),逼模型别过度依赖后层;
- 同时加 early exit loss,让同一个 LM head 学会从多层表示解码;
- 推理时先在前 E 层自回归草拟,再用后 L-E 层并行核对修正;
- 由于 draft 和 verify 共用同一模型前缀层,缓存可复用(KVQ cache),显存与延迟压力更可控。
一句话:把“深度”从固定成本变成可调度资源。
5. Figure 1 全流程拆解:训练—推理—校验
Figure 1 是整篇论文最关键的总图。
它明确给出三段式闭环:
- 训练(layer dropout + early exit loss);
- 早退推理(前 E 层就出 token);
- 自校验推理(后层验证并纠正)。
我很喜欢这张图的原因是:它不是在讲一个小技巧,而是在讲一个端到端可运行系统。
很多论文只说“我有个模型结构想法”,但不告诉你如何落到服务。LayerSkip 这点做得很好:
- 训练目标直接面向推理可加速;
- 推理算法又回头利用训练塑造出的早层能力;
- 最后通过缓存复用把系统成本打下来。
这才是“工程论文”该有的闭环。
6. Figure 2 全流程拆解:为什么作者相信“早层有价值”
Figure 2 用了一个 HumanEval 的代码补全样例,逐层观察 token 预测变化。
作者看到几个关键现象:
- 很早层预测通常不靠谱;
- 后层逐渐收敛到最终 token;
- 有些 token 在最终层之前就已经预测正确;
- 中间层会“犹豫/反复改主意”。
论文里给了一个非常具体的数字:在示例中,平均一个 token 需要 23.45/32 层才稳定。
这意味着什么?
- 哪怕你有完美“何时退出”判定器,默认模型也只能省一部分算力(大约 26% 上限);
- 想更大幅提速,必须让模型本身变得“更早可判定”。
这就是 LayerSkip 的训练改造动机:
不是只做退出策略,而是让模型学会“早点把该算明白的事算明白”。
作者还指出一个很有趣现象:看似简单 token(比如 for 循环开头)在默认模型里也经常需要走完全部层。这种“浅层能力浪费”正是可优化空间。
7. 方法第一部分:Layer Dropout(分层随机跳层训练)
7.1 直觉
普通 dropout 是“神经元级随机失活”。LayerSkip 的 layer dropout 是“层级随机跳过”。
关键不是“跳层”本身,而是跳层概率设计:
- 浅层掉得少;
- 深层掉得多。
这等于在训练时持续给模型施压:
后层可能不在,你必须在前层把信息组织得更可用。
7.2 公式
论文把第 l 层在训练步 t 的更新写为:
$ x_{l+1,t}=x_{l,t}+M(p_{l,t})f_l(x_{l,t}) $
其中 M(p) 是伯努利门,按概率关闭该层贡献。
每层 dropout 概率:
$ p_{l,t}=S(t)D(l)p_{max} $
pmax:最大 dropout 强度;D(l):层深度缩放;S(t):时间课程缩放。
作者采用“深层指数增大”的 D(l),使最后层 dropout 最大。
7.3 为什么越深层 dropout 越大
如果你各层一视同仁地 dropout,只能得到一般正则化效果,不会定向提升“早层可解码性”。
LayerSkip 的目标非常明确:推理时希望前几层能先给出可用草稿。所以训练也要朝这个方向施压。
附录 Figure 12 也给了支持:在平均 dropout 相同的前提下,指数型层间分配比常数分配训练损失更优。这说明它不是拍脑袋。
7.4 为什么从零预训练要用时间课程
论文区分两类场景:
- 从已有模型继续训练/微调:
S(t)=1即可; - 从零预训练:需要时间课程(逐步增强),否则训练不稳或效果差。
这是很实用的经验结论。因为随机初始化时网络还没形成稳定特征,太早强推结构化丢层容易把优化搞崩。
8. 方法第二部分:Early Exit Loss(共享 LM Head)
8.1 为什么中间层直接解码会差
标准 LM head 主要被训练去读最后层表示。中间层表示即便“有信息”,也未必能被同一个头直接映射成正确 token。
所以 early exit 需要专门训练信号。
8.2 总损失函数怎么构建
论文把总损失写成多层 CE 的加权和:
$ J(X,Y,t)=\sum_{l=0}^{L-1}\tilde e(t,l)J_{CE}(g(x_{l+1}),Y) $
这里 \tilde e(t,l) 由两部分决定:
- 课程掩码
C(t,l)(当前步启用哪些层的早退监督); - 层权重
e(l)(后层权重更大)。
论文里后层惩罚更重,目的是避免“只顾早层,最后层退化太多”。
这个平衡是合理的。
8.3 轮转课程 vs 渐进课程
作者给了两种早退损失课程:
- Rotational(轮转):每步只激活部分层的退出监督,循环覆盖全层;
- Gradual(渐进):逐步从后往前打开更多层监督。
为什么需要课程?
因为“所有层、每步都监督”会带来两个问题:
- 训练太慢;
- 最后层准确率可能下降。
这点很工程现实,不是学术花活。
8.4 共享 LM Head 的工程价值
很多早退工作会给每层挂单独 head。LayerSkip 选择“全层共用一个 LM head”。
优点非常直接:
- 参数更少;
- 训练显存更省;
- 推理逻辑更简单;
- 部署维护成本更低。
我认为这是这篇论文最“可上线”的设计决策之一。
9. 推理第一部分:纯 Early Exit
最基础模式很简单:
- 每个 token 只跑前 E 层;
- 直接接 LM head 解码。
Figure 4 给出成本对比:
- 标准推理:每 token 约 L 层成本;
- 早退推理:每 token 约 E 层成本(E<L)。
但纯早退的问题同样明显:层数越浅越快,质量通常掉得越多。尤其是生成任务,错误会累积。
所以 LayerSkip 的真正落地点不是“纯早退”,而是“早退 + 自校验”。
10. 推理第二部分:Self-Speculative Decoding
10.1 Self-Drafting(自草拟)
第一步,使用同一模型前 E 层自回归生成 d 个 draft token。
这里没有外部 draft 模型。等价于“同一个模型的浅层子网”当草稿器。
10.2 Self-Verification(自校验)
第二步,用剩余 L-E 层对 draft 序列做并行验证:
- 逐位比对 draft 与 verify;
- 接受最长一致前缀;
- 在分歧点采用验证结果纠正。
这和传统 speculative 的逻辑一致,但全部在同一模型里完成。
10.3 KVQ Cache 复用
这是论文系统贡献核心之一。
因为 draft 与 verify 共享同一模型前缀层顺序,作者实现了:
- Single KV Cache:前缀层 KV 可直接复用;
- Exit Query Cache:保存退出层查询信息,让验证阶段继续后层计算时少做重复工作。
两者合并为 KVQ cache。
这不是小优化,而是决定“单模型方案是否真的省”的关键。
10.4 与传统 Draft&Verify 的关键差异
相较于两模型 speculative:
- LayerSkip 只需要一个模型;
- 显存占用更友好;
- 前缀计算与缓存可复用更自然;
- 但前提是你得按 LayerSkip 训练过。
相较于“跳过中间块”的自推测方法,LayerSkip 强调顺序一致前缀带来的复用优势。
11. 实验设置
11.1 四类训练范式
论文不是单场景验证,而是覆盖了四个训练范式:
- Continual pretraining:在预训练模型上继续训练(含 Llama2 7B/13B,后续还测了 Llama3 8B、Llama3.2 1B);
- Pretraining from scratch:从零训练 1.5B 与 7B;
- Code finetuning:Llama1 7B 在代码域继续微调;
- Task-specific finetuning:在 TOPv2 上任务微调。
这个覆盖面是加分项,说明方法不只是某个特定设置下的“巧合”。
11.2 模型规模与硬件
附录给出较完整配置。涉及:
- 1.5B / 7B / 13B,24~40 层;
- A100 30GB / 80GB 与 H100;
- 多组 batch、步数、学习率配置。
这说明实验投入是严肃的,不是玩具级。
11.3 任务与指标
评估覆盖分类任务与生成任务:
- 分类类:BoolQ、PIQA、SIQA、HellaSwag、RACE、MMLU 等;
- 生成类:NQ、TriviaQA、GSM8K、MATH、HumanEval、MBPP;
- 生成系统指标:CNN/DM、XSUM、TOPv2 的 EM/ROUGE、速度与 acceptance。
指标组合是合理的,因为“是否可部署”不能只看准确率,也必须看 speedup 和时延。
12. 结果解读(带具体数字)
12.1 早层可用性显著提升
Figure 6 / Figure 8 / Figure 10 的共同趋势是:
- baseline 早退到中层后,很多生成任务快速崩;
- LayerSkip(尤其 LD+EE)显著抬升中层可用性;
- 最后层通常只轻微回退或接近持平(参数调得合适时)。
论文还强调了一个现象:
- 分类任务早层看起来“没那么糟”;
- 生成任务更容易累积错误,所以更能体现 LayerSkip 价值。
举个文中点名例子:Llama2 7B 的 NaturalQuestions 在 baseline 中层可从 25.1% 掉到 0%;LayerSkip 同条件下可回到约 4%。
12.2 Continual pretraining 结果
Table 3 给出较核心的生成加速结果。
在 CNN/DM 上:
- Llama2 7B:Self-Spec 可到 1.86×,ROUGE-2 基本保持(0.079→0.078);
- Llama2 13B:Self-Spec 可到 1.81×,ROUGE-2 基本保持(0.098→0.098)。
在 XSUM 上:
- Llama2 7B:约 1.54×;
- Llama2 13B:约 1.34×;
- ROUGE-2 行为总体接近 autoregressive。
在同表 coding 相关设置下,也出现 1.6×~1.8× 级别收益,同时保持较好的质量。
作者还与 prior Draft&Verify 对比:
- CNN/DM 上他们更快(文中对比给出约 1.81× vs 1.56× 量级);
- XSUM 上略慢(约 1.34× vs 1.48×)。
这很真实,说明它不是“全场景无脑碾压”,而是整体上有竞争力。
12.3 从零预训练结果
Table 4 报告从零训练 26B tokens 的结果:
- 1.5B 模型在 CNN/DM 上 Self-Spec 约 1.76×;
- 7B 模型在同设定达到论文 headline 2.16×。
这一组结果对我来说价值很高:说明“推理友好深度结构”可以在预训练阶段被塑造,而不是只能后期修补。
12.4 代码任务微调结果
Table 5 是我很关注的一表,因为代码任务对 token 错误非常敏感。
基线 autoregressive 在该设置下约 85.9%。
纯 early exit 的质量-速度权衡明显:
- E=18:约 83.3%;
- E=12:约 79.4%;
- E=6:约 62.9%;
层越浅越快,但掉得也越多。
Self-Spec 的意义是把质量拉回来:
- 文中总结为“可在几乎不掉质量下拿到明显加速”;
- 速度可达 1.82× 量级。
12.5 TOPv2 任务微调结果
TOPv2 是严格 exact match 任务,容错很低。
论文报告 Self-Spec acceptance(不同退出层):
- E=6:76.0%;
- E=12:约 97.2% / 97.6%(文中与表格呈现有轻微写法差异,量级一致);
- E=18:98.9%;
并达到 2.0× 速度提升。
这说明在结构化任务上,验证环节可以高效“兜底”。
12.6 CPU 结果与缓存复用消融
附录 Table 11 给了 CPU 上 TOPv2 的实测,非常有参考价值:
- Autoregressive:EM 85.39,约 165 ms/token;
- Early Exit(E=6):可快到 44 ms/token,但 EM 掉到 29.8;
- Self-Spec(E=6):EM 82.9,约 87 ms/token;
- Self-Spec(E=12):EM 82.9,约 104 ms/token;
- Self-Spec(E=18):EM 82.9,约 134 ms/token。
这组数据非常清楚地证明:
- 纯早退快但太伤质量;
- 自校验把质量拉回,同时仍显著快于全量自回归。
再看 Table 7(KVQ 复用消融):
- 作者报告在不同任务上可节省约 9–20 ms/token。
这证明 KVQ 不是“概念加分项”,而是有实测收益。
13. 图表证据逐项复盘
Figure 1
给出完整 pipeline,是全篇路标图。
Figure 2
给出逐层 token 演化证据,证明“默认模型早层潜力不足但并非全无可能”。
Figure 3
把训练视为“共享权重多深度子模型集合”,这个视角很重要。
Figure 4
直观对比 L vs E 的 token 成本。
Figure 5
解释三种解码路径(自回归、传统 speculative、self-spec)的计算与复用差异。
Figure 6 / 8 / 10
给出不同训练范式下 early-exit 曲线,支持“方法可迁移”。
Figure 7 / 9
展示文本样例,直观看到 pure early-exit 的错误如何被 verify 修复。
Figure 11
非常关键:随着训练 token 增加,最后层 PPL 下降是正常的,但中层 PPL 在默认训练下可能显著变差;EE/LD 能缓解。这是方法合理性的强证据。
Figure 12
指数型层 dropout 配置优于常数型配置(在相同平均 dropout 下)。
14. 这篇论文真正强在哪里
我认为有六个硬优点。
优点 1:训练-推理协同设计
不是只改推理,不是只改训练,而是两端耦合优化。
优点 2:单模型自推测,内存更友好
相比两模型 speculative,部署复杂度与显存压力更可控。
优点 3:共享 LM head,工程落地成本低
不需要给每层挂独立 head,维护与服务更简单。
优点 4:评估覆盖广
continual、scratch、domain finetune、task finetune 都测了。
优点 5:有系统侧实证
CPU 结果 + KVQ 复用消融,使结论更“工程可信”。
优点 6:揭示了深层依赖的训练动力学
Figure 11 不只是加速结果,而是对“为什么默认模型中层难用”给出实证线索。
15. 局限性与边界条件
论文也坦诚写了不足,我补充展开如下。
局限 1:不是即插即用
要取得最好效果,通常需要按 LayerSkip 配方训练/微调过。
局限 2:超参变多
pmax、escale、R、E、d 都要调。调不好会影响最后层质量或收益。
局限 3:最后层精度有回退风险
论文多处提到若设置不当会掉最后层表现。
局限 4:固定退出层并不最优
不同 token 难度不同,固定 E 是工程简化,不是理论最优。
局限 5:不同任务收益差异明显
不是所有任务都能拿到同样加速比。
局限 6:从零训练要调学习率
论文强调了这一点,说明落地成本并非零。
局限 7:acceptance 决定最终收益
草拟质量不够高时,verify 回滚频繁,收益会被吞掉。
16. 可复现性评估
我给这篇论文的可复现性评价是:中上(有代码,有配置,但工程细节仍需经验)。
有利因素
- 开源代码与 checkpoint;
- 附录有训练配置、学习率与架构表;
- 指标定义和任务分类相对清晰;
- 给了 self-spec 伪代码。
复现难点
- 规模实验资源成本不低;
- cache 复用实现细节对框架敏感;
- 不同硬件/内核下速度数字会波动;
- 超参调优需要服务侧观测闭环。
实操建议
若你要复现,不建议直接上最大配置。建议:
- 先在 task-specific finetune 规模跑通;
- 做 E 与 d 的网格扫描;
- 同时看 acceptance、质量、时延三维曲线;
- 再引入 KVQ 复用对照;
- 最后再扩到更大模型。
17. 如果我在 2026 年继续做这条线,会怎么推进
我会优先做五件事。
方向 1:动态 per-token 退出层
当前固定 E 过于粗粒度。可以根据 token 置信度或 draft-verify 分歧信号动态决定深度。
方向 2:与量化联合
LayerSkip(减有效深度)与量化(减数值成本)是互补关系,理论上可叠加。
方向 3:与现代服务引擎融合
在 vLLM 类分页缓存框架中验证 KVQ 复用收益是否稳定可复现。
方向 4:中层蒸馏增强
在现有 EE 基础上加中层 logits/hidden 蒸馏,可能进一步提高 acceptance。
方向 5:按请求类型自适应策略
低风险请求走激进早退,高风险请求提高 E 或降低 d,实现质量-成本分级服务。
18. 工程落地启发(可执行)
给做推理系统的同学,我提 8 条可直接落地的建议。
- 把深度当成调度资源,而不是固定结构。
- 训练目标要提前为推理优化让路。
- 单模型方案优先评估缓存复用潜力。
- 一定要单独评估生成任务,不要只看分类任务。
- 早退单独使用风险大,尽量配验证环节。
- acceptance 是核心线上指标,必须持续监控。
- 质量回归要重点盯最后层与中层分化趋势。
- CPU 场景也值得测,很多边缘部署更看重它。
19. 总结结论
我的最终判断:
LayerSkip 是一篇“思路正确、工程意识强、证据比较扎实”的推理效率论文。它真正有价值的地方,不是某个孤立加速数字,而是把训练阶段改造成可服务化友好结构,让同一模型完成“草拟 + 校验 + 缓存复用”的闭环。
它不是无代价方案:
- 需要额外训练/微调;
- 需要调参;
- 不同任务收益不同。
但它很可能是未来“训练-部署联合优化”路线中的一个重要基线。
如果你关注 Efficient ML,尤其是“怎样在不显著牺牲质量下把推理做快”,这篇论文值得你认真读、认真复现。
20. 参考文献
- Elhoushi et al. LayerSkip: Enabling Early Exit Inference and Self-Speculative Decoding. ACL 2024.
- Leviathan et al. Fast Inference from Transformers via Speculative Decoding. 2023.
- Fan et al. Reducing Transformer Depth on Demand with Structured Dropout. 2020.
- Schuster et al. Confident Adaptive Language Modeling. 2022.
- Zhang et al. Draft & Verify / Self-speculative decoding related work. 2023.
21. 附录 A:常见问答
Q1:这是不是“删层剪枝”?
不完全是。它不是把层永久删掉,而是推理时先用前层快速生成,再让后层验证修正。模型结构本身还在。
Q2:这和量化是不是一回事?
不是。量化是“每次计算更便宜”;LayerSkip 是“很多 token 少走几层 + 校验修正”。
Q3:为什么不用第二个小模型做草稿?
可以用。传统 speculative 就这么做。LayerSkip 的优势是单模型缓存复用更自然、内存更友好。
Q4:是不是只 early exit 就够了?
通常不够。纯 early exit 质量容易掉。self-verify 才是可部署关键。
Q5:我先看哪几张图最有效?
建议顺序:
- Figure 1(总流程)
- Figure 2(动机)
- Figure 5(self-spec 机制)
- Figure 6/8/10(主结果)
- Figure 11(训练动力学)
Q6:最值得工程团队学到的一点是什么?
训练要为服务场景服务。不是训练结束再“补丁式”提速,而是从训练时就塑造可加速结构。
22. 附录 B:证据清单
- 问题定义完整: 是(速度、质量、内存/复杂度三者兼顾)。
- 前置知识完整: 是(自回归、早退、speculative、缓存)。
- 方法讲清: 是(LD、EE、Self-Spec、KVQ)。
- 公式覆盖: 是(层 dropout 概率、总损失、课程机制)。
- 关键图讨论: Figure 1/2/3/4/5/6/8/10/11/12。
- 关键表讨论: Table 3/4/5/7/11 + Table 6 的 acceptance 核心结论。
- 具体数字: 是(23.45/32、2.16×、1.82×、2.0×、CPU ms/token、acceptance)。
- 局限性: 是(需改训练、调参复杂、固定 E 非最优等)。
- 可复现性: 是(代码可用,附录配置较全,仍有工程门槛)。
- 工程启发: 是(深度调度、缓存复用、acceptance 监控、分级策略)。
评审写于 2026-04-15。