LRM在需要复杂推理的任务上常常面临挑战。尽管CoT显著提升了推理能力,但它会不分情况地为所有查询生成冗长的推理步骤,这导致了巨大的计算成本和低效,尤其是对于简单输入时更是如此。为了解决这一关键问题,我们提出了AdaCoT,使LLMs能够自适应地决定何时调用CoT。AdaCoT将自适应推理建模为一个Pareto Improvement问题,旨在平衡模型性能与CoT调用相关的成本(包括频率和计算开销)。我们提出了一种基于强化学习(RL)的方法,具体使用近端策略优化(PPO),通过调整惩罚系数动态控制CoT触发决策边界,从而使模型能够根据隐式的查询复杂性判断是否需要CoT。一项重要的技术贡献是选择性损失掩码(Selective Loss Masking, SLM),其设计目的是在多阶段RL训练过程中防止决策边界崩溃,确保稳健且稳定的自适应触发。实验结果表明,AdaCoT成功地在帕累托前沿上导航,大幅减少了不需要复杂推理的查询中的CoT使用。例如,在我们的生产流量测试集上,AdaCoT将CoT触发率降低至3.18%,并减少了69.06%的平均响应token数量,同时在复杂任务上仍保持高性能。这种显著的token减少直接转化为推理计算负载的大幅降低。AdaCoT开创了自适应CoT触发的先河,为开发更高效、更响应迅速且更具成本效益的LLMs提供了一个实用且原则性的解决方案,这对于交互式和资源敏感型应用尤为重要。
主要两个目标:最大化acc + 最小化部署成本
几个指标:
$T(\theta)=CoT触发率 = \frac{使用CoT回复数}{回复总数} $,如果有….算CoT
$P(\theta)=模型性能=Acc $
其中两个lambda是两个超参数
使用一个辅助模型(实验中使用15B模型)对于一个用户和AI的对话打标签,标签共两种:是/否需要深度思考
基于辅助模型标注结果,对于数据进行处理。如果辅助模型任务需要深度思考,则不做处理,否则就将推理部分替换为空(
奖励函数如下:
$R(x, r)=R_{base}(x, r) – \alpha_1P_{miss}(x,r) – \alpha_2P_{over}(x,r)-\gamma P_{fmt}(r) $
其中Rbase为衡量响应质量的基础奖励,Pmiss是对于推理省略的二元惩罚,Pover是对于过度推理的二元惩罚,Pfmt是对于格式化错误的二元惩罚,其他是非负超参数
为了防止在强化学习过程中,模型落入其中一种CoT模式(要么只CoT、要么全跳过),AdaCoT引入了选择性损失掩码(Selective Loss Masking, SLM),具体实现为掩盖后的第一个token(决策token)的损失。
模型:豆包15B和150B模型
训练过程:SFT+数学RL+通用RL
Baseline: Full CoT SFT、Full CoT RL、No CoT SFT、No CoT RL、仅经过了SFT未RL的AdaCoT
数据集:LiveBench [45]、MMLU Pro [42]、SuperGPQA [7]、GPQA [32]、Chinese SimpleQA [12]、SimpleQA [44]、AIME24 & AIME25、MATH [13]、OlympiadBench [11]、SweBench Agentless [18]、LiveCodeBench [17]、KOR-Bench [25]、ProcBench [8] 和 SysBench [31]
超参:强化学习共4个阶段,Exp1 (α1 = 0.1, α2 = 0.3), Exp2 (α1 = 0.2, α2 = 0.3), Exp3 (α1 = 0.3, α2 = 0.3), and Exp4 (α1 = 0.3, α2 = 0.1),gamma设置为1.0
此外,团队还实验了SFT的Meta-Reasoning,具体来说就是
在后填充一些内容,测试结果如⬇️
但是这个测试也很怪,选择的是1k的daily-use prompt作为测试集