LCPO
Paper · ICLR 2026 · arXiv 2508.10164v2

用 0.8k 样本、50 步,把 7B 推理模型的 CoT 砍掉一半

大推理模型在简单题上也会生成几千 token 的思维链。这篇论文不跑在线 RL,也不训练奖励模型:它从模型自己的 16 次采样里挑出「最短的正确」和「最长的正确」组成偏好对,再用一个不含 NLL 项的 Bradley-Terry 目标做 50 步离线训练。代价约为 10.4 A100·h(7B),换来多个基准上约一半的长度削减。

Bin Hong · Jiayu Liu · Kai Zhang · Jianwen Sun · Mengdi Zhang · Zhenya Huang arXiv 2508.10164v2 ↗ 代码 ↗
TL;DR · 30 秒抓住核心

论文先回答 RQ1:模型自己的生成空间里存在更短但同样有效的路径。在 LIMR 上每题采样 16 条输出并按长度排序,7B 模型在排序 10 之后性能才明显退化,1.5B 从排序 7 开始退化;排序 0–6 的短轨迹基本稳定(Figure 2a)。

数据侧用平均通过率 s_i 把题目标成 easy / medium / difficult,只拿 easy split 构造偏好对:最短的正确回答为 chosen,最长的正确回答为 rejected(Eq. 2、§3.2)。注意 easy 的定义是 16 次全对(s_i=1),不是「通过率较高」。

算法侧 LCPO 直接比较 chosen / rejected 的序列级 log-odds,不加 NLL/SFT 项,也不用 reference model(Eq. 11)。论文报告 7B 在 MATH-500 上长度 4,223→2,033(相对原始长度 −51.86%),准确率 92.20→91.40(−0.80 个百分点);六基准总计 −1.99 个百分点,不是严格无损。

51.86%
MATH-500 7B 长度削减
4,223 → 2,033 tokens
10.4 A100·h
7B 全流程估算成本
rollout + 训练,TrEff 约 560
+3.54 pp
GPQA-D 7B 准确率变化
48.99 → 52.53
01

长 CoT 的麻烦,是简单题也在过度思考

读完这节,你应该知道两件事:更长的推理轨迹并不更好;模型对难度的感知和真实能力错位。

Figure 1 给了一个 MATH-500 的例子:DeepSeek-R1-Distill-Qwen-7B 用了 5,465 tokens 解一道题,经过 LCPO 训练后的模型只用 1,128 tokens,相对原始长度减少 79.37%(Figure 1)。这是一个样例,不是基准平均;它说明「更短且正确」的轨迹确实存在。

论文进一步在 LIMR 上做系统分析:每题采样 16 条输出,按长度排序,再看「第 r 短的轨迹集合」的整体准确率。Figure 2a 显示,7B 模型在排序 10 之后开始明显退化,1.5B 从排序 7 就开始退化;排序 0–6 的短轨迹,性能基本稳定(Figure 2a)。这是 RQ1 的肯定回答。

核心错位

模型能用约 2,200 tokens 达到 90% 以上准确率,却平均花 7,000 tokens

§3.2 的原话是:模型可以在约 2,200 tokens 内达到 90% 以上准确率,但在同样的任务上平均需要 7,000 tokens 才能完成推理。作者把这称为「perceived difficulty 与 actual capability 的 misalignment」——不是模型不会做,是它觉得自己需要想更久。

Figure 4 把这种错位具体化到 MATH-500 的难度等级:训练前,最简单的 Level 1 平均输出长度反而高于 Level 2 和 Level 3(Figure 4)。简单题消耗更多 token,正是「过度思考」的直接表现。

所以问题不是「把 CoT 截短」这么简单:截断可能删掉必要步骤;而要让模型自己学会在简单题上写短、在难题上保持探索,就需要改变生成分布。论文把约束写得很清楚:在有限数据与有限训练下做到这一点。

02

三条现成路线,各自卡在成本或稳定性

论文的对照不只是「谁更准」,而是「要多少数据、多少算力、是否稳定」。

