先这样答
chosen 和 rejected 的差异太小,会让偏好信号变弱,梯度方向也会变得不稳定。训练会在两答案之间摇摆,收敛变慢,甚至不收敛。模型最后学到的可能是噪声,而不是真实偏好。面试里可以从训练影响和数据构造两方面回答。
构造偏好数据时,要让两份答案处在同难度、同主题的比较里。两份答案的质量要有明确差异,但差异点也要能具体描述。比如,一份答案写得长篇大论,另一份答案切中要点。这样的差异能帮助模型学习偏好。完全相反的极端也不合适,比如一个答案很好,另一个答案出现灾难性错误。这样的好坏太容易分辨,训练就学不到细粒度偏好。因此,合适的 pair 既不能差异太小,也不能简单到只剩明显好坏。
面试官会怎么追问
-
「如果训练在两答案间摇摆,你先判断什么?」 我会先看 chosen 和 rejected 的差异是否足够明确。若两者同难度、同主题,却只有很小的质量差别,偏好信号就弱,梯度方向容易不稳定。此时训练可能变慢,甚至不收敛。
-
「什么样的 pair 更适合拿来做 DPO 训练?」 我会选同难度、同主题的两份答案。两份答案要有明确的质量差异,而且差异点能够具体描述。比如一份长篇大论,另一份切中要点,后者作为 chosen,前者作为 rejected。
-
「为什么不能直接选一个好答案和一个灾难性错误答案?」 这种 pair 虽然容易分辨,但提供的信息太少。模型能分出明显的好坏,却学不到细粒度偏好。偏好数据需要保留质量比较,同时让差异足够明确。
回答的坑
- 把“差异太小”只说成收敛慢,漏掉梯度方向不稳定、训练摇摆和学到噪声。
- 为了让偏好明确,使用一个好答案和一个灾难性错误答案,结果让比较过于容易,学不到细粒度偏好。
同系列的题
—— 本题完 ——