一、什么是大模型的“安全”与“对齐”?
安全 在大模型语境下,不仅指传统软件的无漏洞、无崩溃,更核心的是指模型不会产生有害、不道德、有偏见或违法的输出。对齐 则是让模型的行为与人类的价值观、意图和偏好保持一致。简单说,安全是“不做坏事”,对齐是“做好事”。一个对齐的模型应当遵循用户的指令,同时遵守诸如诚实、无害、乐于助人等基本准则。
提示:安全是对齐的底线要求。一个对齐的模型必然是安全的,但一个安全的模型(比如从不回答任何问题)未必是对齐的。
二、为什么对齐问题如此棘手?
对齐问题的难度源于其内在的复杂性:
- 价值观的多元与模糊性:不同文化、群体甚至个体的价值观存在差异,甚至冲突。例如,对于“政治正确”的定义就充满争议。我们很难用一个简单的规则去定义“善”。
- 目标函数的局限性:大模型是通过优化一个巨大的数学目标函数(如下一个词的预测准确率)来训练的。这个过程并没有直接编码人类的道德观。即使我们试图用“遵循指令”作为目标,也可能被模型以“捷径”方式实现(例如,对所有指令都回答“好的”,而并不真正理解)。
- 分布外泛化的挑战:模型在训练数据中学习到的“安全”模式,在面对新颖、刁钻甚至恶意的用户输入(即越狱攻击)时可能完全失效。
三、对齐的核心技术:基于人类反馈的强化学习(RLHF)
目前业界最主流的对齐方法是 RLHF。其核心思想是引入人类判断作为“导航仪”,指导模型优化方向。主要分三步:
- 监督微调:在高质量的指令-回答数据上微调基础模型。
- 训练奖励模型:让人类对模型的多个回答进行排序,基于这些排序数据训练一个“奖励模型”,它能给任意回答打出一个符合人类偏好的分数。
- 强化学习优化:使用PPO等算法,以奖励模型的分数作为奖励信号,进一步优化语言模型,使其生成奖励更高的回答。
# 概念性代码:简化的RLHF奖励模型训练数据准备
import torch
# 假设我们有模型对同一个问题生成的两个回答
prompt = "如何缓解焦虑?"
response_good = "建议进行深呼吸、规律运动和与朋友倾诉。如果持续严重,请寻求专业帮助。"
response_bad = "别想那么多,喝点酒就忘了。"
# 奖励模型的目标是学习人类偏好:good > bad
# 实际训练中,会将prompt与good/bad分别拼接,输入模型得到分数
# 损失函数会鼓励 good 的分数高于 bad 的分数,且差距大于一个margin
margin = 1.0
loss = torch.nn.ReLU()(margin - (score_good - score_bad))
四、对齐工具箱里的其他方法
除了RLHF,研究者们还在探索多种对齐技术:
- Constitutional AI:让模型根据一套预设的“宪法原则”(如“回答应无害、真实”)进行自我批评和修正,减少对人类反馈的依赖。
- 直接偏好优化:一种比RLHF更简洁、稳定的替代方案,直接根据偏好数据优化策略模型,无需训练单独的奖励模型和进行复杂的强化学习。
- 系统级防护:在模型外部设置“安全网”,如输入过滤器、输出检测器和规则引擎,作为最后一道防线。这并非改变模型本身,而是约束其行为。
五、开源社区的对齐实践
对于开发者而言,理解和实践对齐并非遥不可及。以Hugging Face生态为例,提供了丰富的工具: