
Long to Short Reasoning:7 篇长思维链压缩工作总结
一、背景
随着 Long Reasoning 领域的快速发展,最近涌现出了诸多 Reasoning 模型,比如 DeepSeek R1、DeepSeek R1 Distill 以及阿里的 QwQ-32B 模型。这些模型在处理复杂任务时表现卓越,但与此同时,我们也观察到一些值得关注的现象。部分用户在不必要的场景下盲目使用 Reasoning 模型,导致大量不必要的 CoT Token 被引入,直接推高了 Inference 成本。
笔者在之前的 CoT-Valve 介绍文章中提到过:“Long CoT 模型通常需要更长的 Token 序列,这会显著增加模型输出长度,从而大幅增加了 Inference 成本。可以预见,为了降低 Inference 成本,未来不久将涌现一系列专注于压缩输出 Token 数量的技术”。事实上,近期的一些研究已经在朝这个方向努力,出现了不少针对 Long to Short Reasoning 的文章。
这些方案多采用 Token 压缩、路径剪枝等策略,声称“轻微损失精度”甚至“几乎无损”的情况下降低输出 Token 长度。然而,实际效果往往并非如此,所谓的“微小精度损失”在某些任务场景下可能被放大,影响最终决策质量。本文将对近期的 Long to Short Reasoning 优化技术进行简要梳理和分析,探讨其实际收益与潜在局限。
二、LightThinker
2.1 概要
LightThinker 由浙大、蚂蚁等发表,其通过动态压缩 Reasoning 过程中的中间思维步骤,提高 LLM 在复杂 Reasoning 任务中的 Inference 效率,同时几乎不影响性能。此外,论文中引入了依赖度(Dependency,Dep)指标,通过测量生成过程中对历史 Token 的依赖程度来量化压缩程度。
如下图所示为 LinkThinker 与常规方法的区别:
- (a):包含 Thought1 和 Thought2 两步 Reasoning。
- (b):首先基于 Question + Thought1 生成压缩 Token [C T1];然后基于 Question + [C T1] 生成思考过程 Thought2;之后进一步使用 Question + [C T1] + Thought2 生成压缩 Token [C T2];最后,基于 Question + [C T1] + [C T2] 生成 Answer。
对应的论文为:[2502.15589] LightThinker: Thinking Step-by-Step Compression [1]
2.2 具体方案
2.2.1 数据重构
为了使模型能够学习压缩能力,需要对训练数据进行了重构,以便模型能够理解何时以及如何进行压缩。具体步骤如下:
分割输出:给定输入问题 X 和对应的输出 Y,使用分割函数 Seg() 将输出 Y 分割成多个子序列 Si。分割函数可以基于两种策略:
- 基于 Token 的分割(Token-level):每生成固定数量的 Token 后进行一次压缩。
- 基于思维单元的分割(Thought-level):在完成一个完整的思维单元(如句子或段落)后进行压缩。
插入特殊 Token:在分割后的子序列之间插入特殊 Token:
- <w>:可选的压缩触发 Token,表示需要对前面的思维进行压缩。
- [c]:一组特殊 Token(称为 “gist tokens”),用于存储压缩后的内容。
- [o]:输出 Token,用于基于压缩后的内容继续生成后续文本。
重构后的数据形式为:
2.2.2 注意力掩码设计
为了使模型能够学习如何压缩以及如何基于压缩后的内容继续 Reasoning,作者设计了特定的注意力掩码。具体如下图 Figure 2 所示:
- 生成阶段:如 t=1,t=3,t=5 所示,基于问题 X、之前的压缩 Token [c] 以及生成的内容 [o] 来生成思维步骤 S。
- 压缩阶段:如 t=2,t=4 所示,基于问题 X、之前的压缩 Token [c] 以及生成的内容 [o] 以及新的思维步骤 S 生成压缩 Token [c]。
- Attention Mask:每次的生成只能看到对应箭头来源的方向,比如 S2 的生成只能看到 X、[c1][c2]、[o]。(PS:这也是能够降低 Inference 成本的关键所在,生成时的计算量减少了)
2.2.3 Training & Inference
Training 过程:使用重构后的数据 D 进行训练,通过 Attention Mask 引导模型学习压缩和理解压缩后的内容。
Inference 过程:模型动态地生成思维步骤,并在适当的时候将其压缩为紧凑的表示,然后基于压缩后的内容继续 Inference。
2.3 结果
如下图 Table 1 所示为关键结果,其中 Distill-R1 是 DeepSeek 开源出来的蒸馏模型。Vanilla 为在 Bespoke-Stratos-17k 数据集上 SFT 后的模型。H2O 等都是在 Vanilla 基础上采用各种优化方案的模型。Acc 表示精度、Time 表示 Inference 时间,Peak 表示 Inference 中上下文的峰值 Token 数。可以看出:当前的这些方案相比 Vanilla 模型来说 Acc 多少都会有所降低,同时 Time 并没有明显降低,只是 Peak 低了很多。
三、TokenSkip
3.1 概要
TokenSkip 由香港理工大学和中科大发表,同样是为了解决 Reasoning 模型输出过长导致的 Inference 成本过高问题。作者深入分析了 CoT 输出中 Token 的语义重要性,发现其对 Reasoning 的贡献度存在差异。基于此,提出了 TokenSkip 策略,它使 LLM 能够有选择性地跳过重要性较低的 Token,从而实现可控的 CoT 压缩。
实验中,基于 Qwen2.5-14B-Instruct 模型,TokenSkip 在 GSM8K 任务中将 Reasoning Token 减少 40%(从 313 降至 181),且性能下降不足 0.4%。
对应的论文为:[2502.12067] TokenSkip: Controllable Chain-of-Thought Compression in LLMs [2]
对应的代码库为:https://github.com/hemingkx/TokenSkip [3]
3.2 方案
如下图 Figure 4 所示,TokenSkip 关键过程包含 3 步:
- Token Pruning:根据 Token 的重要性对 CoT 序列进行剪枝。首先计算每个 Token 的语义重要性,然后按重要性值降序排列,根据指定的压缩比率 γ 确定阈值,保留重要性大于等于阈值的 Token。
- Training:使用剪枝后的 CoT 数据对目标 LLM 进行 SFT。在训练数据中,每个样本包含问题、压缩后的 CoT 和答案,格式为 “Q [EOS] γ [EOS] Compressed CoT A”。
- Inference:给定问题和压缩比率 γ,模型按照训练时的格式进行 Inference,自回归地生成输出序列,包括 CoT Token 和答案。
3.3 结果
如下图 Table 1 可以看出,在 80% 的压缩率下损失已经比较大了,而且加速只有 1.2x 左右:
四、Token-Budget-Aware LLM Reasoning
4.1 概要
Token-Budget-Aware LLM Reasoning 由南京大学等发表,主要是通过引入 “Token Budget” 来优化 LLM 的 Inference 过程,以在保持 Reasoning 准确性的同时降低 Token 使用量和成本。具体来说,作者提出了一种 Token Budget 感知的 LLM Reasoning 框架,该框架能根据每个问题的 Reasoning 复杂度动态调整 Reasoning Token 的数量。实验表明,该方法在仅轻微降低性能的前提下,有效减少了 CoT Reasoning 中的 Token 成本,为平衡 LLM Reasoning 效率与准确性提供了一种实用解决方案。
对应的论文:[2412.18547] Token-Budget-Aware LLM Reasoning [4]
对应的代码库:GitHub - GeniusHTX/TALE [5]
4.2 方案
论文提出了名为 TALE(Token-Budget-Aware LLM rEasoning)的框架,通过动态调整 Reasoning 过程中的 Token 数量来平衡 Reasoning 效率和准确性。TALE 包含两种实现方式:
TALE-EP(Estimation & Prompting):如下图所示,通过 0-shot prompting 方式估计合理的 Token Budget,并将其纳入 Prompt 中,从而生成更高效的 Reasoning 过程。
具体示例如下图所示:
TALE-PT(Post-Training):如下图所示,通过 Post-training 将 Token Budget 内化到 LLM 中,使其在没有显式 Token 约束的情况下生成更高效的响应。
4.3 结果
如下图 Table 3 所示为 TALE-EP 的结果,可以看出输出 Token 确实明显减少,但是 Acc 也有一定程度的降低:
如下图 Table 3 所示为 TALE-PT 的结果,可以看出 TALE-PT-SFT 的结果还不错,相比 Vanilla CoT 的 Acc 更高,输出 Token 更少。不过如果有更多实验应该会更有说服力。
五、Chain of Draft
5.1 概要
Chain of Draft(CoD)由 Zoom 发表,其受人类认知过程启发,提出了草拟连(Chain of Draft)。在此框架下,LLM 在解决任务时生成简洁而富含信息的中间 Reasoning 输出。通过减少冗长并聚焦于关键洞见,CoD 在多个 Reasoning 任务中匹配甚至超过了 CoT 的准确性,同时仅使用约 7.6% 的 Token 数量,显著降低成本和时延。
对应的论文:[2502.18600] Chain of Draft: Thinking Faster by Writing Less [6]
对应的代码库:Code and data for the Chain-of-Draft (CoD) paper [7]
5.2 方案
CoD 主要通过以下两个关键机制:
- 限制 Reasoning 步骤的输出长度:如下图左图所示,在 CoD 中,作者建议每个 Reasoning 步骤的输出长度最多为 5 个单词。这种限制迫使模型只关注解决问题所需的关键信息,避免冗余的描述和不必要的细节。
- 提供简洁的中间步骤示例:如下图右图所示,为了帮助模型理解 CoD 的要求,作者在 Prompt 中手动编写了简洁的中间步骤示例。这些示例作为引导,帮助模型学习如何生成简洁的推理过程。
5.3 结论
如下图 Table 1 所示,在 few-shot 下,CoD 相比 CoT 有一定损失,但加速比较明显:
如下图 Table 5 所示,在 0-shot 下,CoD 相比 CoT 的差距非常明显:
六、InftyThink
6.1 概要
Long Reasoning 范式面临 3 大挑战:计算复杂度与序列长度呈二次方增长、Reasoning 受限于最大上下文长度、超出预训练上下文窗口时性能下降。当前常见方法是压缩 CoT,而未从根本上解决规模扩展问题。
本文中,作者提出 InftyThink 范式,将单一 Reasoning 过程转化为包含中间总结的迭代流程。通过将短 Reasoning 片段与简要的进度摘要交错编排,相较于传统方法显著降低了计算复杂度。实验结果表明:基于 Qwen2.5-Math-7B 在 MATH500、AIME24 和 GPQA_diamond 基准测试中分别实现了 3%-13% 的性能提升。
对应的论文:[2503.06692] InftyThink: Breaking the Length Limits of Long-Context Reasoning in Large Language Models [8]
6.2 方案
如下图 Figure 2 可以看出,InftyThink 的核心思路是将单次 Long Reasoning 过程分为多个 Short Reasoning 过程,并在每个阶段之间插入中间总结,用于后续迭代基于之前的总结继续 Reasoning。
如下图 Figure 1 所示,这种周期性总结创建了“锯齿形”内存模式,显著降低了计算复杂度(PS:需要注意的是,Total Token 的数量会有所增加):
为了训练模型适应 InftyThink 范式,作者提出了一种将现有 Long Reasoning 数据集重构为迭代格式的方法。以 OpenR1-Math 数据集为例,重构过程包含以下步骤:
- Reasoning 分割:根据最大 Token 长度参数 η,将 Reasoning 过程分割为多个语义连贯的片段。
- 总结生成:使用 Meta-Llama-3.3-70B-Instruct 模型为每个片段生成总结。
- 训练样本构建:将分割的 Reasoning 片段和生成的总结组合成新的训练样本,用于 SFT。通过这种方法,OpenR1-Math 数据集被扩展为 OpenR1-Math-Inf,包含 333K 训练样本。
6.3 结论
如下图 Table 1 所示为本文的实验结果,本文的方案能有效的提升 Acc。遗憾的是,虽然其可以降低峰值内存需求,但作者并没有进行 Inference 时间等相关评估。单纯从生成 Token 数的角度出发其增加了总的 Token 数,可能增加 Inference 成本;但每个 Iter 参与的 Token 数是少的,又可能降低 Inference 成本;除此之外,Summary 也需要一定的 Inference 开销。
七、Sketch-of-Thought
7.1 概要
思维草图(Sketch-of-Thought,SoT)框架结合了认知启发的 Reasoning 范式与语言约束,旨在最大限度地减少 Token 使用量,同时保持 Reasoning 准确性。在跨越 15 个多语言及多模态场景的 Reasoning 数据集上的全面评估表明,SoT 实现了 76% 的 Token 减少,且对准确性的影响微乎其微。在数学及多跳 Reasoning 等特定领域,SoT 甚至在使用显著更少 Token 的同时提高了准确性。
对应的论文:[2503.05179] Sketch-of-Thought: Efficient LLM Reasoning with Adaptive Cognitive-Inspired Sketching [9]
对应的代码库:https://github.com/SimonAytes/SoT [10]
7.2 方案
SoT 框架的核心思想是借鉴人类专家在解决问题时使用的“草图”(Sketche),即通过简洁的符号、缩写和领域特定的术语来高效表达 Reasoning 过程。SoT 框架包含三个基于认知科学的 Reasoning 范式,分别针对不同类型的 Reasoning 任务。
概念链(Conceptual Chaining):利用联想记忆网络连接关键概念,以极简的文字表达 Reasoning 过程。例如,回答“首尔使用的货币是什么?”时,SoT 的 Reasoning 过程为:#Seoul → #South Korea → Won。
分块符号主义(Chunked Symbolism):基于工作记忆分块理论,将数学 Reasoning 组织成紧凑的符号表示。例如,计算“一辆汽车以 2.5 m/s² 的加速度加速 10 秒,初始速度为 15 m/s,求最终速度?”时,SoT 的 Reasoning 过程为:a = 2.5 m/s², t = 10 s, vi = 15 m/s → vf = 15 + (2.5 × 10) → vf = 40 m/s。
专家词典(Expert Lexicons):模仿专家使用的领域特定的缩写和符号,以高效表达复杂信息。例如,回答“STEMI 患者接受 MONA 治疗,但对阿司匹林过敏,这种治疗是否安全?”时,SoT 的 Reasoning 过程为:STEMI → ST-Elevation MI, MONA → Morphine, O2, Nitrates, Aspirin → Aspirin ∈ MONA。
如下图 Figure 2 所示,SoT 框架通过一个轻量级的 Router Model(基于 DistilBERT)动态选择最适合每个问题的 Reasoning 范式,确保 Reasoning 过程的高效性。
7.3 结论
如下图 Table 1 所示为主要结果,相比 CoT 的损失确实不大,并且 Token 数有比较明显的下降:
八、Meta Reinforcement Fine-Tuning
8.1 概要
这个工作来自卡内基梅隆大学和 Huggingface 团队,主要研究如何通过元强化学习(Meta Reinforcement Learning,MRL)优化 LLM 在测试时的计算资源利用效率。作者开发了元强化微调(Meta Reinforcement Fine-Tuning, MRT)方法,旨在优化测试时计算。与 Outcome-Reward RL 相比,MRT 在数学 Reasoning 任务上实现了 2x-3x 的性能相对提升,以及约 1.5x 的 Token 效率增益。
对应的论文:[2503.07572] Optimizing Test-Time Compute via Meta Reinforcement Fine-Tuning [11]
8.2 方案
MRL 的核心在于如何在训练时学习到一种策略,使得模型在测试时能够根据不同的任务动态调整其行为。具体来说,论文提出了以下关键概念:
- 将输出流划分为多个“episode”:将 LLM 的输出流划分为多个逻辑块(episode),每个 episode 可以看作是对问题的一次尝试或对之前尝试的修正。
- 最小化累积遗憾(cumulative regret):通过优化一个密集奖励函数(dense reward),使得模型在每个 episode 中都能取得进展,从而最小化与最优策略的差距(遗憾)。
MRT 的核心在于定义一个“进展”(Progress)的概念,并将其作为密集奖励函数的一部分。具体来说:
- 进展(Progress):定义为在给定上下文和当前 episode 的情况下,模型成功解决问题的概率变化。如果一个 episode 能够显著提高解决问题的概率,则认为该 episode 有较高的进展。
- 密集奖励函数:在标准的 0/1 结果奖励基础上,加入一个与进展相关的奖励项。这样,模型不仅需要在最终输出中获得正确的答案,还需要在每个 episode 中取得有意义的进展。
论文中提出了两种实现 MRT 的方法:
- 基于 STaR(Self-Training with Rollouts)的 MRT:通过采样模型的输出,筛选出那些既符合进展奖励又最终成功的轨迹,然后进行监督学习。
- 基于 RL 的 MRT:直接在训练过程中优化包含进展奖励的目标函数,使用在线强化学习方法(如 PPO 或 GRPO)进行更新。
8.3 结论
如下图 Table 1 所示,本文的 MRT 相比之前的其他方法在 Acc 上有比较明显的提升:
如下图 Figure 7 所示,对于 Qwen-1.5B 模型,在实现同样 Acc 的情况下本文的 MRT 方法与其他方法相比可以明显减少 Token 数:
如下图 Figure 8 所示,在 8B 模型上有类似结论:
九、参考链接
- https://arxiv.org/abs/2502.15589
- https://arxiv.org/abs/2502.12067
- https://github.com/hemingkx/TokenSkip
- https://arxiv.org/abs/2412.18547
- https://github.com/GeniusHTX/TALE
- https://arxiv.org/abs/2502.18600
- https://github.com/sileix/chain-of-draft
- https://arxiv.org/abs/2503.06692
- https://arxiv.org/abs/2503.05179
- https://github.com/SimonAytes/SoT
- https://arxiv.org/abs/2503.07572
本文转载自AI闲谈,作者:AI闲谈