推理时

CoD / 提示词压缩

不改权重,在 prompt 或生成过程里加长度提示,让模型早点停。成本最低,但 §1 指出这类方法长度下降不稳定,而且经常牺牲推理能力。

在线 RL

L1 / TrEff / ThinkPrune

在 accuracy reward 之外加长度奖励,或设置 token budget 做预算强制。效果强,但需要大规模在线 RL 和复杂训练系统;budget 还要人工预先设定。

离线偏好

DAST

用通过率估计难度、构造偏好数据,再用 SimPO 训练。路线与本文最接近,但 Table 1 里 DAST 需要 150k rollout 数据和 20.6k 训练样本。

Table 1(v2)把数据账摊开:L1 需要 645k 训练样本,TrEff 24.8k,DAST 20.6k;本文方法用 22k rollout 数据、0.8k 训练样本。这里的「Data」是 rollout 数据量,「Train Samples」是实际参与训练的样本量。

方法类型DataTrain Samples
CoDinference-time——
L1RL & budget-forcing645k645k
TrEffRL24.8k24.8k
DASTpreference optimization150k20.6k
Ourspreference optimization22k0.8k

Table 1(v2):不同高效推理方法的数据需求;CoD 不需要训练数据。

这张表把本文的定位说清楚了:它不追求「比在线 RL 更强」,而是问能不能用 0.8k 训练样本做到 50% 以上的长度削减(§1)。答案在 06 节。

03

把「最短的正确」和「最长的正确」放在一起,直接优化长度偏好

方法有两半:用通过率把题目分成 easy/medium/difficult,只拿 easy 构造偏好对;再用一条不含 NLL 项的 BT 损失训练。

3.1 数据:easy 不是「通过率高」,是 16 次全对

论文对每题采样 16 条输出,记 s_i 为这 16 条的平均准确率,然后按 Eq. 2 打标签:

label(qi) = easy if si = 1  ·  medium if 0 < si < 1  ·  difficult if si = 0
Eq. 2(§3.2):标签由 16 次采样的平均通过率决定;训练只用 easy split。

偏好对的构造规则在 Appendix B 里写得更细:easy split 取最短的正确回答为 chosen、最长的正确回答为 rejected;medium split 取最短正确 vs 最长错误,并过滤掉「最长错误比最短正确还短」的题;difficult split 直接取最短 vs 最长,不看正确性(Appendix B)。训练用的是 easy split(§3.2),所以主实验的偏好对全部来自「16 次全对」的题。

s_i
1.00
LABEL
easy
PAIR
最短 correct / 最长 correct
规则模拟
拖动滑块,看 s_i 如何决定标签和偏好对构造规则。
这个模拟覆盖了什么?规则来自 Eq. 2 与 Appendix B

覆盖:Eq. 2 的三档标签;Appendix B 的 easy / medium / difficult 三套偏好对构造规则;medium 的「最长错误短于最短正确则过滤」条件。

未覆盖:真实的 16 条输出、答案正确性判定、rollout 的 temperature 与截断、以及 Table 7 的实际题目数量。滑块只改变「答对次数」,其余变量固定。

手算:16/16 → s = 16/16 = 1.00 → easy;8/16 → s = 8/16 = 0.50 → medium(0<s<1);0/16 → s = 0/16 = 0.00 → difficult。

3.2 目标:用序列级 log-odds 直接比较 chosen 和 rejected

先把偏好优化写成 BT 损失。Eq. 8 是常规形式,ε 设为 0:

−log σ( β rθ(yw|x) − β rθ(yl|x) + ε )
Eq. 8(§3.3.3):Bradley-Terry 损失;论文设 ε=0 以让模型更早收敛。

关键是把 NLL 也写成 BT 形式。论文定义长度归一化的序列概率 pθ(y|x) = exp( (1/|y|) log πθ(y|x) ),于是 NLL 的隐式奖励是:

rθ(y|x) = log( pθ(y|x) / (1 − pθ(y|x)) )
Eq. 10(§3.3.3):序列级 reward;p 是长度归一化后的序列概率。

