论文精读

精读:LoCo——把推理压缩的监督从轨迹级偏好搬到状态级选择

从模型自己的 CoT 里检测过度思考状态(步级置信度 25 分位以下且波动率 75 分位以上,judge 三档复核),冻结前缀重采出更短且验证正确的续写构成同前缀偏好对交给 DPO——数学五基准 token 砍 41.7%-45.4% 且精度全线持平或上涨,只用 math14k 训练却在三个代码基准上同步省 23.4%-36.3% 还涨点;对照消融显示轨迹级偏好只能压 5.2%-15.8%、随机剪点照样压四成但精度掉光——压缩幅度与剪点位置是两个解耦的旋钮,值钱的那文献基本没碰。

论文: Think Less, Locally: Local Preference Learning for Reasoning Compression
作者: Muyao Yuan, Liyan Xu, Weizhan Zhang, 等
arXiv: 2611.04814
推理压缩 过度思考 偏好优化 DPO 推理效率 后训练 cs.AI

1 论文概览

一句话总结:微信 AI 与西安交大把推理压缩的监督粒度从「整条轨迹的长度偏好」搬到「单个推理状态上继续或收束的选择」——用步级置信度与波动率的合取筛出过度思考状态,冻结该状态的前缀、重采出更短且验证正确的续写,构成同前缀的偏好对交给 DPO;数学五个基准 token 砍 41.7%–45.4% 且精度全线持平或上涨,只用 14k 数学题训练、一道代码题都没有,在三个代码基准上照样省 23.4%–36.3% 还涨点。

核心问题:大推理模型经常在拿到足够信息后继续空转——overthinking 与其说是能力问题,不如说是偏好问题:模型答对了还不肯停。

“The problem therefore lies in when the model chooses to stop, rather than whether it can reach the correct answer” —— 原文 §1

既有压缩方法分两派。轨迹级(Kimi k1.5 的 Long2Short、O1-Pruner 这类用长短对做 DPO,或把长度奖励写进 RL 目标)只知道「整体上该短」,不知道「哪里短」——两条解路殊途同归,从整体长度看不出哪一段能安全砍掉。细粒度级(TokenSkip、TokenSqueeze 删 token,Step-DPO、SSPO、ReCUT 在前缀共享的步骤对上做文章)会改轨迹内容,监督的还是「已有内容里哪些该删」,不是「从这个状态出发还要不要继续想」。论文把问题挪了一格:压缩决策本身应该是状态条件的——同一个模型,在某个状态该继续,在另一个状态该收束。

主要贡献:

  • 状态条件的压缩监督。偏好对的 prompt 不是原题,而是冻结的推理前缀;chosen 与 rejected 是同一状态下的两条续写,监督信号直接落在「到达该状态之后选哪条路」这个局部决策上。
  • 因果的过度思考检测器。步级置信度取自家分布的 25 分位以下、步间波动率取 75 分位以上,两信号合取筛候选,再由 Qwen3-30B 复核;全部计算只用截断点之前的信息,检测器从不看它要删的那段。
  • 再生验证闭环兜底。误报的状态很难再生出「短且答案正确」的续写,会在有效性判定处被天然清掉——检测管线自带纠错,不靠检测器百发百中。
  • 跨域泛化证据。math14k(14,027 题)纯数学训练,代码三基准精度与 AUC 全涨,支撑「学到的是收束偏好、不是领域知识」这个读法。

2 方法详解

2.1 检测:低置信与高波动的合取,加一道 judge

把完整 CoT 喂回模型自己,逐位置记 top-1 token 概率;步骤以段落分隔,步级置信度是该步内 token 概率的均值,波动率取最小窗口——相邻两步置信度差的平方除四。四个分位数(置信度与波动率各取 25/75 分位)在模型自采语料上一次性校准。候选状态定义为「最近完成的步骤既低置信又高波动」(式 6):低置信单独出现对应真难的子问题,高波动单独出现对应合法的推理切换,合取之后剩下的才是「既不确定又原地打转」的状态。

