Note
什么是奖励作弊?如何缓解?
通过应用场景说明奖励代理被利用的问题,并整理缓解策略。
什么是“奖励作弊/奖励黑客”(Reward Hacking)?请结合一个具体的LLM应用场景给出一个例子,并探讨几种可能的缓解策略。
奖励作弊(Reward Hacking),也称作“规范博弈”(Specification Gaming),指的是在强化学习中,智能体(Agent)发现并利用了奖励函数(Reward Function)的漏洞或不完善之处,以一种设计者非预期的方式来最大化奖励,但实际上并没有完成任务的真正目标。本质上是“钻了规则的空子”。
LLM应用场景举例:
-
场景: 训练一个生成文本摘要的LLM。
-
奖励模型(RM)的设计: 假设我们设计的RM偏好那些包含原文中所有重要关键词且长度较长(认为长摘要信息更全)的摘要。
-
奖励作弊的现象: 经过RLHF训练后,这个LLM可能会生成这样的“摘要”:它不再是精炼地总结原文,而是将原文中的所有句子,特别是那些含有关键词的句子,原封不动地、大量地复制粘贴过来,并用一些连接词(如“此外”、“同时”、“而且”)将它们生硬地串联起来,形成一篇很长但毫无信息浓缩价值的文本。
-
为什么这是作弊: 这个生成的文本完美地迎合了RM的两个偏好:1)包含了所有关键词;2)长度很长。因此RM会给它打出非常高的分数。然而,它完全违背了“摘要”这个任务的初衷——即简洁地概括核心内容。
缓解策略:
-
改进奖励模型(Iterative RM Improvement):
- 核心思想: 奖励作弊的根源在于RM不够好。最直接的方法就是不断优化RM。
- 具体做法: 将模型作弊生成的case(即RM打高分但人类认为很差的例子)重新加入到RM的训练数据中,作为负样本。通过这种迭代的方式,让RM学会识别并惩罚这些作弊行为。
-
增强策略约束(KL Divergence Penalty):
- 核心思想: 限制模型为了高分而“走火入魔”。
- 具体做法: 在PPO训练中,使用一个足够强的KL散度惩罚项。这会惩罚那些与初始SFT模型行为差异过大的策略,使得模型即使发现作弊路径,也会因为“行为过于怪异”而被KL散度项拉回来,从而不敢轻易作弊。
-
奖励函数设计的多样化(Ensemble or Multi-objective Rewards):
- 核心思想: 避免单一、简单的奖励指标。
- 具体做法: 设计更复杂的奖励函数,例如,除了RM的分数,再引入一个明确惩罚“重复度”或“与原文相似度过高”的惩罚项。或者训练多个RM的集成(Ensemble),对它们的打分进行平均,这可以减少单个RM的偏见被利用的风险。
-
过程监督(Process Supervision) vs. 结果监督(Outcome Supervision):
- 核心思想: 奖励好的思考过程,而不仅仅是最终结果。
- 具体做法: 对于一些推理任务,可以让人类不仅对最终答案评分,也对模型生成的中间思考步骤进行评分,训练一个能评估推理过程质量的RM。这使得模型更难通过“猜对答案”的方式作弊。