【免训练&测试时扩展】通过任务算术转移思维链能力
大语言模型(LLMs)已能通过长思维链(CoT)解决复杂推理任务(如数学计算、程序合成),但其生成的推理轨迹准确性直接决定最终答案正确性。事后迭代优化(Post-hoc Iterative Refinement):模型先生成完整草稿,再通过多轮反馈进行批判和修订(如Self-Refine),但需多次完整前向传播,导致 latency 和计算成本显著增加。内在自校正训练(Training for I

😊你好,我是小航,一个正在变秃、变强的文艺倾年。
🔔本专栏《人工智能》旨在记录最新的科研前沿,包括大模型、具身智能、智能体、强化学习等相关领域,期待与你一同探索、学习、进步,一起卷起来叭!
🚩Paper:REASONING VECTORS: TRANSFERRING CHAIN-OF-THOUGHT CAPABILITIES VIA TASK ARITHMETIC
💻时间:202510
💭推荐指数:🌟🌟🌟🌟🌟
💭开源代码:https://github.com/2020-qqtcg/SRGen
往期精彩专栏内容,欢迎订阅:
🔗【低训练&测试时推理】20251014:测试时针对特定样本进行语言模型优化
🔗【免训练&强化学习】】20250619:训练无关的组相对策略优化
🔗【多智能体&强化学习】20250619:基于统一多模态思维链的奖励模型
🔗【多智能体&强化学习】20250615:构建端到端的自主信息检索代理
🔗【多智能体】20250611:基于嵌套进化算法的多代理工作流
🔗【多智能体】20250610:受木偶戏启发实现多智能体协作编排
🔗【多智能体】20250609:基于LLM自进化多学科团队医疗咨询多智能体框架
🔗【具身智能体】20250608:EvoAgent:针对长时程任务具有持续世界模型的自主进化智能体
简介
大语言模型(LLMs)已能通过长思维链(CoT)解决复杂推理任务(如数学计算、程序合成),但其生成的推理轨迹准确性直接决定最终答案正确性。当前主流提升推理可靠性的方法主要分为两类:
- 事后迭代优化(Post-hoc Iterative Refinement):模型先生成完整草稿,再通过多轮反馈进行批判和修订(如Self-Refine),但需多次完整前向传播,导致 latency 和计算成本显著增加。
- 内在自校正训练(Training for Intrinsic Self-Correction):通过强化学习(RL)等技术将校正能力嵌入模型参数(如S²R),但需大规模昂贵训练,且仅能在错误生成后干预,属于“被动纠错”。
两类方法均存在反应式(reactive)缺陷:仅在错误发生后进行修正,无法主动规避高风险决策点的错误;且前者开销大、后者训练成本高,难以在实际推理场景中高效应用。
SRGen提出“测试时主动预防错误”的新思路:在 autoregressive 生成过程中,通过动态熵阈值监测实时识别高不确定性token(即推理关键节点),针对这些节点实时优化临时校正向量,在不修改模型参数、不增加额外完整生成轮次的前提下,主动引导模型生成更可靠的token,从源头减少错误传播。
大白话解释:LLM生成文本时像“一次性写作”,写错了只能后续修改;SRGen则像“边写边检查”,遇到不确定的词(如数学推理中的关键公式符号)时,先快速调整思路再写,避免一错到底,且“检查”过程不额外占用太多时间和计算资源。
研究方法
自回归:序列中每个位置的生成仅依赖于之前已生成的部分,即通过逐步预测下一个元素的方式构建完整序列。
SRGen将自反思机制嵌入 自回归(Autoregressive, AR) 解码过程,每一步生成包含“不确定性监测”和“自反思优化”两个阶段,整体流程如图1所示:
- 阶段1:动态不确定性监测(Dynamic Uncertainty Monitoring):定位高风险token
- 阶段2:自反思优化(Self-Reflective Optimization):针对性校正token概率分布

阶段1:动态不确定性监测
不确定性量化指标
采用token预测熵衡量模型对下一个token的不确定性,对于生成步骤 t t t,给定前缀 y < t = ( y 0 , . . . , y t − 1 ) y_{<t}=(y_0,...,y_{t-1}) y<t=(y0,...,yt−1),下一个token的预测熵定义为:
H t = H ( p ( ⋅ ∣ y < t ) ) H_t = H(p(\cdot | y_{<t})) Ht=H(p(⋅∣y<t))
其中 p ( ⋅ ∣ y < t ) p(\cdot | y_{<t}) p(⋅∣y<t)是模型对下一个token的概率分布(由softmax输出得到),熵值越高表示模型对下一个token的选择越不确定。
动态阈值计算
为适配不同模型、任务和生成阶段的熵分布差异(如Qwen2.5-Math-7B与Qwen3-32B的熵值范围相差3个数量级),SRGen维护一个大小为 N N N的滑动熵窗口 H t = { H t − N , . . . , H t − 1 } \mathcal{H}_t = \{H_{t-N},...,H_{t-1}\} Ht={Ht−N,...,Ht−1},计算窗口内熵的均值 μ ( H t ) \mu(\mathcal{H}_t) μ(Ht)和标准差 σ ( H t ) \sigma(\mathcal{H}_t) σ(Ht),当当前熵满足以下条件时触发自反思:
H t > μ ( H t ) + k ⋅ σ ( H t ) H_t > \mu(\mathcal{H}_t) + k \cdot \sigma(\mathcal{H}_t) Ht>μ(Ht)+k⋅σ(Ht)
其中 k k k为灵敏度超参数(实验中设为4),该规则能有效区分“自然高熵片段”和“异常不确定性峰值”(即推理关键风险点)。
阶段2:自反思优化
校正向量设计
当触发自反思时,引入临时校正向量 δ ∈ R d \delta \in \mathbb{R}^d δ∈Rd( d d d为模型隐藏层维度,初始化为0),将其注入当前步骤的隐藏状态 h t − 1 h_{t-1} ht−1,修改下一个token的logits:
l o g i t s t ′ = W ( h t − 1 + δ ) logits_t' = \mathcal{W}(h_{t-1} + \delta) logitst′=W(ht−1+δ)
其中 W \mathcal{W} W是模型的词汇投影头(LM Head)参数, δ \delta δ仅针对当前高风险token优化,生成后立即丢弃,避免对后续正常生成产生干扰。
双目标混合损失函数
- 若仅追求“降低不确定性”(如直接最小化下一个token的熵),可能导致模型“盲目自信”——将概率集中到高频但上下文不匹配的token(如数学推理中错误选择公式符号),破坏已有推理轨迹的连贯性;
- 若仅追求“保持上下文一致”(如强制校正后与已有前缀匹配),则无法有效修正模型对当前高风险token的不确定预测,失去自反思的意义。
为平衡“降低不确定性”和“保持上下文一致性”,设计混合损失 L S R G e n \mathcal{L}_{SRGen} LSRGen优化 δ \delta δ:
L S R G e n ( δ ; λ , y < t ) = ( 1 − λ ) L C E ( y < t ; δ ) + λ L A E M ( y < t ; δ ) \mathcal{L}_{SRGen}(\delta; \lambda, y_{<t}) = (1-\lambda)\mathcal{L}_{CE}(y_{<t};\delta) + \lambda\mathcal{L}_{AEM}(y_{<t};\delta) LSRGen(δ;λ,y<t)=(1−λ)LCE(y<t;δ)+λLAEM(y<t;δ)
- 回顾性上下文损失( L C E \mathcal{L}_{CE} LCE):确保校正不破坏已有前缀的语义一致性,计算校正后模型对已有前缀的负对数似然:
L C E ( y < t ; δ ) = − ∑ i = 0 t − 2 l o g p ( y i + 1 ∣ y ≤ i , δ ) \mathcal{L}_{CE}(y_{<t};\delta) = -\sum_{i=0}^{t-2} log\ p(y_{i+1} | y_{\leq i}, \delta) LCE(y<t;δ)=−i=0∑t−2log p(yi+1∣y≤i,δ)- y < t y_{<t} y<t:截至当前步骤 t t t的已生成前缀(即 y 0 , y 1 , . . . , y t − 1 y_0, y_1, ..., y_{t-1} y0,y1,...,yt−1),是模型推理的“历史轨迹”;
- i i i:遍历前缀中每个token的索引,范围从 0 0 0到 t − 2 t-2 t−2(因需预测 y i + 1 y_{i+1} yi+1,故最后一个前缀片段为 y ≤ t − 2 y_{\leq t-2} y≤t−2,对应预测 y t − 1 y_{t-1} yt−1);
- p ( y i + 1 ∣ y ≤ i , δ ) p(y_{i+1} | y_{\leq i}, \delta) p(yi+1∣y≤i,δ):加入校正向量 δ \delta δ后,模型基于前缀 y ≤ i y_{\leq i} y≤i预测下一个token y i + 1 y_{i+1} yi+1的概率,其计算过程为:
p ( y i + 1 ∣ y ≤ i , δ ) = s o f t m a x ( W ( h i + δ ) ) y i + 1 p(y_{i+1} | y_{\leq i}, \delta) = softmax(\mathcal{W}(h_i + \delta))_{y_{i+1}} p(yi+1∣y≤i,δ)=softmax(W(hi+δ))yi+1
其中:- h i h_i hi:前缀 y ≤ i y_{\leq i} y≤i经过模型编码器后输出的隐藏状态(包含该前缀的语义和逻辑信息);
- W \mathcal{W} W:模型的词汇投影头(LM Head)参数,负责将隐藏状态映射为词汇表维度的logits;
- s o f t m a x ( ⋅ ) softmax(\cdot) softmax(⋅):将logits转换为概率分布,确保所有token的概率和为1;
- [ ⋅ ] y i + 1 [\cdot]_{y_{i+1}} [⋅]yi+1:取概率分布中对应真实token y i + 1 y_{i+1} yi+1的概率值。
L C E \mathcal{L}_{CE} LCE本质是校正后模型对已有前缀的“预测误差”:
- 若 δ \delta δ的校正方向合理,模型对已有前缀中每个 y i + 1 y_{i+1} yi+1的预测概率 p ( y i + 1 ∣ y ≤ i , δ ) p(y_{i+1} | y_{\leq i}, \delta) p(yi+1∣y≤i,δ)会接近1, l o g p ( ⋅ ) log\ p(\cdot) log p(⋅)接近0, L C E \mathcal{L}_{CE} LCE值较小;
- 若 δ \delta δ破坏上下文一致性(如让模型在数学推理中突然改变公式符号),则 p ( y i + 1 ∣ y ≤ i , δ ) p(y_{i+1} | y_{\leq i}, \delta) p(yi+1∣y≤i,δ)会显著降低, l o g p ( ⋅ ) log\ p(\cdot) log p(⋅)接近负无穷, L C E \mathcal{L}_{CE} LCE值急剧增大,从而通过损失优化“惩罚”这种不合理的校正。
- 前瞻性熵最小化损失( L A E M \mathcal{L}_{AEM} LAEM):直接降低当前高风险步骤的不确定性,最小化下一个token的预测熵:
L A E M ( y < t ; δ ) = H ( p ( ⋅ ∣ y < t , δ ) ) \mathcal{L}_{AEM}(y_{<t};\delta) = H(p(\cdot | y_{<t}, \delta)) LAEM(y<t;δ)=H(p(⋅∣y<t,δ))
其中 H ( ⋅ ) H(\cdot) H(⋅)是熵函数,用于量化概率分布的不确定性,对于离散概率分布 p ( v ) p(v) p(v)( v v v代表词汇表中的任意token),熵的定义为:
H ( p ( ⋅ ∣ y < t , δ ) ) = − ∑ v ∈ V p ( v ∣ y < t , δ ) ⋅ l o g p ( v ∣ y < t , δ ) H(p(\cdot | y_{<t}, \delta)) = -\sum_{v \in V} p(v | y_{<t}, \delta) \cdot log\ p(v | y_{<t}, \delta) H(p(⋅∣y<t,δ))=−v∈V∑p(v∣y<t,δ)⋅log p(v∣y<t,δ)
( V V V为模型的词汇表)
同时, p ( ⋅ ∣ y < t , δ ) p(\cdot | y_{<t}, \delta) p(⋅∣y<t,δ)的计算与 L C E \mathcal{L}_{CE} LCE中一致,但聚焦于当前步骤的隐藏状态:
p ( ⋅ ∣ y < t , δ ) = s o f t m a x ( W ( h t − 1 + δ ) ) p(\cdot | y_{<t}, \delta) = softmax(\mathcal{W}(h_{t-1} + \delta)) p(⋅∣y<t,δ)=softmax(W(ht−1+δ))- h t − 1 h_{t-1} ht−1:已生成前缀 y < t y_{<t} y<t对应的最后一个隐藏状态(即步骤 t − 1 t-1 t−1的隐藏状态),直接决定模型对步骤 t t ttoken的预测;
- 与 L C E \mathcal{L}_{CE} LCE不同,此处 p ( ⋅ ) p(\cdot) p(⋅)是整个词汇表的概率分布(而非单个真实token的概率),熵值直接反映模型对“下一个token该选谁”的不确定程度。
- 熵的特性:若模型对下一个token高度确定(如数学推理中“ 121 121 121的平方根是 11 11 11”, p ( 11 ) ≈ 1 p(11)≈1 p(11)≈1,其他token概率≈0),则熵 H ( ⋅ ) H(\cdot) H(⋅)接近0;若模型高度不确定(如无法判断下一步该用“ + + +”还是“ × × ×”,两者概率均≈0.5),则熵 H ( ⋅ ) H(\cdot) H(⋅)接近 l o g 2 ≈ 0.69 log\ 2≈0.69 log 2≈0.69,值越大表示不确定性越高;
- 优化目标:通过最小化 L A E M \mathcal{L}_{AEM} LAEM,迫使模型在加入 δ \delta δ后,对当前步骤 t t t的token预测分布“更尖锐”——即让正确token的概率集中,错误token的概率降低,从而从源头避免高风险错误的生成。
完整算法流程
- 初始化:输入预训练模型 M M M(含LM Head W \mathcal{W} W)、提示 x 0 x_0 x0,初始化生成序列 y = ∅ y=\empty y=∅、步骤 t = 1 t=1 t=1、大小为 N N N的熵滑动窗口 E = ∅ E=\empty E=∅,设置超参数( k k k、 λ \lambda λ、优化步数 T T T、学习率 η \eta η、温度 τ \tau τ)。
- 生成循环(直到生成EOS或达到最大长度):
- 计算当前前缀 x 0 : t x_{0:t} x0:t的最后隐藏状态 h t − 1 = M ( x 0 : t ) h_{t-1} = M(x_{0:t}) ht−1=M(x0:t),投影为logits z = W h t − 1 z = \mathcal{W}h_{t-1} z=Wht−1,计算预测熵 E t = E n t r o p y ( s o f t m a x ( z / τ ) ) E_t = Entropy(softmax(z/\tau)) Et=Entropy(softmax(z/τ))。
- 触发判断:若窗口 E E E已满且 E t > μ ( E ) + k σ ( E ) E_t > \mu(E) + k\sigma(E) Et>μ(E)+kσ(E),进入自反思优化:
- 初始化 δ = 0 \delta=0 δ=0,迭代 T T T次优化:
- 计算 L C E = − ∑ j = 0 t − 2 l o g p ( x j + 1 ∣ x 0 : j , δ ) \mathcal{L}_{CE} = -\sum_{j=0}^{t-2} log\ p(x_{j+1} | x_{0:j}, \delta) LCE=−∑j=0t−2log p(xj+1∣x0:j,δ);
- 计算 L A E M = − ∑ v ∈ V p ( v ∣ x 0 : t , δ ) l o g p ( v ∣ x 0 : t , δ ) \mathcal{L}_{AEM} = - \sum_{v \in V} p(v | x_{0:t}, \delta) log\ p(v | x_{0:t}, \delta) LAEM=−∑v∈Vp(v∣x0:t,δ)log p(v∣x0:t,δ)( V V V为词汇表);
- 计算混合损失 L = ( 1 − λ ) L C E + λ L A E M \mathcal{L} = (1-\lambda)\mathcal{L}_{CE} + \lambda\mathcal{L}_{AEM} L=(1−λ)LCE+λLAEM,反向传播更新 δ = δ − η ∇ δ L \delta = \delta - \eta \nabla_{\delta}\mathcal{L} δ=δ−η∇δL。
- 初始化 δ = 0 \delta=0 δ=0,迭代 T T T次优化:
- 生成token:若触发优化,使用 z = W ( h t − 1 + δ ) z = \mathcal{W}(h_{t-1} + \delta) z=W(ht−1+δ)采样 y t ∼ s o f t m a x ( z / τ ) y_t \sim softmax(z/\tau) yt∼softmax(z/τ);否则直接用原始 z z z采样。
- 更新状态:将 y t y_t yt追加到 y y y,更新前缀 x 0 : t + 1 = x 0 : t ⊕ y t x_{0:t+1} = x_{0:t} \oplus y_t x0:t+1=x0:t⊕yt, t = t + 1 t=t+1 t=t+1,将 E t E_t Et加入窗口 E E E并保留最近 N N N个值。
- 输出:返回生成序列 y y y。

计算开销优化
SRGen的开销主要来自 δ \delta δ的实时优化,公式为:
O v e r h e a d ≈ N a c t × T × C b p Overhead \approx N_{act} \times T \times C_{bp} Overhead≈Nact×T×Cbp
其中 N a c t N_{act} Nact是自反思触发次数(仅高风险token触发,稀疏性高)、 T T T是 δ \delta δ优化步数(实验中设为3)、 C b p C_{bp} Cbp是单次反向传播成本。实验表明,整体开销稳定在约50%,远低于事后迭代优化的“倍数级开销”。
实验设计
验证SRGen在不同模型、不同数学推理任务上的有效性、通用性、与其他方法的兼容性,以及开销可控性。
| 模型名称 | 规模 | 架构 | 训练范式 |
|---|---|---|---|
| Qwen2.5-Math-7B | 7B | Qwen | SFT(数学微调) |
| DeepSeek-R1-Distill-Qwen-7B | 7B | Qwen | 蒸馏+RL(推理强化) |
| DeepSeek-R1-Distill-Llama-8B | 8B | Llama | 蒸馏+RL(推理强化) |
| Qwen3-32B | 32B | Qwen | SFT(通用微调) |
任务选择(高难度数学推理,需长思维链且错误易传播)
- AIME2024/AIME2025:美国数学邀请赛,需多步骤代数、几何计算;
- HMMT2025:哈佛-麻省理工数学竞赛,含复杂逻辑推理;
- AMC:美国数学竞赛,基础但需精准步骤;
- MATH500:数学推理数据集,用于消融实验和兼容性验证。
实验参数
- 生成配置:Qwen2.5-Math-7B最大长度4096 token,其他模型32768 token;温度 τ = 0.6 \tau=0.6 τ=0.6(部分实验 τ = 0 \tau=0 τ=0),核采样top-p=0.95;
- SRGen超参数: δ \delta δ优化步数 T = 3 T=3 T=3,学习率 η = 0.01 \eta=0.01 η=0.01,熵窗口大小 N = 25 N=25 N=25,灵敏度 k = 4 k=4 k=4,损失权重 λ = 0.05 \lambda=0.05 λ=0.05;
- 硬件:NVIDIA A800-80G GPU;
- 基线:各模型原始生成结果(无SRGen)。
评价指标
- Avg@k:k次独立生成的Pass@1平均值,衡量单次生成质量(k=5);
- Cons@k:k次生成结果通过自一致性投票后的准确率,衡量高质量推理路径的收敛性(k=5);
- Pass@k:k次生成中至少1次正确的概率,衡量模型探索能力(k=5);
- ** latency**:平均每任务生成时间,衡量计算开销。
结果分析

- Avg@5提升:在AIME2024上,DeepSeek-R1-Distill-Qwen-7B提升12.0%(49.3%→61.3%),Qwen3-32B提升6.0%(76.7%→82.7%);AMC任务中Qwen2.5-Math-7B提升7.2%(34.0%→41.2%),验证单次生成质量提升。
- Cons@5提升:AIME2024上,Qwen2.5-Math-7B提升16.6%(6.7%→23.3%),Qwen3-32B提升10.0%(80.0%→90.0%),说明SRGen生成的推理路径质量更高,自一致性投票效果更优。
- Pass@5保持稳定:多数任务中Pass@5与基线持平或小幅提升(如AIME2025上Qwen2.5-Math-7B提升13.7%),证明SRGen仅优化错误路径,不损害模型探索能力。


- 计算开销:Qwen2.5-Math-7B在AIME2024上平均每任务触发约6次自反思,额外 latency 稳定在50%,远低于事后迭代优化的“多倍开销”;
- 兼容性:与SLOT结合时,Qwen2.5-Math-7B在MATH500上准确率从63.8%(基线)→70.6%(SRGen+SLOT),超过单独使用SLOT(64.2%)或SRGen(69.4%),证明其可作为“插件”与其他测试时方法协同。

- 消融实验显示: λ ∈ [ 0.05 , 0.2 ] \lambda \in [0.05, 0.2] λ∈[0.05,0.2]、 N ∈ [ 25 , 40 ] N \in [25, 40] N∈[25,40]、 k ∈ [ 2.5 , 4 ] k \in [2.5, 4] k∈[2.5,4]、 T ∈ [ 3 , 7 ] T \in [3, 7] T∈[3,7]、 η ∈ [ 0.01 , 0.1 ] \eta \in [0.01, 0.1] η∈[0.01,0.1]时,模型准确率稳定在71%±1%,说明SRGen对超参数不敏感,易部署。
📌 [ 笔者 ] 文艺倾年
📃 [ 更新 ] 2025.10.15
❌ [ 勘误 ] /* 暂无 */
📜 [ 声明 ] 由于作者水平有限,本文有错误和不准确之处在所难免,
本人也很想知道这些错误,恳望读者批评指正!

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐


所有评论(0)