LCPO 直接把 chosen 与 rejected 的这个 reward 相减,套进 log-sigmoid:

LLCPO = log σ( log( pθ(yw|x) / (1 − pθ(yw|x)) ) − log( pθ(yl|x) / (1 − pθ(yl|x)) ) )
Eq. 11(§3.3.3):LCPO 目标。没有 reference model,没有 reward model,也没有额外的 NLL/SFT 项。

符号照录:v2 的 Eq. 11 在 PDF 与 HTML 里都写作 log σ(...),没有前导负号;同文 Eq. 8 的 BT 损失写作 −log σ(...)。页面按原文转录,不代改符号。

论文的解释是:SFT / ORPO 一类目标里含有 NLL 项,模型会倾向于拟合 chosen 的每个 token,收敛被 NLL 主导,长度偏好反而学得慢(§3.3.2、Appendix D)。LCPO 只保留 BT 部分,直接把「chosen 的序列级 log-odds 高于 rejected」作为优化信号。Appendix D 的结论是:BT 损失提供可预测的收敛条件,NLL 会放大数据对收敛的影响;长度控制需要一个负的 reward 来抵消 NLL。

SFT / ORPO

NLL 项在场

SFT 只拟合 chosen(Eq. 21);ORPO 把 NLL 与 BT 相加(Table 8)。Appendix D 推导出:当 chosen 概率升高后,ORPO 的收敛越来越由 NLL 主导。

LCPO

只留 BT

直接比较 chosen / rejected 的序列级 log-odds(Eq. 11)。没有 reference model,也不需要先训练 reward model;论文称目标「converge rapidly without requiring any hyperparameter tuning」(§3.3.3)。

04

一次离线 rollout,50 步训练,约 10.4 A100·h

这一节只算工程账:数据从哪来、训练多久、花多少算力。

训练数据来自 LIMR:MATH 训练集的一个子集,共 1,389 道题(Appendix A)。每题采样 16 条输出,所以 rollout 总量约 22k 条(Table 1 写 22k;按 1,389×16 复算为 22,224 条)。这一步是离线、一次性的:论文在 Appendix G.4 里强调,偏好数据生成后可以复用,也可以分享。

Table 7(v2)给出 7B 模型的 split 统计:easy 988 题、medium 330 题、difficult 52 题,合计 1,389 题;按 token 占比看,easy 占 56.3%、medium 38.3%、difficult 5.4%。1.5B 模型只列了 easy 488 题(token 占比 19.4%);Table 7 只列 1.5B 的 easy 这一行,原表没有其余 1.5B 行。

ModelSplitQuestionsToken Proportion (%)
7Beasy98856.3
7Bmedium33038.3
7Bdifficult525.4
7Ball1,389100
1.5Beasy48819.4

Table 7(v2):LIMR 上生成的 split 统计;Token Proportion 是各类别贡献的 token 份额,也反映 GPU 推理预算的分配。

训练本身很短:从 1,389 题里取 400 instances,训练 50 步,第 50 步对应 0.4k sampled pairs(Appendix A / Appendix B)。Table 1 和 §1 则写 0.8k training samples;两处单位不同,页面并列(见 07 的对账记录)。训练配置写 3 epochs,但所有方法统一取第 50 步 checkpoint(Appendix B)。

训练配置

4×A800-80G

  • batch size:每卡 2,等效 8
  • context length:2.3k
  • learning rate:5e-6,cosine,warmup 0.1
  • optimizer:AdamW;dtype:bfloat16
  • checkpoint:第 50 步(总计划 3 epochs)
成本

7B 约 10.4 A100·h

Table 11 给出 7B 的估算:LCPO 约 10.4 A100·h;TrEff 约 560,AdaptThink 约 1,792,AutoThink 约 5,760。论文注明 GPU 小时换算有波动,只作量级参考(Appendix G.4)。

这个数字包含 rollout 与训练;rollout 是主要成本,但只做一次。