Judge 复核拿到题目、冻结前缀、下一步原文和预测标签,返回 OVERTHINK / NORMAL / FINAL 三选一。FINAL 这一档专门保护收尾——推理模型爱在结尾复述 boxed 答案,看着重复,删了就把答案本身抽掉了。检测全程因果:

“Hence, the detector never uses the continuation it removes.” —— 原文 §4.2

每条轨迹最多保留 10 个候选状态(均匀采样),防止多检轨迹主导后续的再生环节。

2.2 再生:同一前缀下采 8 条,挑最短的正确续写

对每个幸存状态,冻结其前缀,同温同 top-p 采 8 条续写;答案与金标符号等价才算有效,取最短有效续写为 chosen,原轨迹从该状态起的续写为 rejected;空集丢弃,不严格更短也丢弃。最后按节省量过门槛:至少省 300 token、每题至多 3 对、前缀限 6k、续写限 12k。

2.3 训练:状态条件的 DPO

偏好三元组直接进 DPO(β=0.1\beta=0.1,参考策略为基座本身)。两条分支共享同一个前缀,似然比只在续写段上算——比较的对象从「两整条解」缩到「同一状态的两条后续」。LoRA rank 256、只动注意力的 q/k/v/o 投影、2 epochs、4 张 H20,基座全程冻结。

2.4 与基线的分别:监督落在哪个对象上

对照里 DAST 是轨迹级长短偏好方法,TokenSqueeze 是 token 级删减。最接近 LoCo 的是 Step-DPO 这一族:同样是前缀共享的步骤偏好对,差别在两边的语义——Step-DPO 对的是「正确 vs 出错」的续写,LoCo 对的是「短而对 vs 长而冗」的续写,且切点由检测器选定而非人为指定。这个差别是全文立论的支点。

3 实验结果

3.1 数学:越难越省,精度还涨

评测协议:温度 0.6、每题 8 次采样、vLLM、32,768 新 token 上限,答案取最后一个 boxed 表达式用 math_verify 做符号等价。表 1 摘要(相对基座的变化):

基准AccTokenAUC
MATH-500−0.08−44.1%+3.92
AMC23+1.25−41.7%+6.49
Olympiad+1.45−44.6%+5.33
AIME24+3.34−45.4%+6.49
AIME25+2.50−45.2%+4.26

对照组里 TokenSqueeze 在 MATH-500 掉 0.70、AIME24 掉 2.08;DAST 更扎眼——在 AIME24/25 上 token 不降反升 6.9%/3.4%,代码侧全线恶化(MBPP 精度 −2.92、token 反涨 20.4%)。LoCo 是唯一五个基准「砍四成以上、精度不降」的方法。留一道刻度:AIME24 只有 30 题、标准差 ±4.27,+3.34 在一倍标准差之内,MATH-500(500 题)的 −0.08 与 Olympiad(675 题)的 +1.45 反而是更硬的证据。

3.2 代码:math14k 训练,代码白捡

基准AccTokenAUC
MBPP±0.00−36.3%+1.53
LiveCodeBench+0.74−24.7%+2.78
CodeContests+2.13−23.4%+2.91

训练一题代码都没有,三个基准精度与 AUC 全涨。论文用这个迁移论证「学到的是何时收束的偏好,不是数学知识」——领域知识解释不了跨域涨点,偏好解释得了,这个推理方向站得住。

3.3 消融:两个解耦的旋钮

表 3 在 AMC23/AIME24/AIME25 上做对照:

  • Global(轨迹级偏好:同题最短 vs 最长正确全解,prompt 只放原题):token 只压 5.2%/11.1%/15.8%,精度与 LoCo 相当。压缩几乎全部来自状态条件化——轨迹级偏好是文献里的默认构造,这条消融把它的压缩上限量出来了。
  • GPT-5.4 续写(chosen 换成 GPT-5.4 从同一前缀重写的更短正确续写):压缩与 AUC 全面落后自采版(AIME24 token 9204 对 7364,AUC 44.11 对 46.82)。更强的教师给的钱不如学生自己的分布贴,原文给的解释是分布对齐:

“A plausible explanation is distributional alignment.” —— 原文 §5.4

  • RandCut / UniCut(切点换随机/均匀,再生与配对流程不变):压缩幅度几乎不打折(39.5%–43.2% 对 LoCo 的 41.7%–45.4%),掉的全是精度——AMC23 −1.87/−0.93,AIME24 −2.50/−2.08。剪多剪少由「偏好短」决定,剪得准不准由「剪点选得对不对」决定,两个旋钮各管各的。

“Both variants can still shorten CoT substantially, but they incur larger accuracy losses because they often compress reasoning at positions where the model still needs additional computation.” —— 原文 §5.4

4 个人分析

4.1 亮点

检测-验证闭环是设计上的巧劲。检测器的误报不需要人工纠:一个被错标为 overthink 的状态,模型在那儿还要真算,重采 8 条很难出「短且正确」的续写,有效性判定这道闸门自然把这类点清掉。整套管线没有一处依赖「检测器必须准」——检测器只需要召回过得去,精度交给再生验证兜底。这是把不可靠信号变成可靠监督的标准姿势:别修信号,给信号配一个可证伪的下游闸门。

RandCut 消融把文献的盲区量出来了。推理压缩文献大多在拧「怎么奖励短」这个旋钮——长度惩罚 RL、长短对 DPO、token 删减,变着法子鼓励短。LoCo 的对照显示:随机剪都能压四成,压缩根本不是瓶颈;瓶颈是剪得准不准,这一维主流方法基本没碰。表 3 是全文最值钱的一张表,RandCut 压缩 41.6% 摆在那儿,「奖励短」能买到的东西一眼见底。

自采续写打赢外部教师,与蒸馏文献里的容量失配结论同源(本专栏 OPD 系列反复撞到这堵墙):监督信号的有效性由「贴不贴学生自己的分布」决定,不由「写得好不好」决定。GPT-5.4 的续写更漂亮,但离学生的原生 CoT 风格更远,DPO 的梯度反而更弱。

4.2 局限

单一基座、单一规模。全部实验落在 DeepSeek-R1-Distill-Qwen-7B 一个模型上,更大或更小的模型、其他家族一概没碰——「偏好问题而非能力问题」这个立论在更大模型上是否还成立,overthinking 文献在 32B 级别有相反证据,论文没接这茬。

检测管线的账没报。筛查命中率、judge 通过率、最终偏好对数量,三个数一个都没有——14,027 题 × 3 条 rollout 进去,出来多少对训练数据,无从对账,复现要靠猜。judge 消融也缺:去掉 Qwen3-30B 复核只留统计筛查会掉多少,不知道。

节省门槛是个大超参。300 token 的门槛直接决定偏好对的难度分布——低于 300 的温和冗余全部丢弃,等于只学「大刀阔斧的收束」,细碎的啰嗦不管。敏感度没扫。

AUC 的读法要留一道刻度。AUC 由「逐级收紧 token 预算下的精度」扫出,模型整体变短天然抬高小预算端的曲线——LoCo 的 AUC 领先有一部分是长度的直接后果。真正有说服力的是 TokenSqueeze 同样变短但 AUC 全面落后:截断 LoCo 的 CoT 不伤精度,说明删的是真冗余;TokenSqueeze 删的段里有内容,一截就露馅。这个同长度带内的对照成立,单看 AUC 绝对值不行。

模板依赖。有效续写要求「完成推理模板」,收尾判定(FINAL 档)也是 <think > 与 boxed 文化的产物——方法绑在这套输出格式的模型上,换格式的模型,判定与再生两头都要重调。

