> 技术文档 > 【论文阅读】AdaReasoner: Adaptive Reasoning Enables More Flexible Thinking_adathinking论文

【论文阅读】AdaReasoner: Adaptive Reasoning Enables More Flexible Thinking_adathinking论文


AdaReasoner: Adaptive Reasoning Enables More Flexible Thinking

      • 3. AdaReasoner
        • 3.1 动机
        • 3.2 问题定义
        • 3.3 动作选择过程
          • 3.3.1 动作空间定义
          • 3.3.2 动作选择
        • 3.4 探索策略
        • 3.5 强化学习训练
          • 3.5.1 训练算法
          • 3.5.2 目标函数
          • 3.5.3 损失函数

AdaReasoner: Adaptive Reasoning Enables More Flexible Thinking这篇文章介绍了AdaReasoner,一个旨在提高大型语言模型(LLM)在复杂推理和问题解决任务中的灵活性和性能的自适应框架。AdaReasoner通过动态调整推理配置(如温度、推理步骤等)来优化模型的表现,这些配置由一个经过强化学习(RL)训练的代理动态调整。文章强调了现有方法(如Chain-of-Thought [CoT] 和 Tree-of-Thought [ToT])在处理不同类型任务时的局限性,并提出AdaReasoner能够通过自适应配置和自反思机制来克服这些局限。

这篇博客仅简要概括其方法上的创新点,不包含文章的理论分析部分。
【论文阅读】AdaReasoner: Adaptive Reasoning Enables More Flexible Thinking_adathinking论文

3. AdaReasoner

3.1 动机

尽管链式思维(CoT)和其他类似的大型语言模型(LLM)推理方法已经被广泛研究并证明在许多任务中有效,但它们仍然无法在所有类型的问题上实现理想的表现。例如,像笑话生成或隐喻解释这样的任务通常需要发散性和创造性的推理,而现有的方法在这些任务上表现不佳。AdaReasoner 通过使用强化学习(RL)训练的代理动态调整推理配置(如温度、推理步骤和推理指令),结合自反思机制和强大的选择机制,提高了模型的灵活性和性能。

3.2 问题定义

AdaReasoner 的目标是自适应地找到给定问题 𝑞 𝑞 q 的最有效超参数配置 𝑎 𝑎 a,使得 LLM(记为 Φ Φ Φ)生成正确的推理答案 Φ(𝑞∣𝑎) Φ(𝑞|𝑎) Φ(qa)。更具体地,配置 𝑎 𝑎 a 是一个三维向量,每个元素对应一个超参数:

  • 𝑎 𝑡 𝑎_𝑡 at:生成温度
  • 𝑎 𝑝 𝑎_𝑝 ap:推理指令格式
  • 𝑎 𝑠 𝑎_𝑠 as:推理步骤数
3.3 动作选择过程

AdaReasoner 的动作选择过程通过将策略分解为独立的组件来实现,每个组件负责一个特定的超参数设置(如温度、推理步骤和推理指令)。这种分解使得优化空间从乘法减少到加法,从而提高了优化效率。

3.3.1 动作空间定义
  • 推理步骤 (Reasoning Steps) 𝒜𝑠: 动作空间定义为 {𝑥 | 𝑥 ∈ Z, 3 ≤ 𝑥 ≤ 10},即推理步骤数在3到10之间。
  • 温度 (Temperature) 𝒜𝑡: 动作空间定义为 {0.0 + 0.1𝑘 | 𝑘 ∈ Z, 0 ≤ 𝑘 ≤ 10},即温度值在0.0到1.0之间,步长为0.1。
  • 推理指令 (Reasoning Instructions) 𝒜𝑝: 动作空间定义为 {base + variation},即每个动作对应一个基础指令和一个变体的组合。
3.3.2 动作选择