方法类型GPU hours(A100·h)
AdaptThinkRL~1,792
AutoThinkRL~5,760
TrEffRL~560
Ourspreference optimization~10.4

Table 11(v2):7B 模型成本估算。原文把单位写成 A100*h,并说明换算有波动。

为什么能这么省?因为 LCPO 不需要 reference model,也不需要 reward model;训练只优化 Eq. 11 的序列级 log-odds。相比需要 reference model 的 DPO,这通常意味着少一份模型副本和对应的前向开销 推断(由 Eq. 11 无 reference model 推出)。

05

从 1,389 道题到 50 步训练:整条流水线

图里每一步都对应前文的公式或表号;没有隐藏的奖励模型。

LIMR 1,389 题 MATH 训练集子集(Appendix A) 每题 16 次 rollout 约 22k 条轨迹,temperature 0.6(Appendix B) 按平均通过率 s_i 打标签 easy / medium / difficult 三档(Eq. 2) 只取 easy split 7B 988 题;1.5B 488 题(Table 7) 构造偏好对 最短正确 = chosen · 最长正确 = rejected LCPO:50 步,0.4k 对 无 reference model(Eq. 11、§3.3.3) 输出:更短的 CoT 7B 六基准平均长度削减 54.21%(Table 3)
本页按 §3.1、Eq. 2、Eq. 11、§3.3.3、Table 1/7、Appendix B 重绘的流程示意,不是原文插图。前 5 步是一次性离线 rollout;第 6 步是 50 步训练。

这张图想说明一件事:LCPO 的「训练」只占流程的最后一步,前面是一次性的 rollout 和筛选;没有 reward model,也没有在线策略更新。真正的成本在 rollout,而它只需要做一次(Appendix G.4)。

06

长度砍半,准确率大致守住;最难的不是难题,是简单题

先看主表,再看两个反直觉结果:难度筛选的反向消融,和 OOD 上的长度迁移。

主结果:7B 六基准平均长度 54.21%;1.5B 的 Avg 列写 57.31%

Table 3(v2)是主表。下面只转录 Original 与 Ours 两行;CoD、L1-Exact、L1-Max、TrEff、DAST 行未转录。长度单位是平均生成 token 数,Δ% 是相对原始长度的削减比例。

ModelMATH-500GSM8KMinervaAIME24AMC23OlympiadAvg
7B Original4,2231,6775,92613,4116,9668,789—
7B LCPO2,033−51.86%796−52.53%2,079−64.92%6,892−48.61%3,108−55.38%4,222−51.96%−54.21%
1.5B Original5,6652,4577,21116,35510,16211,715—
1.5B LCPO2,397−57.69%946−61.50%2,596−64.00%8,810−46.13%4,026−60.38%4,921−57.99%−57.31%

Table 3(v2):长度(平均 token 数)与相对原始长度的变化比例;Avg 列是论文报告的六基准平均。表中未列的基线行未转录。

ModelMATH-500GSM8KMinervaAIME24AMC23OlympiadTotal
7B Original92.2091.8136.7651.4687.9756.82—
7B LCPO91.40−0.8092.95+1.1438.97+2.2148.75−2.7186.88−1.0956.08−0.74−1.99
1.5B Original83.0086.2826.8429.1770.6244.66—
1.5B LCPO83.20+0.2085.82−0.4627.21+0.3729.58+0.4170.47−0.1544.81+0.15+0.52

Table 3(v2):准确率(%)与变化(百分点);Total 是论文报告的六基准变化之和。表中未列的基线行未转录。

Table 3 的两个 Total 值:7B −1.99 个百分点,1.5B +0.52 个百分点。7B 并非每个基准都持平:MATH-500 −0.80、AIME24 −2.71、AMC23 −1.09;GSM8K +1.14、Minerva +2.21、Olympiad −0.74。论文的「maintaining reasoning performance」是六项汇总层面的说法,单看 7B 的 AIME24/AMC23 仍有可见下降(Table 3)。

