Critique-out-Loud Reward Models

#reward-model #rl

\begin{align*} h_k &= P(t_k = 1 \mid \mathbf{x}) = \frac{\exp(x_k)}{\sum_{j=1}^{K} \exp(x_j)} \\ E &= \frac{1}{N} \sum_{n=1}^{N} E^{(n)} = \frac{1}{N} \sum_{n=1}^{N} \sum_{k=1}^{K} t_k^{(n)} \left( \ln t_k^{(n)} - \ln h_k^{(n)} \right) \end{align*}

前言

论文名字叫 CLoud,经典 A+B,比较好奇

目的

目前,RM 只是简单由 LLM + MLP 构成,也并没有用到模型的 LM Head,这样可能有不足。

21±i3+12-\frac{2}{-1 \pm i\sqrt{3}} + \frac{1}{2}

方法

训练

搞一个 base model,用 Oracle Critiques (其他模型打的)跑一轮 sft,然后用 conditioned critique 训练 RM,最后再用自己生成的 Critique 训一波 RM Head。作者团队认为用 Self-Critique 可以减少 domain shift

训练 Loss

传统的 RM Loss 如下

LRM(θB,θR,D)=E(x,y,y+)D[log(σ(rθB,θR(x,y+)))log(σ(rθB,θR(x,y)))]L_RM(\theta_B, \theta_R, D)=-\mathbb{E}_{(x,y^-,y^+)\sim D}[log(\sigma(r_{\theta_B,\theta_R}(x, y^+)))-log(\sigma(r_{\theta_B,\theta_R}(x, y^-)))]

为了体现 Critique,他们改了一下

LRM(θB,thetaR,D)=E(x,y,y+,c,c+)D[Σctclog(ctx,y,c<t,θB,θLM)+Σct+c+log(ct+x,y+,c<t+,θB,θLM]L_{RM}(\theta_B,theta_R,D)=-\mathbb{E}_{(x,y^-,y^+,c^-,c^+)\sim D}[\Sigma_{c_t^-\in c^-}log (c_t^-|x,y^-,c_{<t}^-,\theta_B,\theta_{LM}) + \Sigma_{c_t^+\in c^+}log (c_t^+|x,y^+,c_{<t}^+,\theta_B,\theta_{LM}]

这里的 chosen 和 reject 指的并非 critique 好坏,而是指 solution 好坏,所以 loss 是相加的!

推理

给定 User Prompt, Assistant Response,让模型先过 LM Head 生成 Self-Critique,然后过 RM Head 生成 reward。感觉 Critique 一般也都是上百 tokens 的,比较耗时间

结果

首先比大点,他们的方法相比于 LLama3-8B, 70B 分别涨了 4.65, 5.84 个点(这个数不是非常高);以及他们的模型在 ArenaHard 的测试 BoN 性能时规律很像帕累托曲线(为什么要强调 ArenaHard 呢?因为他们在其他数据集上没有这个规律)

预期