RRHF(Rank Responses to align Human Feedback)出自2023年4月的论文《RRHF: Rank Responses to Align Language Models with Human Feedback without tears》,是较早提出的不需要使用PPO来对齐人类偏好的方法。
设输入数据记为x,输出记为y,奖励函数为R(x,y),待训练模型记为 π \pi π(从模型 ρ \rho ρ初始化得到)。
在训练前,先对输入从不同来源采样输出(response)构建数据集,来源包括待训练模型、ChatGPT、GPT-4、人工标注的高质量和低质量输出。训练时,对于一个输入x,就有k个不同的输出
y
i
y_i
yi(
1
≤
i
≤
k
1 \le i \le k
1≤i≤k),奖励函数给每一个
y
i
y_i
yi的打分为
R
(
x
,
y
i
)
=
r
i
R(x, y_i) = r_i
R(x,yi)=ri,为了使模型与分数
{
r
i
}
k
\{ r_i\}_k
{ri}k对齐,让模型
π
\pi
π对每一个
y
i
y_i
yi使用下式计算分数
p
i
p_i
pi:
p
i
=
−
∑
t
log
P
π
(
y
i
,
t
∣
x
,
y
i
,
<
t
)
∣
∣
y
i
∣
∣
(
1.1
)
p_{i}=-\frac{\sum_{t} \log P_{\mathcal{\pi}}\left(y_{i, t} \mid x, y_{i,<t}\right)}{||y_i||} \qquad (1.1)
pi=−∣∣yi∣∣∑tlogPπ(yi,t∣x,yi,<t)(1.1)
p
i
p_i
pi是模型
π
\pi
π 下
y
i
y_i
yi的对数条件概率,目的是使模型
π
\pi
π对高质量输出给更大概率,对低质量输出给小概率。使用如下ranking loss来优化这个目标:
L
r
a
n
k
=
∑
r
i
<
r
j
m
a
x
(
0
,
p
i
−
p
j
)
(
1.2
)
L_{rank} = \sum_{r_i < r_j} max(0, p_i - p_j) \qquad (1.2)
Lrank=ri<rj∑max(0,pi−pj)(1.2)
此外要求模型从最高奖励的输出学习,损失与SFT的交叉熵损失类似:
i
′
=
a
r
g
m
a
x
i
r
i
L
f
t
=
−
∑
t
log
P
π
(
y
i
′
,
t
∣
x
,
y
i
′
,
<
t
)
(
1.3
)
i^{\prime} = \mathop{arg max}_i\ { r_i} \\ L_{ft} = - \sum_t \log P_{\mathcal{\pi}}\left(y_{i^{\prime}, t} \mid x, y_{i^{\prime},<t}\right) \qquad (1.3)
i′=argmaxi riLft=−t∑logPπ(yi′,t∣x,yi′,<t)(1.3)
RRHF的最终目标为这两部分损失之和:
L
=
L
r
a
n
k
+
L
f
t
(
1.4
)
L = L_{rank} + L_{ft} \qquad (1.4)
L=Lrank+Lft(1.4)