Table 3 的 1.5B Avg 与六项平均对不上57.31 vs 57.95

Table 3 的 1.5B Avg 列写 −57.31%。同表六个 Δ% 是 57.69、61.50、64.00、46.13、60.38、57.99,算术平均为 57.95%(347.69 ÷ 6);两者相差 0.64 个百分点。7B 的 Avg 列写 −54.21%,六个 Δ% 的算术平均也是 54.21%。

出处:Table 3。页面并列这两个数字,不代为解释差异来源。

难度筛选的反向消融(7B):easy→difficult 之间,chosen 越长输出越长

Table 4 只做了 7B,把训练数据换成 easy / medium / difficult / 不过滤四档,其他设置不变。切换标签看 MATH-500 与 GSM8K 的输出长度;读数里的 chosen 是该 split 训练集里 chosen 回答的平均长度。

原始模型(7B) 该 split 训练的 LCPO(7B)
当前 split

在 easy→medium→difficult 三档筛选之间,趋势是清楚的:chosen 平均长度从 easy 的 2,232 升到 medium 的 3,637、difficult 的 3,681;模型输出长度也跟着升(2,033 → 2,468 → 3,130),MATH-500 的长度削减从 51.86% 降到 25.88%(Table 4)。但 w/o filter 这一档打破了这个单调关系:chosen 3,270 低于 medium 的 3,637,输出 2,954 却高于 medium 的 2,468。所以「chosen 越长输出越长」只在三档筛选之间成立,不能推广到不过滤的情况。筛掉难题、只在 easy 上训练,是长度削减的主要来源。

Although all the chosen responses of the difficult split are not correct, the reasoning performance of the model is still slightly improved.

§4.2 原句

但 Table 4 的数字是:Original MATH-500 92.20,difficult split 92.00,−0.20 个百分点;GSM8K Original 91.81,difficult 92.49,+0.68 个百分点。原文说「slightly improved」,同表的 MATH-500 数字却是略低。两处并列,页面不代作者解释;能确认的是:difficult split 的 chosen 全部不正确(§4.2),但训练后模型没有崩,论文把这解释为 LCPO 对正确性标签的噪声有一定鲁棒性(§4.2)。

OOD:数学上训练,MMLU 长度也削减 55.06%

Table 5(v2)在 MMLU、GPQA-Diamond、WinoGrande 上测分布外泛化,表中只有 Original 与 Ours 两组,本页全量转录。CoD、L1-Exact、L1-Max、TrEff 等完整 OOD 基线在 Table 9(Appendix F),本页未转录。长度变化是相对原始长度的比例;准确率变化是百分点。

ModelMMLU AccMMLU LenGPQA-D AccGPQA-D LenWinoGrande AccWinoGrande Len
7B Original65.271,85848.999,23761.171,042
7B LCPO64.16−1.11835−55.06%52.53+3.544,301−53.44%62.12+0.95375−64.01%
1.5B Original46.432,54934.8510,31250.041,516
1.5B LCPO46.78+0.35760−70.18%39.39+4.544,340−57.91%50.83+0.79309−79.62%

Table 5(v2):OOD 基准上的准确率与平均生成长度;Ours 行的小字为相对 Original 的变化(准确率为百分点,长度为相对比例)。

7B 的 MMLU 准确率 65.27 → 64.16(−1.11 个百分点),长度 1,858 → 835(相对原始长度 −55.06%);GPQA-D 48.99 → 52.53(+3.54 个百分点),长度 −53.44%;WinoGrande 61.17 → 62.12(+0.95 个百分点),长度 −64.01%(Table 5)。1.5B 的 MMLU 长度 −70.18%、准确率 +0.35 个百分点;GPQA-D +4.54 个百分点、长度 −57.91%;WinoGrande +0.79 个百分点、长度 −79.62%(Table 5)。

§4.3 的原文把 GPQA-D 的准确率变化写成「improved by 3.54% and 4.54%」;Table 5 的 Δ 列是百分点(52.53 − 48.99 = 3.54,39.39 − 34.85 = 4.54)。页面按百分点口径引用,避免把点差当成相对提升。

