safe-rlhf
首个将安全约束以数学形式引入 RLHF 训练的开源框架,通过 Cost Model + Lagrange 优化实现大模型 Helpful 与 Harmless 的双目标对齐
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
首个将安全约束以数学形式引入 RLHF 训练的开源框架,通过 Cost Model + Lagrange 优化实现大模型 Helpful 与 Harmless 的双目标对齐
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2023 年 5 月,一个让整个 AI 社区既兴奋又焦虑的时刻:ChatGPT、Claude 们已经能够写出流畅的代码、创作感人的小说、解答复杂的数学问题,但它们偶尔仍会「失控」——给出危险的制造说明、传播虚假信息,或在用户诱导下突破安全边界。彼时主流的 RLHF(人类反馈强化学习)方法只教 AI 追求「更有帮助」(helpful),却忽略了另一个同等重要的维度——「更少伤害」(harmless)。
北京大学 PKU-Alignment 团队正是在这个节点发布了 Safe RLHF 框架及其开源实现 safe-rlhf(项目代号 Beaver,海狸)。与单纯追求helpful 的传统 RLHF 不同,Safe RLHF 引入了一个「安全护栏」——通过训练专门的 Cost Model(成本模型) 来量化模型的潜在危害风险,并与 Reward Model(奖励模型)形成双轨约束。简单来说,它让 AI 在追求「最大化有用性」的同时,被一条不可逾越的成本线约束,确保模型不会为了讨好用户而突破安全底线。
2023 年 7 月,团队在此基础上开源了首个安全对齐的 7B 大模型 Beaver,并配套发布了一个包含超过 30 万条标注的 PKU-SafeRLHF 数据集,成为 AI 安全研究的重要基础设施。2024 年 1 月,相关论文被 ICLR 2024 录用为 Spotlight 论文,标志着学术界对该方向的正式认可。
图1:PKU Beaver 项目官方 Logo——海狸象征着「工程师般的勤劳与精准构建」
传统 RLHF 的目标函数是最大化人类偏好奖励:
$$\max_{\pi} \mathbb{E}_{\tau \sim \pi}[R(\tau)]$$
Safe RLHF 则在此基础上加入了 拉格朗日约束,将目标变为一个受约束的优化问题:
$$\max_{\pi} \mathbb{E}{\tau \sim \pi}[R(\tau)] \quad \text{s.t.} \quad \mathbb{E}{\tau \sim \pi}[C(\tau)] \leq \delta$$
其中 $R(\cdot)$ 是 Reward Model(奖励模型),$C(\cdot)$ 是 Cost Model(成本模型),$\delta$ 是安全阈值。项目通过 PPO-Lagrange(PPO-LAG)算法 来求解这一约束优化问题:策略梯度由奖励信号驱动,但拉格朗日乘子 $\lambda$ 动态调整,当 episode 平均成本超过阈值时增大 $\lambda$ 以惩罚危险行为,当成本在安全范围内时保持较小惩罚。
图2:Safe RLHF 的数学框架——在奖励最大化的同时,通过成本约束确保安全边界
safe-rlhf 提供了一套端到端的训练管线,覆盖大模型对齐的完整生命周期:
scripts/sft.sh 支持 HuggingFace 和 DeepSpeed 两种后端。项目支持 LLaMA、ChatGLM、Alpaca 等主流开源大模型,并针对 DeepSpeed 进行了深度优化,支持多机多卡分布式训练。
图3:Safe Alignment 示意——模型在 helpful(奖励)和 harmless(安全)两个维度上同时优化
项目采用清晰的模块化设计,核心结构如下:
safe_rlhf/algorithms/:实现了三种训练算法的 Trainer 类——PPOTrainer(标准 PPO)、PPOLagTrainer(安全 PPO,核心)、PPORewardShapingTrainer(奖励塑形 PPO)、DPOTrainer(DPO,直接偏好优化)。每个算法有独立的子目录,包含完整的训练逻辑。safe_rlhf/trainers/:抽象基类 TrainerBase 定义训练器通用接口,RLTrainer 实现 RL 训练通用流程(数据加载、PPO 采样、梯度更新),SupervisedTrainer 实现 SFT 训练流程。safe_rlhf/models/:AutoModelForScore 自动封装 Reward/Cost 模型,支持 score_type 参数区分奖励模式和成本模式,ScoreModelNormalizer 实现分数归一化。safe_rlhf/evaluate/:bigbench 模块支持 BIG-bench 评测,gpt4 模块支持 GPT-4 自动化评估,arena 模块支持双模型对比评测。safe_rlhf/serve/:推理服务模块,提供交互式 CLI Demo 和 Arena 评测界面。scripts/:预置的训练脚本,覆盖 SFT、Reward Model、Cost Model、PPO、PPO-LAG 全流程。依赖方面,项目基于 PyTorch + Transformers,训练后端使用 DeepSpeed(ZeRO 优化、混合精度),评估工具支持 WandB 和 TensorBoard,推理使用 HuggingFace GenerationConfig。Dockerfile 基于 CUDA 11.8 镜像,内置虚拟环境配置,支持 nvidia-docker 直接运行。
团队开源的 PKU-SafeRLHF 数据集是该项目的核心配套资源:
_PKU-Alignment/PKU-SafeRLHF-10K 和 PKU-Alignment/PKU-SafeRLHF。Safe RLHF 是一个研究级训练框架,不是开箱即用的推理工具。其硬件门槛较高:
| 组件 | 最低要求 |
|---|---|
| GPU | NVIDIA A100 40GB×1 或 RTX 3090 24GB×1(单卡 LLaMA-7B) |
| 多机训练 | 支持 DeepSpeed 多机多卡(需 InfiniBand 或高速网络) |
| 内存 | 64GB+ RAM |
| 存储 | 100GB+(模型权重 + 数据集 + 中间 checkpoint) |
训练流程需要手动配置:设置 WANDB_API_KEY(WandB 日志)、准备基础模型权重(如 LLaMA-7B)、修改脚本中的路径和超参数。Docker 容器化方式相对简单,make docker-run 即可进入配置好的训练环境。
Safe RLHF 的发布填补了 RLHF 从「helpful only」到「helpful + harmless」的关键空白。它的意义不仅在于算法本身,更在于:
未来,团队计划扩展到更大规模模型(LLaMA-13B/30B)、更多安全场景(如多语言安全对齐、持续学习中的安全遗忘),以及与 Constitutional AI 等其他安全框架的融合。
图4:Beaver 模型与其他对齐方法在 Safety 和 Helpfulness 维度上的评测对比