从RLHF到DPO
RM过程
在先前的RLHF之中, 我们有一个表示偏好的Loss
L=E(x,yw,yl)∼Dlog(σ(rϕ(x,yw))−σ(rϕ(x,yl)))
这个loss我们从直观意义上解释了一下这样设计的效果, 但要从里面发掘更多东西, 乃至进一步推广到DPO, 我们还要走一遍这玩意的“推导”过程
如何评价人类对不同答案的“偏好”? 我们不妨先考虑一个简单的, 两个答案之中选择一个更喜欢的的情况(多个答案时, 可以加上排名的权重因子Ck21, 也可以拆成多个两个答案比较的pair)
也就是说我们两个答案, 一个是更喜欢的,叫win; 一个是不那么喜欢的, 叫lose. 我们希望模型能够把win的得分高于lose, 也就是说rϕ(x,yw)>rϕ(x,yl)
对于人类而言, 选择win的概率是1, 即P(rϕ(x,yw)>rϕ(x,yl)∣x)=1,而对于模型而言,我们希望它尽可能去拟合人类的选择, 也就是模型的分布去接近人类的分布
从两个分布得到loss, 一个常见的想法就是交叉熵H(p,q)=−∑j=1np(xj)logq(xj)=−Eplogq, 其中p是真实分布, q是模型分布
对于模型而言, 常见的对事物的比较关系的建模是BT model(Bradley–Terry model), 也就是说rϕ(x,yw)>rϕ(x,yl)的概率是er(x,yw)+er(x,yl)er(x,yw)=σ(rϕ(x,yw)−rϕ(x,yl)) (上下同除一个分子)
那模型分布和人类分布的二分布交叉熵BCE= −Ep(x,yw,yl)logσ(rϕ(x,yw)−rϕ(x,yl))=−E(x,yw,yl)∼Dlogσ(rϕ(x,yw)−rϕ(x,yl)) (1*log + 0*...
)
所以我们偏好的Loss就是这个BCE
RL过程
有了reward model, 在RL过程之中我们的训练目标是这样的(ref是原始模型)
maxπθEx∼D,y∼πθ(y∣x)[rϕ(x,y)]−βDKL[πθ(y∣x)∣∣πref(y∣x)]
πθ就是我们的LLM
DPO的作者发现了什么呢, 这个式子是有显式解的!并且这个显式解表明了我们可以把reward model合进RL过程, 我们的模型自己就是一个隐藏的reward model!
具体的推导过程是这样的
展开KL散度, 我们有
DKL[πθ(y∣x)∣∣πref(y∣x)]=−πθ(y∣x)logπθ(y∣x)πref(y∣x)=Ey∼πθ(y∣x)[logπref(y∣x)π