难度自适应:训练后长度和难度终于同向

Figure 4 是 7B 在 MATH-500 不同难度等级上的准确率与长度。训练前,Level 1(最简单)的平均长度高于 Level 2 和 Level 3;训练后,长度随难度上升,准确率在各等级基本保持(Figure 4、§4.3)。论文把这解释为过度思考的缓解:简单题不再消耗比难题更多的 token。

Figure 3 则给出 MATH-500 的长度分布:训练后峰值左移,方差也变小(Figure 3、§4.1)。也就是说,模型不仅更短,而且长度更稳定。

07

它解决的是「长度」,不是「通用推理」

四条边界:训练分布、模型规模、训练上下文,以及可验证奖励的前提。

边界一

只验证了数学训练集

LIMR 是 MATH 训练集的一个子集,共 1,389 题(Appendix A);Appendix H 明确说训练集聚焦 math tasks,简洁推理行为的多样性依赖 LRM 自身的潜力。OOD 测了 MMLU、GPQA-D、WinoGrande(Table 5),附录还测了 LiveCodeBench v6、AIME25、HLE-Math(Table 10),但这仍是有限外推,不能覆盖所有领域。

边界二

只做了 1.5B 和 7B

Appendix H 写明:受计算资源限制,只做了 1.5B 与 7B 两个规模。更大模型是否有同样的长度弹性、同样的难度筛选收益,论文没有验证。

边界三

训练上下文 2.3k,而基准原文长度远超

Appendix B 写 context length 限制为 2.3k;但 Table 3 的原始平均长度在 MATH-500 是 4,223、AIME24 是 13,411(7B)/16,355(1.5B)。Appendix B 没有展开超长偏好对如何截断或处理。推断(由这两个数字并列推出):训练时可能对超长响应做了截断,这会影响长轨迹上的偏好信号。

边界四

需要可验证的正确性

s_i 是 16 条输出的平均准确率(§3.2),依赖一个正确性判定器。开放式任务没有这种可验证信号,easy/medium/difficult 的划分不能直接照搬。推断(由 s_i 的定义推出):这类任务需要先构造可验证的评分,或者改用别的难度代理。

另外,准确率不是处处持平:7B 的 AIME24 −2.71、AMC23 −1.09、MATH-500 −0.80;1.5B 的 AIME24 +0.41、GSM8K −0.46(Table 3)。AIME24/AMC23 的评测是 16 次采样的 pass@1(§4.1);如果应用对这几个基准特别敏感,需要单独评估。

成本也不是零:7B 约 10.4 A100·h(Table 11),rollout 的 16×1,389 次生成是主要成本(Appendix G.4)。论文强调这是一次性离线过程,数据可以复用;但如果换基座模型,偏好数据是否需要重新生成,论文没有讨论。

原文里的 4 处数字并列不替作者消解,只标位置
  • Table 3 的 1.5B Avg:Avg 列写 −57.31%;同表六个 Δ% 的算术平均是 57.95%,差 0.64 个百分点。7B 的 Avg 列写 −54.21%,六个 Δ% 的算术平均也是 54.21%。出处:Table 3。
  • 训练样本数:Table 1 / §1 写 0.8k training samples;Appendix B 写 50 步对应 0.4k sampled pairs,Appendix A 写 400 instances。三处单位分别是样本、对、题,页面并列。
  • LCPO 的 preference weight:Table 6 的标题写「the preference weight parameter is not required for LCPO」,同表 LCPO 行却列出 preference weight 0.3;§3.3.3 与 Appendix G.2 又称 LCPO 无需调参。三处并列。
  • Eq. 11 的符号:Eq. 8 的 BT 损失写作 −log σ(...);Eq. 11 的 LCPO 在 v2 PDF 与 HTML 中写作 log σ(...),没有负号;Table 8 的 SFT / DPO / ORPO 目标均为负 log-sigmoid 形式。页面按 Eq. 11 原文转录,不代改。