最近一些关于训练对话模型强化学习中奖励函数设计的工作,有一些启发,记录一下。

CURIO: Curiosity-driven User-modeling Reward as an Intrinsic Objective

TLDR:

在做对话模型时,使用常规RL训练,其奖励函数对所有训练数据做相同的计算,优化的方向都一致,导致对于所有用户,模型的回复模式,方式都一致。这实际上对于对话模型(尤其是助手类/陪伴类对话模型)并不是最优解。 作者基于此引入belief update,模型通过用户每轮的回复,逐渐优化belief function,最终实现模型能够在对话中逐渐了解用户的特性/类型,从而给出更能让用户满意的回复。

default name
图1: RL fine-tuning Pipeline for CURIO framework in one episode

INSIGHT:

概率化用户建模

信念$b_t$:$t$时刻对用户类型$u$的概率分布估计,基于贝叶斯更新信念:

$$ b_{t+1}(u_i)= \frac{P(s_{t+1}\vert s_t,a_t,u_i)\cdot b_t(u_i)}{\sum_j P(s_{t+1}\vert s_t,a_t,u_j)\cdot b_t(u_j)} $$

其中

  • $b_t(u)$为时间步$t$,智能体认为用户类型为$u$的概率
  • $P(s_{t+1}\vert s_t, a_t, u)$为假设用户类型$u$,给定当前对话状态$s_t$和动作$a_t$下,观察到下一个状态$s_{t+1}$的概率
  • $b_{t+1}(u)$为观察到新的对话状态后,更新后的用户类型分布

实际建模$P(s_{t+1}\vert s_t, a_t, u)$难度较大,因为$s_t$可以是任意长度的对话历史,可以基于LLM做一个简单的用户分类器:

$$ b_{t+1}=f_\theta(s_{t+1}) $$

Rewards设计:差分奖励

总奖励公式:

$$ r_t=\alpha\cdot R_t-\beta\cdot D_{KL}(\pi_\theta\Vert \pi_{ref}) + \alpha_{int}\cdot(\gamma\phi(b_{t+1})-\phi(b_t)) $$

其中$\gamma\phi(b_{t+1})-\phi(b_t)$为差分奖励,$\phi$为单调增函数,只要$t+1$时刻对用户预测概率高于$t$时刻,就给到一个正向奖励,否则给负向奖励。

$\phi$的三种形式,$u^*$为真实用户类别

  • 线性:$R_{int}=\gamma\cdot b_{t+1}(u^*)-b_t(u^*)$
  • 对数:$R_{int}=\gamma\cdot\log b_{t+1}(u^*)-\log b_t(u^*)$
  • 熵:$R_{int}=H(b_t)-\gamma\cdot H(b_{t+1})$,其中$H(b_t)=-\sum_i b_t(u_i)\log b_t(u_i)$

其中,对数形式对于边际效益做了较低的奖励,鼓励早期模型快速挖掘用户类型,当置信度较高时就可以不用再专注提升这块奖励,而是重心放在提升对话质量上了;而熵的话可能存在奖励的提升但对应的不是正确的用户类别。论文实验中表明使用对数形式的差分奖励性能最好。

Potential-based Reward Shaping

有时候,我们希望通过添加一些额外的奖励信号来引导智能体更快的学习,但又不想改变最优策略(类似化学反应的酶),这被称为Reward Shaping。

  1. 为啥论文这种奖励不改变最优策略

假设原始回报为

$$ R(\tau)=\sum_{t=0}^{T-1}\gamma^t\cdot r(s_t,a_t,s_{t+1}) $$

引入差分奖励后的回报:

$$ \begin{align} R^\prime(\tau)&=\sum_{t=0}^{T-1}\gamma^t\cdot[r(s_t,a_t,s_{t+1})+\gamma\phi(b_{t+1})-\phi(b_t)]\\ &=R(\tau)+\gamma^T\phi(b_T)-\phi(b_0) \end{align} $$

因此,优化后的回报为原始回报增添一个常数,不会改变函数最优解

  1. 为啥能加速学习

改变了训练过程中的奖励,提供了更加密集的反馈信号。

Summary

这篇文章提供了一个比较新颖的多轮强化学习中的奖励建模方式,当然也只能应用于多轮强化的场景,对于单轮强化学习,没法直接运用。

这篇论文是在工作时组内例行分享了解到的,博客中的内容基本源于分享的文档,在此特别感谢相关同学的分享。

Confession Reward: Training LLMs for Honesty via Confessions

这篇谷歌的工作提出,让模型忏悔,强化模型忏悔的能力,从而间接提高模型在生成正常文本时的性能(诚实性、指令遵循等等)

default name
图2: The confession approach to LLM honesty

整体来说,在RL训练过程中,模型正常rollout完,在message列表末尾拼接一个新的confession system prompt,让模型基于前面rollout结果以及原始system prompt做一遍忏悔,忏悔完,这时候又一个专门评估忏悔的RM会对模型的忏悔打分,这部分奖励得到的优势会仅仅作用于模型忏悔的输出token上。

References

[1] Wan et al. “Enhancing Personalized Multi-Turn Dialogue with Curiosity Reward” arXiv preprint axXiv:2504.03206 (2025).

[2] Joglekar et al. “Training LLMs for Honesty via Confessions” OpenAI, 2025.