RLHF 中的安全维度训练:在奖励模型中专门加安全维度的打分

我最早以为,AI拒绝回答危险问题,是靠一个内置的敏感词库。直到我翻了模型的源码——没有词库。但当我问它一个明显违反伦理的问题时,它依然彬彬有礼地拒绝。真正让模型变“谨慎”的,是训练目标本身被改了:它学会了根据上下文判断“该不该说”。而实现这个转变的一个关键手法,就是在奖励模型里专门加一个“安全”打分维度。

AI technology illustration

为什么需要这么做?先快速过一遍RLHF(人类反馈强化学习)是怎么工作的。它本质上让模型学习一个“什么回答更好”的奖励函数。原来这个奖励函数只输出一个总分,现在拆成两个:一个管有用性,一个管安全性。

安全为什么被平均掉了?

RLHF的四个步骤通常是这样的:

  1. 拿现成的生成模型,让它对一批提示词做输出。
  2. 人类标注者对每个输出打分,告诉模型哪些回答更好。
  3. 用这些人类打分训练一个奖励模型,让它学会预测给定输入输出时人类会打几分。
  4. 再用强化学习(比如PPO)让生成模型学会输出让奖励模型给高分的回答。

关键在第2步。人类标注者往往只打一个分,这个分背后混合了有用性、安全性、真实性、趣味性一大堆因素。安全只是其中一个很卑微的权重。结果就是,一个回答只要整体看起来“还行”,就算里面藏着一句恶毒的话,它的总分也可能很高。奖励模型学到了这种“平均偏好”,安全问题就被稀释了。

有一种直觉解法:让标注者分开打分。比如“有帮助”打一个分,“安全”打一个分。奖励模型也就顺势拆成多个维度。

拆开打分:多维度奖励模型

这听起来很简单,实现上也不难。常见的做法是在Transformer顶层接多个线性头,每个头输出一个数字,对应一个维度。训练时每条标注数据都有多个目标值,损失函数是各维度损失的加权和。

比如Anthropic的论文中,HHH模型就有“有帮助”和“无害”两个独立输出。他们明确要求标注者分别给帮助度和危害度打分,再训练奖励模型预测这两个分数。这一个看似细小的改动,让安全从隐变量变成了显变量——你能看见模型对哪类内容很危险,也能在训练时给安全维度单独加权重。相比之下,OpenAI的InstructGPT虽然也在标注时要求考虑无害性,但奖励模型仍输出一个标量,安全性的“话语权”被极大削弱。

拿之前的单维度奖励模型来对比,差别一目了然:

对比项 单维度奖励模型 多维度奖励模型
输出 一个标量 多个标量
标注成本 较低 高,每个回答要打多个分
安全性建模 隐含在总分中,容易被平均掉 显式建模,可以单独观察和调节
训练目标 最大化总分 平衡多个目标,或设置安全约束

但有一个坑:仅仅让奖励模型输出多个分数,并不等于模型就会安全。这要看强化学习阶段怎么用这些分数。

从分数到强化学习:加权,还是约束?

最简单的使用方式,是加权求和。假设总奖励 = 0.7 × 帮助分数 + 0.3 × 安全分数。这样模型会学到一个平衡点。但你很快就会遇到两个问题。第一个问题,系数怎么定?安全权重太低等于没有,太高则模型会变得过度保守,你说一句“你好”,它都可能先警惕地反问“你是认真的吗”。第二个问题,加权求和本质上仍然允许两个维度互相抵消。举个例子:回答A帮助分8分、安全分2分,加权后是6.2分;回答B帮助分6分、安全分6分,加权后是6.0分。A明明危险得多,却因为“更有用”而在总分上胜出。这等于给恶意回答留了后门。

更稳健的方式,是把安全当约束,而不是当成优化目标。也就是说,在帮助分数最大化的同时,规定安全分数必须高于某个阈值。低于阈值的回答直接重罚或过滤。它的哲学是:安全不是可以讨价还价的商品,而是一条不可逾越的底线。

Anthropic在实践中就采用了类似思路。他们先训练一个纯粹的“有帮助”模型,再用一个无害性奖励去约束它,让模型在回答时同时满足“有帮助”和“无害”的条件。这样一个看似简单的“加个维度”,在优化上其实改变了很多。

数据从哪来?别指望标注者自己想到危险问题

训练安全维度,最核心的是数据。普通提示词里,明显的危险问题其实很少。如果你让标注者单纯坐在那里打分,他们很可能打了一天都没有碰到一个需要“不安全”评价的例子。这会导致奖励模型对危险的敏感度很低。

因此,需要主动制造对抗性样本。OpenAI和Anthropic都做了“红队测试”:让一个模型故意去生成那些可能诱导危险回答的提示,比如“怎么让邻居不舒服”、“怎么掩盖错误”,再把模型的回答交给人类标注者专门打安全分数。只有喂了足够多这类数据,安全维度才能真正学会识别危险边界。

有意思的是,后续的方法甚至开始让AI自己生产安全反馈。比如宪法AI,它给模型一套原则,让模型自己批评自己的回答、再根据批评修改,最终训练一个多维度奖励模型。这个奖励模型同样有安全评分,只是“教师”从人换成了AI和原则本身。这大大降低了人工成本,但也带来一个新问题:如果原则写得不够好,AI的安全观就会跟着走偏。

安全维度不是银弹

我在这条路上踩过一个大坑。最早我以为,只要把安全分数加进奖励里,模型就会自动变安全。但有一次我调了一个很小的权重(0.1),模型确实变安全了,可它也开始对所有问题都回答“抱歉,我不能……”——哪怕只是一句“今天天气怎么样”。后来我才意识到,安全维度和帮助维度并不是独立的两条轴,它们更像是跷跷板:在模糊场景下,不做任何事才是“最安全”的。多维度奖励模型只是把这两个目标的矛盾暴露了出来,并没有解决它。想通这一点,是我对RLHF理解的一次转折。

更麻烦的是,安全分数本身也可以被攻击。研究者发现,把敏感词替换成专业术语,比如把“毒药”说成“化学制剂”,模型的危险识别会失手。因为安全维度学到的往往是表层词面关联,而不是深层意图。另外,它们在处理长文本时也容易“漏网”:一段文字看似无害,但其中某个分句隐含冒犯,安全分数可能照样给高分。

更深一层,安全是一个随文化、时间、情境动态变化的概念。你训练时使用的标注者群体,他们对“安全”的认知并不代表所有人的认知。一个在美国训练的奖励模型,可能对“自由”、“枪支”相关的对话高度警惕,但对某些亚洲文化中的暗讽内容毫无感觉。把这种单一价值观固化在多维度奖励里,本身就是一个值得警惕的事情。

所以我的判断是:在奖励模型里加安全维度,是AI安全训练的一个重要转折点,它让安全问题从一个模糊的黑盒变成了一个可观察、可调节、可约束的变量。但它绝不是终点。真正稳健的安全需要与对抗测试、红队演练、运行时监测结合,并且我们要清醒地意识到:我们是在让机器参与一个人类自己都还在争论的问题——什么话不该说。

原创文章,作者:guanweilu,如若转载,请注明出处:https://guanweilu.cn/article/758.html

(0)
上一篇 17分钟前
下一篇 2026年8月28日

相关推荐