直接偏好优化(DPO)
/ dy-REKT PREF-er-ens op-tim-eye-ZAY-shun /
直接偏好优化,是一种更简单、更便宜的办法,去做RLHF所做之事:教模型偏好「人们所偏好」的答案。RLHF走的是一条绕路——先在人类投票上训练一个独立的奖励模型,再对着它跑一个精细娇气的强化学习循环。DPO把这两步合而为一:它用人类的偏好配对(这个答案比那个好),以一套寻常的训练流程,直接调整模型——不需要独立的奖励模型,也不需要那个难伺候的RL循环。
直观地说:DPO不去先造一个裁判、再在裁判面前练习,而是推导出一个单一的数学目标,其意思大致是「让被偏好的答案更可能出现、让被拒绝的更不可能,但别离原模型漂得太远」。目标与RLHF一样——把模型往「人类所偏好的回答」上倾斜——却走了一条更稳定、更好跑的路,寻常团队用不太高端的硬件也能驾驭。
不宜把它吹过了头。DPO继承了一切偏好学习最深的局限:它能教给模型的,至多就是偏好数据里本已包含的东西。若人类的比较带偏见、肤浅,或奖励那些听上去自信的胡话,DPO会一丝不苟地为之优化,正如RLHF一样。DPO让偏好微调更平易近人,却没让它更明智。在实际中,DPO与RLHF谁的效果更好,要看数据、模型与任务——没有谁能一概胜出。
一个小团队手握2万对标注好的「回复A比回复B好」的配对。若走RLHF,他们得训练一个奖励模型、再调一个娇气的RL循环。若走DPO,他们把这些配对直接喂进一次微调,便得到一个倾向于「A」风格答案的模型——而所用的配置,是他们负担得起的。
用与RLHF同样的偏好数据,却只需一次直截了当的训练。
DPO(2023年提出)最好理解为:与RLHF同一道菜的另一种做法——对齐人类偏好——而非一个不同或更好的目标。它更稳定、远更易上手,但它无论如何也无法超越所喂偏好数据的质量。