AdaReasoner的神经架构如图2所示,输入查询问题在经过嵌入后,会经历三次动作选择,然后被发送到LLMs进行推理以生成答案。虽然嵌入是由预训练模型(如预训练的BERT模型 [Wolf et al., 2020])执行的,但AdaReason的可训练神经网络参数由三个并行通道组成,每个通道对应一个动作,以及一个共享的公共层。

  1. 输入问题的嵌入 Embed ( q ) \\text{Embed}(q) Embed(q) 首先通过公共层,得到 h = f θ c( Embed ( q ) ) h = f_{\\theta_c}(\\text{Embed}(q)) h=fθc(Embed(q)),其中 θ c \\theta_c θc 是公共层的参数(例如,一个全连接的MLP), h h h 捕获了确定动作所需的特征。
  2. 然后 h h h 被发送到每个通道,动作选择如下:
    a p ∼ π p ( ⋅ ∣ h ) = f θ p ( h ) , a t ∼ π t ( ⋅ ∣ h ) = f θ t ( h ) , a s ∼ π s ( ⋅ ∣ h ) = f θ s ( h ) a_p \\sim \\pi_p(\\cdot | h) = f_{\\theta_p}(h), \\quad a_t \\sim \\pi_t(\\cdot | h) = f_{\\theta_t}(h), \\quad a_s \\sim \\pi_s(\\cdot | h) = f_{\\theta_s}(h)apπp(h)=fθp(h),atπt(h)=fθt(h),asπs(h)=fθs(h)
3.4 探索策略

通过将每个问题的配置选择问题建模为多臂赌博机(Multi-Armed Bandit, MAB)问题,我们的目标是在少样本训练设置下设计一种有效的探索策略。然而,由于奖励是从LLM输出间接得出的,并且该过程不是在线学习场景,因此标准的MAB策略(如Upper Confidence Bound (UCB) [Sutton and Barto, 2018])变得不切实际。此外,对每个上下文𝑞评估所有配置在计算上是不可行的,特别是考虑到由LLM响应引起的噪声和隐式奖励景观。因此,广泛探索配置空间的同时优先选择高奖励动作变得至关重要,Boltzmann探索提供了一个有效的解决方案 [Pan et al., 2019],因为它允许代理根据估计的奖励概率选择动作。

具体来说,对于每个动作( a t a_t at, a s a_s as a p a_p ap),我们估计其所有可能值(在 A t A_t At, A s A_s As A p A_p Ap中)的选择概率:

P ( a i ) = exp ⁡ ( Q ( a i) τ ) ∑ a j ∈ A exp ⁡ ( Q ( a j) τ ) (3) P(a_i) = \\frac{\\exp\\left(\\frac{Q(a_i)}{\\tau}\\right)}{\\sum_{a_j \\in \\mathcal{A}} \\exp\\left(\\frac{Q(a_j)}{\\tau}\\right)} \\tag{3} P(ai)=ajAexp(τQ(aj))exp(τQ(ai))(3)

其中, Q( a i ) Q(a_i) Q(ai) 是策略网络 f θ f_\\theta fθ 输出层中动作 a i a_i ai 的logit分数。Boltzmann探索中的温度参数 τ \\tau τ 控制探索与利用之间的权衡:较高的 τ \\tau τ 促进探索,较低的 τ \\tau τ 有利于利用。文章以指数方式退火 τ \\tau τ,即 τ t = τ 0 ⋅ α t \\tau_t = \\tau_0 \\cdot \\alpha^t τt=τ0αt,其中 t≤T t \\leq T tT,这使得策略能够逐渐从广泛的探索转向可靠的配置选择和精细优化。

3.5 强化学习训练

为了使AdaReasoner能够学习最有效的配置策略,文章采用了一个预训练的奖励模型来评估推理配置的有效性。该模型通过将生成的答案与训练数据中的参考答案进行比较,提供反馈以指导代理的学习,使其能够在有限的指导下(即少样本学习)高效地获取有效的配置。为了促进探索和提高泛化能力,文章采用了Boltzmann探索机制,使代理能够在训练过程中更有效地探索和优化配置。AdaReasoner 使用强化学习(RL)算法进行训练,具体使用的是REINFORCE算法。

