【读论文】How Can LLM Guide RL? A Value-Based Approach

code

让RL用少量样本数据就能学好

我们开发了一种名为LINVIT的算法,该算法将LLM的指导作为基于值的RL中的正则化因子,从而显著减少了学习所需的数据量,特别是在理想策略与LLM提供的策略之间的差异较小时,这表明初始策略接近最优,减少了对进一步探索的需求。此外,我们提出了一种实用的算法SLINVIT,它简化了值函数的构建,并通过使用子目标来降低搜索复杂度。

LINVIT:Language-INtegrated Value Iteration 语言集成值迭代

由LLMs驱动的智能体在探索不同策略方面的能力有限,常常倾向于重复已有的策略。这一局限在LLMs未专门适应的复杂决策场景中尤为明显,导致它们在仅依靠自身能力对环境反馈进行推理时,难以有效地优化策略

将LLMs用作正则化器,而不是直接将其用于决策。

算法全过程

以下是**Algorithm 1: Language-INtegrated Value Iteration (LINVIT)**的详细解释和流程说明:


算法输入

  • 目标精度 ϵ\epsilon:算法需要达到的精度要求。
  • 目标概率 δ\delta:算法需要满足的概率保证。
  • 奖励函数 b0b_0b0,KLb_{0,KL}:用于计算值函数的奖励和正则化项。

算法流程

1. 外层循环(for t = 0, ..., T)

  • 算法通过TT次迭代逐步优化策略。
  • 每次迭代tt包括以下步骤:

2. 模型和不确定性估计

  • 步骤2:构建模型估计器PhtP^t_h和不确定性量化器uhtu^t_h
    • 模型估计器Pht(ss,a)P^t_h(s'|s, a)用于估计状态转移概率:
      Pht(ss,a)=nht(s,a,s)nht(s,a)如果nht(s,a)>0 P^t_h(s'|s, a) = \frac{n^t_h(s, a, s')}{n^t_h(s, a)} \quad \text{如果} \quad n^t_h(s, a) > 0,
      否则Pht(ss,a)1SP^t_h(s'|s, a) \triangleq \frac{1}{S}
    • 不确定性量化器uht(s,a)u^t_h(s, a)用于衡量状态-动作对(s,a)(s, a)的不确定性:
      uht(s,a)max{2H,log(4HTS2A/δ)nht(s,a)} u^t_h(s, a) \triangleq \max\left\{2H, \sqrt{\frac{\log(4HTS^2A/\delta)}{n^t_h(s, a)}}\right\}。

3. 计算乐观和悲观值函数

  • 步骤3:计算乐观值函数Vht\overline{V}^t_h和悲观值函数Vht\underline{V}^t_h
    • 乐观值函数Vht\overline{V}^t_h通过以下公式计算:
      Qht(s,a)=clip(rh(s,a)+sPht(ss,a)Vh+1t(s)+uht(s,a)), \overline{Q}^t_h(s, a) = \text{clip}\left(r_h(s, a) + \sum_{s'} P^t_h(s'|s, a) \overline{V}^t_{h+1}(s') + u^t_h(s, a)\right),
      Vht(s)=maxπΔA{aπ(as)Qht(s,a)λKL(π(s)πhLLM(s))}. \overline{V}^t_h(s) = \max_{\pi \in \Delta_A} \left\{\sum_a \pi(a|s) \overline{Q}^t_h(s, a) - \lambda \text{KL}\left(\pi(\cdot|s) \| \pi^{\text{LLM}}_h(\cdot|s)\right)\right\}.
    • 悲观值函数Vht\underline{V}^t_h通过以下公式计算:
      Qht(s,a)=clip(rh(s,a)+sPht(ss,a)Vh+1t(s)uht(s,a)), \underline{Q}^t_h(s, a) = \text{clip}\left(r_h(s, a) + \sum_{s'} P^t_h(s'|s, a) \underline{V}^t_{h+1}(s') - u^t_h(s, a)\right),
      Vht(s)=maxπΔA{aπ(as)Qht(s,a)λKL(π(s)πhLLM(s))}. \underline{V}^t_h(s) = \max_{\pi \in \Delta_A} \left\{\sum_a \pi(a|s) \underline{Q}^t_h(s, a) - \lambda \text{KL}\left(\pi(\cdot|s) \| \pi^{\text{LLM}}_h(\cdot|s)\right)\right\}.

4. 计算探索策略

  • 步骤4:计算探索策略πt\pi^t
    • 探索策略πht(s)\pi^t_h(\cdot|s)通过以下公式生成:
      πht(s)=1H1{a=*argmaxQht(s,a)Qht(s,a)}+H1Hπˉht(s), \pi^t_h(\cdot|s) = \frac{1}{H} \cdot \mathbb{1}\{a = \operatorname*{argmax} \overline{Q}^t_h(s, a) - \underline{Q}^t_h(s, a)\} + \frac{H-1}{H} \cdot \bar{\pi}^t_h(\cdot|s),
      其中πˉht(s)\bar{\pi}^t_h(\cdot|s)是在正则化MDP中的最优策略。

5. 内层循环(for h = 1, ..., H)

  • 步骤5-8:在每个时间步hh中执行以下操作:
    • 步骤6:根据探索策略πht(s)\pi^t_h(\cdot|s)采样动作ahta^t_h
    • 步骤7:执行动作ahta^t_h,并观察环境返回的下一状态sh+1ts^t_{h+1}
    • 这个过程重复HH次,直到完成一个完整的回合。

6. 返回最终策略

  • 步骤10:返回最终策略π^\hat{\pi},它是所有迭代策略{πˉt}t=1T\{\bar{\pi}^t\}_{t=1}^T的均匀混合。
    • 最终策略π^\hat{\pi}的计算方式为:
      π^=1Tt=1Tπˉt. \hat{\pi} = \frac{1}{T} \sum_{t=1}^T \bar{\pi}^t.

算法的作用和关键点

  1. 模型和不确定性估计

    • 通过收集的数据估计状态转移模型和不确定性,为后续值函数计算提供基础。
  2. 乐观和悲观值函数

    • 乐观值函数鼓励探索不确定性高的区域,悲观值函数避免过度探索。
    • 通过KL散度将LLM的策略作为正则化项引入,确保RL策略不会偏离LLM策略太远。
  3. 探索策略生成

    • 利用乐观和悲观值函数的差异生成探索策略,平衡探索与利用。
  4. 数据收集与策略优化

    • 通过执行探索策略收集更多数据,逐步优化策略。
  5. 最终策略

    • 返回所有迭代策略的均匀混合,作为最终策略。

总结

  • LINVIT算法通过结合LLM的策略先验和环境反馈,显著提高了RL的样本效率。
  • 乐观值函数悲观值函数在探索与利用之间找到平衡,而KL散度确保RL策略不会偏离LLM策略太远。
  • 最终策略是所有迭代策略的均匀混合,能够在复杂决策任务中取得更好的表现。

method

KL散度取值范围是0到正无穷

1. KL散度是计算什么的?

KL散度(Kullback-Leibler Divergence)是一种用于衡量两个概率分布之间差异的度量。假设有两个概率分布PPQQ,KL散度的计算公式为:
KL(PQ)=xP(x)logP(x)Q(x). \text{KL}(P \| Q) = \sum_x P(x) \log \frac{P(x)}{Q(x)}.
在本文中,KL散度用于衡量**当前策略π(s)\pi(\cdot|s)LLM提供的策略πLLM(s)\pi^{\text{LLM}}(\cdot|s)**之间的差异。具体来说:
KL(π(s)πLLM(s))=aπ(as)logπ(as)πLLM(as). \text{KL}\left(\pi(\cdot|s) \| \pi^{\text{LLM}}(\cdot|s)\right) = \sum_a \pi(a|s) \log \frac{\pi(a|s)}{\pi^{\text{LLM}}(a|s)}.

  • 如果π\piπLLM\pi^{\text{LLM}}非常相似,KL散度接近于零。
  • 如果π\piπLLM\pi^{\text{LLM}}差异较大,KL散度会增大。

2. 正则化项是什么意思?

正则化项(Regularization Term)是在优化问题中引入的一个附加项,用于对模型的复杂性或行为进行约束。正则化的目的是防止模型过拟合或偏离某种期望的行为。

在本文中,KL散度被用作正则化项,目的是将LLM的策略πLLM\pi^{\text{LLM}}作为先验知识引入RL算法中,从而约束RL策略π\pi的行为,使其不会偏离LLM提供的策略太远。


3. 简单例子

假设我们有一个简单的任务:在一个迷宫中找到出口。LLM提供了一个策略πLLM\pi^{\text{LLM}},建议智能体在大多数情况下向右走。RL算法需要学习一个策略π\pi,但为了避免智能体完全忽略LLM的建议,我们在目标函数中引入KL散度作为正则化项:
目标函数=累积奖励λKL(ππLLM). \text{目标函数} = \text{累积奖励} - \lambda \cdot \text{KL}(\pi \| \pi^{\text{LLM}}).

  • 如果RL策略π\pi完全遵循LLM的策略πLLM\pi^{\text{LLM}},KL散度为0,正则化项不起作用。
  • 如果RL策略π\pi偏离LLM的策略πLLM\pi^{\text{LLM}},KL散度会增加,从而惩罚这种偏离。

通过这种方式,RL算法在最大化累积奖励的同时,也会尽量遵循LLM提供的策略。


4. 为什么减去正则化项即可起到作用?

减去正则化项的作用是通过优化目标函数来平衡两个目标:

  1. 最大化累积奖励:RL算法的核心目标是找到能够最大化累积奖励的策略。
  2. 最小化KL散度:通过减去KL散度,RL算法被鼓励选择与LLM策略πLLM\pi^{\text{LLM}}接近的策略。

具体来说:

  • 当RL策略π\pi与LLM策略πLLM\pi^{\text{LLM}}差异较大时,KL散度会增加,目标函数的值会减小,从而惩罚这种偏离。
  • 当RL策略π\pi与LLM策略πLLM\pi^{\text{LLM}}接近时,KL散度会减小,目标函数的值会增大,从而鼓励RL策略利用LLM提供的先验知识。

通过这种方式,正则化项起到了以下作用:

  1. 提高样本效率:当LLM的策略接近最优策略时,RL算法可以更快地收敛到最优解,而不需要从头开始学习。
  2. 平衡探索与利用:正则化项确保RL策略不会完全偏离LLM提供的策略,从而在探索和利用之间取得平衡。
  3. 增强鲁棒性:即使LLM的策略不是最优的,RL算法仍然可以通过环境反馈找到最优策略,因为正则化项只是一个软约束。

5. 总结

  • KL散度用于衡量当前策略与LLM策略之间的差异。
  • 正则化项通过减去KL散度,将LLM的策略作为先验知识引入RL算法中,从而约束RL策略的行为。
  • 减去正则化项的作用是平衡最大化累积奖励和最小化策略差异,从而提高样本效率、平衡探索与利用,并增强算法的鲁棒性。
赞赏