Long to Short Reasoning:7 篇长思维链压缩工作总结

发布于 2025-8-18 06:32
浏览
0收藏

一、背景

随着 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。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

对应的论文为:[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,用于基于压缩后的内容继续生成后续文本。

重构后的数据形式为:

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

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 成本的关键所在,生成时的计算量减少了)

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

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 低了很多。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

三、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 和答案。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

3.3 结果

如下图 Table 1 可以看出,在 80% 的压缩率下损失已经比较大了,而且加速只有 1.2x 左右:

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

四、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 过程。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

具体示例如下图所示:

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

TALE-PT(Post-Training):如下图所示,通过 Post-training 将 Token Budget 内化到 LLM 中,使其在没有显式 Token 约束的情况下生成更高效的响应。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

4.3 结果

如下图 Table 3 所示为 TALE-EP 的结果,可以看出输出 Token 确实明显减少,但是 Acc 也有一定程度的降低:

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

如下图 Table 3 所示为 TALE-PT 的结果,可以看出 TALE-PT-SFT 的结果还不错,相比 Vanilla CoT 的 Acc 更高,输出 Token 更少。不过如果有更多实验应该会更有说服力。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

五、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 中手动编写了简洁的中间步骤示例。这些示例作为引导,帮助模型学习如何生成简洁的推理过程。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

5.3 结论

如下图 Table 1 所示,在 few-shot 下,CoD 相比 CoT 有一定损失,但加速比较明显:

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

如下图 Table 5 所示,在 0-shot 下,CoD 相比 CoT 的差距非常明显:

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

六、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。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

如下图 Figure 1 所示,这种周期性总结创建了“锯齿形”内存模式,显著降低了计算复杂度(PS:需要注意的是,Total Token 的数量会有所增加):

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

为了训练模型适应 InftyThink 范式,作者提出了一种将现有 Long Reasoning 数据集重构为迭代格式的方法。以 OpenR1-Math 数据集为例,重构过程包含以下步骤:

  • Reasoning 分割:根据最大 Token 长度参数 η,将 Reasoning 过程分割为多个语义连贯的片段。
  • 总结生成:使用 Meta-Llama-3.3-70B-Instruct 模型为每个片段生成总结。
  • 训练样本构建:将分割的 Reasoning 片段和生成的总结组合成新的训练样本,用于 SFT。通过这种方法,OpenR1-Math 数据集被扩展为 OpenR1-Math-Inf,包含 333K 训练样本。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

6.3 结论

如下图 Table 1 所示为本文的实验结果,本文的方案能有效的提升 Acc。遗憾的是,虽然其可以降低峰值内存需求,但作者并没有进行 Inference 时间等相关评估。单纯从生成 Token 数的角度出发其增加了总的 Token 数,可能增加 Inference 成本;但每个 Iter 参与的 Token 数是少的,又可能降低 Inference 成本;除此之外,Summary 也需要一定的 Inference 开销。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

七、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。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

分块符号主义(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。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

专家词典(Expert Lexicons):模仿专家使用的领域特定的缩写和符号,以高效表达复杂信息。例如,回答“STEMI 患者接受 MONA 治疗,但对阿司匹林过敏,这种治疗是否安全?”时,SoT 的 Reasoning 过程为:STEMI → ST-Elevation MI, MONA → Morphine, O2, Nitrates, Aspirin → Aspirin ∈ MONA。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

如下图 Figure 2 所示,SoT 框架通过一个轻量级的 Router Model(基于 DistilBERT)动态选择最适合每个问题的 Reasoning 范式,确保 Reasoning 过程的高效性。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

7.3 结论

如下图 Table 1 所示为主要结果,相比 CoT 的损失确实不大,并且 Token 数有比较明显的下降: 

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

八、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 中取得有意义的进展。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

论文中提出了两种实现 MRT 的方法:

  • 基于 STaR(Self-Training with Rollouts)的 MRT:通过采样模型的输出,筛选出那些既符合进展奖励又最终成功的轨迹,然后进行监督学习。
  • 基于 RL 的 MRT:直接在训练过程中优化包含进展奖励的目标函数,使用在线强化学习方法(如 PPO 或 GRPO)进行更新。

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

8.3 结论

如下图 Table 1 所示,本文的 MRT 相比之前的其他方法在 Acc 上有比较明显的提升:

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

如下图 Figure 7 所示,对于 Qwen-1.5B 模型,在实现同样 Acc 的情况下本文的 MRT 方法与其他方法相比可以明显减少 Token 数:

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

如下图 Figure 8 所示,在 8B 模型上有类似结论:

Long to Short Reasoning:7 篇长思维链压缩工作总结-AI.x社区

九、参考链接

  1. ​https://arxiv.org/abs/2502.15589​
  2. ​https://arxiv.org/abs/2502.12067​
  3. ​https://github.com/hemingkx/TokenSkip​
  4. ​https://arxiv.org/abs/2412.18547​
  5. ​https://github.com/GeniusHTX/TALE​
  6. ​https://arxiv.org/abs/2502.18600​
  7. ​https://github.com/sileix/chain-of-draft​
  8. ​https://arxiv.org/abs/2503.06692​
  9. ​https://arxiv.org/abs/2503.05179​
  10. ​https://github.com/SimonAytes/SoT​
  11. ​https://arxiv.org/abs/2503.07572​

本文转载自​​​​​​AI闲谈​​​​​​​​,作者:AI闲谈

收藏
回复
举报
回复
相关推荐