3.5.1 训练算法

Algorithm 1: AdaReasoner Algorithm

【论文阅读】AdaReasoner: Adaptive Reasoning Enables More Flexible Thinking_adathinking论文

3.5.2 目标函数

AdaReasoner 的目标函数 𝐽(Θ) 𝐽(Θ) J(Θ) 定义为:
𝐽 ( Θ ) = E 𝑞 ∼ 𝐷 E 𝑎 ∼ Π Θ ( ⋅ ∣ 𝑞 ) [ 𝑟 ( Φ ( 𝑞 ∣ 𝑎 ) , 𝑅 ) ] 𝐽(Θ) = \\mathbb{E}_{𝑞∼𝐷} \\mathbb{E}_{𝑎∼ΠΘ(·|𝑞)} \\left[ 𝑟(Φ(𝑞 | 𝑎), 𝑅) \\right] J(Θ)=EqDEaΠΘ(q)[r(Φ(qa),R)]

在AdaReasoner的RL设置中,奖励被归一化到 [0, 1] 范围,策略使用平滑参数化(如应用于线性logits的softmax函数)。这使得目标函数 𝐽(Θ) 𝐽(Θ) J(Θ) 𝐿 𝐿 L-平滑的,即目标函数的梯度变化不会太剧烈,基于采样的梯度估计具有有界的方差。形式上,存在一个常数 𝐿>0 𝐿 > 0 L>0,使得对于所有 Θ Θ Θ Θ ′ Θ\' Θ
∥ ∇ 𝐽 ( Θ ) − ∇ 𝐽 ( Θ ′ ) ∥ ≤ 𝐿 ∥ Θ − Θ ′ ∥ \\| \\nabla 𝐽(Θ) - \\nabla 𝐽(Θ\') \\| \\leq 𝐿 \\| Θ - Θ\' \\| ∥∇J(Θ)J(Θ)L∥ΘΘ

3.5.3 损失函数

每个头的损失函数定义为:
L 𝑗 = − 𝑟 log ⁡ Π θ 𝑗 ( 𝑎 ∣ 𝑞 , Φ ) ℒ𝑗 = -𝑟 \\log Π\\theta_𝑗 (𝑎 | 𝑞,Φ) Lj=rlogΠθj(aq,Φ)

总损失函数为:
L = ∑ 𝑗 ∈ { 𝑝 , 𝑡 , 𝑠 }L 𝑗 ℒ = \\sum_{𝑗∈\\{𝑝,𝑡,𝑠\\}} ℒ𝑗 L=j{p,t,s}Lj

梯度通过链式法则计算,共享层的梯度聚合为:
∇ θ 𝑐L = ∑ 𝑗 ∈ { 𝑝 , 𝑡 , 𝑠 } ∇ θ 𝑐L 𝑗 \\nabla_{\\theta_𝑐} ℒ = \\sum_{𝑗∈\\{𝑝,𝑡,𝑠\\}} \\nabla_{\\theta_𝑐} ℒ𝑗 θcL=j{p,t,s}θcLj

更新参数:
θ 𝑐 ← θ 𝑐 − η ∇ θ 𝑐L \\theta_𝑐 ← \\theta_𝑐 - \\eta \\nabla_{\\theta_𝑐} ℒ θcθcηθcL

θ 𝑗 ← θ 𝑗 − η ∇ θ 𝑗L 𝑗 ∀ 𝑗 ∈ { 𝑝 , 𝑡 , 𝑠 } \\theta_𝑗 ← \\theta_𝑗 - \\eta \\nabla_{\\theta_𝑗} ℒ𝑗 \\quad \\forall 𝑗 ∈ \\{𝑝, 𝑡, 𝑠\\} θjθjηθjLjj{p,t,s}