4.3 对大模型领域的影响

overthinking 是推理成本的显性大头,工业界的默认解法是推理时截断或提示词压缩——都是运行时的绷带。LoCo 把「何时停」从运行时技巧变成训练时偏好,训练成本是一次 LoRA 微调(4 张 H20、2 epochs)加一轮离线数据构造。与长度惩罚 RL 的本质分别在奖励面:RL 优化「结果长度」,模型可以拿错换短;LoCo 的偏好对里「短而错」在有效性判定处就进不了训练集,没有 hacking surface。往前一步的问题是:状态条件偏好能不能推广到推理之外——agent 多轮轨迹里「这一步之后还要不要再试」、检索系统里「这条上下文之后还要不要再读」,结构与「这个状态之后还要不要继续想」同构。

5 实践启示

5.1 可以借鉴的技术

  • 统计粗筛 + LLM 精筛 + 可验证闭环的三级漏斗。这是数据清洗的标准架构移植到训练信号构造:分位数阈值校准一次、批量离线跑 logprobs 几乎免费、judge 只看粗筛幸存者。任何「从海量自采轨迹里挖高质量训练点」的管线都可以抄这个骨架——关键是最后一道闸门要可证伪(再生验证),让前两级的误报自动出局。
  • 自采短续写优于外部教师重写。构造偏好数据时别急着请强模型:学生自己从状态里采 8 条挑最短正确的,监督信号比教师写的更贴分布。这条对预算紧张的团队直接省一笔 API 钱,效果还更好。
  • 分位数自适应阈值。检测阈值不是绝对值而是模型自身分布的分位数,换模型、换域不用重调——「用模型自己的行为归一化模型自己的信号」这个思路可以搬去任何 per-model 校准场景。

5.2 潜在应用场景

  • 推理服务的降本改造:7B 蒸馏模型上一次 LoRA(rank 256)换数学四成、代码两到四成的 token 削减且精度不降,回本周期极短。有 verification oracle 的域——代码有沙箱、数学有等价校验、SQL 有执行结果——都能直接套;开放生成没有 oracle,续写验证会退化成 judge 打分,信号变弱,套用前先看域里有没有可验证的终止判据。
  • 数据平台的 overthinking 普查:置信度与波动率信号不需要任何标注,可以先当分析工具用——对现有 RLVR/SFT 语料做一遍过度思考普查,按分位分档,看哪些任务族、哪些难度段的冗余最重,再决定要不要训。对做数据质量画像的平台,这是一套现成的指标。
  • Agent 长轨迹的收束训练:多轮 agent 轨迹的「原地打转」(反复重试、重复观察)与 CoT 的过度思考结构同源——把「冻结状态、重采短正确续写」搬到工具调用轨迹上,检测信号从 logprob 换成动作分布,思路可迁移。

参考文献

  1. Yuan, M., Xu, L., Zhang, W., Jiao, M., Li, J., Zhang, J., Zhou, J. Think Less, Locally: Local Preference Learning for Reasoning Compression. arXiv:2611.04814, 2026(本文,微信 AI 与西安交通大学;代码与模型承诺开源于 github.com/MuyaoYuan/LoCo)。
  2. Zhang, et al. TokenSqueeze. 2026(token 级压缩基线;训练集 math14k(14,027 题)与 AUC 口径均出自此文)。
  3. Shen, et al. DAST. 2025(轨迹级偏好压缩基线,表 1/表 2 对照)。
  4. Team, K. Kimi k1.5: Scaling Reinforcement Learning with LLMs. 2025(Long2Short 阶段:轨迹级长短对 DPO 的代表)。
  5. Lai, et al. Step-DPO. 2024(前缀共享步骤偏好对的出处,与 LoCo 最近的同族方法)。
  6. Guo, D., et al. DeepSeek-R1. 2025(基座 DeepSeek-R1-Distill-Qwen-7B 与 think 模板格式的来源)。

相关精读