CRISP: Compressing Redundancy in Chain-of-Thought via Intrinsic Saliency Pruning¶
会议: ACL 2026 Findings
arXiv: 2604.17297
代码: GitHub
领域: LLM推理效率
关键词: 思维链压缩, 注意力显著性, 推理冗余, 贪心搜索, 高效推理
一句话总结¶
提出 CRISP 框架,发现 </think> token 的注意力模式能可靠区分推理链中的关键步骤和冗余步骤,据此设计四种原子操作的贪心搜索压缩流水线,在保持准确率的同时减少50-60%的 token 用量。
研究背景与动机¶
领域现状:推理型 LLM(如 DeepSeek-R1、OpenAI o1)通过生成长链思维链(CoT)实现强大推理能力,但也带来巨大的计算开销和延迟。CoT 压缩成为实际部署的必需。
现有痛点:现有 CoT 压缩方法通常依赖外部代理模型(如独立的 LLM)来评估和剪枝推理步骤。但外部压缩器与源模型的内在推理动态不对齐——它们经常将自我纠正等关键中间步骤误判为冗余,破坏推理链的逻辑连贯性。
核心矛盾:需要找到一种信号来区分推理链中的"关键逻辑步骤"和"冗余步骤",但这种信号不应来自外部模型(会引入不对齐),而应来自模型自身的内在机制。
本文目标:利用模型自身的内在信号(而非外部代理)来指导 CoT 压缩。
切入角度:观察到 </think> token 在深层注意力中充当"信息锚点"——模型在生成最终答案时主要关注 </think> 位置而非中间推理步骤,而 </think> 的注意力分布恰好反映了各推理步骤对最终答案的贡献大小。
核心 idea:利用 </think> token 的注意力模式作为步骤显著性的内在指标,通过四种原子操作(保留、剪枝、重写、融合)的贪心搜索构造压缩推理路径,再用 LLM 精炼器恢复语法连贯性。
方法详解¶
整体框架¶
CRISP 包含三个阶段:(1)原始 CoT 生成——从源模型获取完整推理轨迹;(2)关键推理路径搜索——利用 </think> 注意力评估步骤显著性,通过动态操作符压缩推理链;(3)精炼与微调——用 LLM 恢复压缩路径的语义连贯性,然后用多任务目标微调目标模型。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
A["源模型生成原始 CoT<br/>完整推理轨迹"] --> B["</think> 信息锚点<br/>注意力聚合得步骤显著性 Sᵢ"]
B --> OPS
subgraph OPS["四种原子操作的贪心搜索(按显著性约束动作空间)"]
direction TB
K["Keep 保留高显著步骤"]
P["Prune 移除低显著步骤"]
RW["Rewrite 用 LLM 精简步骤"]
FU["Fuse 合并语义重复步骤"]
end
OPS -->|"奖励函数 R(a):似然净增益 − 长度惩罚"| D["压缩推理路径"]
D --> E["LLM 精炼器恢复语义连贯<br/>以原始 CoT 为参照"]
E --> F["多任务微调<br/>控制 token κ 混合完整 / 压缩推理"]
F --> G["压缩后推理模型"]
关键设计¶
1. </think> 作为信息锚点的发现:用模型自己的注意力当步骤显著性信号,绕开外部代理
现有 CoT 压缩多靠一个外部 LLM 来评判哪些步骤该删,但外部压缩器和源模型的推理动态对不齐,常把自我纠正这类关键中间步骤误判成冗余、切断逻辑链。CRISP 改用源模型自身的信号:注意力可视化显示,在深层里 </think> token 会逐渐把前面整条推理链的信息聚合到自己身上,生成最终答案时模型主要盯着 </think> 的位置而非中间步骤。于是把步骤显著性 \(S_i\) 定义为所有层、所有头上 </think> 对步骤 \(r_i\) 内 token 注意力权重之和的归一化。这个信号经得起验证——剪掉高注意力步骤后 PPL 飙升、剪掉低注意力步骤 PPL 几乎不动,说明它直接反映了源模型"自己认为什么重要",比任何外部代理都更对齐。
2. 四种原子操作的贪心搜索:在显著性引导下做连续粒度的压缩,而非一刀切阈值
简单的阈值过滤要么切断逻辑依赖、要么留下冗余,粒度太糙。CRISP 定义四种原子操作覆盖从"完全保留"到"完全移除"的连续谱:Keep(保留高显著步骤)、Prune(移除低显著步骤)、Rewrite(用 LLM 精简步骤)、Fuse(合并语义重复步骤)。动作空间是动态的——根据显著性分数和步骤间语义相似度约束每一步允许哪些操作,再用贪心搜索逐步压缩。每个候选操作 \(a\) 的取舍由奖励函数裁决:
前两项衡量这步操作对正确答案似然的净增益,最后一项按压缩后长度做惩罚,于是搜索天然朝"既不掉准确率又更短"的方向收敛。
3. 压缩路径精炼与多任务微调:先补回语义连贯,再把压缩能力训进模型且不遗忘
离散搜索(尤其 Prune 和 Fuse)会在骨架里留下语法断裂和逻辑断层,直接拿去训练会带噪。CRISP 先用一个更强的 LLM 精炼器、以原始 CoT 为参照把压缩路径的流畅性补回来,再做微调。微调用一个控制 token \(\kappa\) 走多任务策略:带 \(\kappa\) 的输入让模型生成压缩推理、不带的生成完整推理,两条路径混合训练,既学会了短链压缩又避免把原本的完整推理能力灾难性遗忘掉。
损失函数 / 训练策略¶
标准自回归负对数似然损失,混合原始轨迹和压缩轨迹训练。3个 epoch,学习率 \(1 \times 10^{-5}\),基于 MATH 数据集的2500个样本。注意力阈值 \(\tau_{\text{high}}\) 和 \(\tau_{\text{low}}\) 分别取前30%和后20%分位数。
实验关键数据¶
主实验¶
| 方法 | 模型 | GSM8K Acc | GSM8K Tok | MATH-500 Acc | MATH-500 TE |
|---|---|---|---|---|---|
| Original | 1.5B | 81.6 | 1669 | 78.2 | 2.22 |
| CRISP | 1.5B | 80.6 | 587 | 75.0 | 4.14 |
| Original | 7B | 90.8 | 1376 | 87.4 | 2.86 |
| CRISP | 7B | 90.1 | 374 | 84.2 | 7.35 |
消融实验¶
| 方法 | 1.5B 平均 TE | 7B 平均 TE | 说明 |
|---|---|---|---|
| Original | 2.10 | 2.81 | 基线 |
| CoD (提示策略) | 2.61 | 4.31 | 控制粒度不足 |
| TALE (外部压缩) | 2.31 | 3.15 | 外部不对齐 |
| A*-Thought | 2.99 | 4.04 | 搜索但无内在信号 |
| CRISP | 4.31 | 6.80 | 最优效率-准确率权衡 |
关键发现¶
- CRISP 在 Token Efficiency 上大幅领先所有基线(7B模型上6.80 vs 次优4.31)
- 7B模型上 GSM8K 只用374个 token(原始1376),准确率仅掉0.7%
</think>注意力验证实验清晰:剪除高注意力步骤 PPL 飙升,剪除低注意力步骤 PPL 几乎不变- 显著性分数呈现非均匀分布,只有少量步骤对最终答案有高贡献
亮点与洞察¶
</think>作为信息锚点的发现极有洞察力:揭示了推理模型的内在注意力机制如何"总结"整个推理过程,这一发现对理解推理模型的工作原理有独立价值- 四种原子操作的设计提供了灵活的压缩粒度:比简单的保留/删除更精细,Fuse 和 Rewrite 允许在压缩的同时保留信息
- Token Efficiency 指标的采用使得效率-准确率权衡可量化比较
局限与展望¶
- 贪心搜索的计算开销(每步评估多个操作)可能在超长 CoT 上成为瓶颈
- 精炼步骤依赖外部 LLM,引入了额外成本
- 仅在数学推理数据集上验证,代码和逻辑推理的泛化性未测试
- 控制 token 的多任务训练策略相对简单,可能存在更好的训练方案
相关工作与启发¶
- vs CoD/TALE(提示/外部压缩): CoD 通过提示限制长度但控制不精细,TALE 用外部模型压缩但引入不对齐。CRISP 利用模型自身的注意力信号,从根源避免了不对齐问题
- vs RL方法(如长度惩罚): RL 方法计算开销大且对奖励设计敏感,CRISP 通过后处理压缩避免了 RL 的不稳定性
评分¶
- 新颖性: ⭐⭐⭐⭐⭐
</think>信息锚点的发现有原创性,四种操作的贪心搜索设计精巧 - 实验充分度: ⭐⭐⭐⭐ 两个模型规模+三个基准+多种基线,但领域覆盖有限
- 写作质量: ⭐⭐⭐⭐⭐ 动机清晰,发现引人入胜,实验组织良好