问题1:为什么在RLHF中通常使用PPO算法,而不是DQN或Policy Gradient?
考察点:对PPO优势的理解,以及将其应用于大模型场景的考量。
期望回答:
稳定性:PPO通过裁剪等技巧,能有效防止策略更新步幅过大,避免训练崩溃。这对于训练一个极其昂贵的大模型至关重要。
在线学习:PPO是一种在线策略算法,能有效利用当前策略产生的数据。
适用于连续动作空间:语言生成本质上是在一个巨大的词表(动作空间)上进行采样,PPO非常适合处理这种高维连续动作空间的问题。
问题2:奖励模型是如何训练的?损失函数是什么?
考察点:对奖励模型训练细节的掌握。
期望回答:RM的训练被构建为一个排序学习问题。给定一个提示和两个候选回答(A和B),以及人类标注的偏好(如A > B)。损失函数通常使用配对排序损失,例如基于Bradley-Terry模型的交叉熵损失: loss = -log(sigmoid(r_theta(A) - r_theta(B))) 这个损失函数会鼓励RM对优选回答A的打分 r_theta(A) 显著高于对回答B的打分 r_theta(B)。
问题3:在RLHF的RL阶段,除了奖励模型给出的奖励,通常还会加入哪些额外的奖励或惩罚项?为什么?
考察点:理解防止“奖励黑客”和模型退化的重要技巧。
期望回答:
KL惩罚项:这是最关键的一项。它惩罚当前RL策略模型与初始SFT模型输出之间的KL散度。目的是防止模型为了获得高RM奖励而“走火入魔”,生成一些虽然RM打分高但事实上毫无意义、怪异或偏离自然语言的文本。它起到了一个“锚定”的作用,确保模型不会偏离太远。
熵奖励:有时会加入一个小的熵奖励,鼓励策略保持一定的随机性,避免过早地收敛到单一模式。