SafeGRPO: Self-Rewarded Multimodal Safety Alignment via Rule-Governed Policy Optimization¶
会议: CVPR 2026
论文: CVF Open Access
代码: https://github.com/XuankunRong/SafeGRPO
领域: 对齐RLHF / 多模态VLM / AI安全
关键词: 多模态安全对齐、GRPO、规则化奖励、自奖励、组合式安全风险
一句话总结¶
SafeGRPO 把"可验证的规则化奖励"塞进 GRPO,让多模态大模型在无需人工偏好标注的情况下自奖励地学会"先按视觉/文本/组合三层逐步推理安全性、再决定回答还是拒答",在多个安全基准上同时提升越狱防御、安全意识与稳定性,且几乎不损伤通用能力、不引入过度拒答。
研究背景与动机¶
领域现状:多模态大模型(MLLM)把视觉与语言统一进一个框架,能力大涨;安全对齐的主流做法是用大规模监督数据(VLGuard 式 SFT)或偏好数据(DPO)去提升安全性。
现有痛点:MLLM 的风险面比纯文本模型大——组合式安全风险(compositional safety risk) 指单看图安全、单看文本也安全,但二者联合解读却产生有害语义的情况(如一张无害图配一句措辞微妙的指令,合起来暗示有害意图)。当前模型的安全意识"很浅且主要由文本驱动",识别不了这类跨模态隐含风险。近期工作让模型显式"推理潜在风险"来缓解,但放任不受约束的推理反而会破坏原有对齐——推理过程本身可能生成不安全或误导性的 rationale,因为推理与安全优化常被当成两个独立目标,推理轨迹无人监管。
核心矛盾:GRPO 这种"组内比较多条推理轨迹、自奖励精炼"的范式很适合监督推理过程,理论上能用来打磨"安全思考";但安全与伦理合规无法像数学/事实那样被直接验证——RLVR 的可验证奖励在开放式安全判断上失灵,缺少给"安全推理"打分的可信信号。
本文目标:在不依赖外部偏好模型或人工标注的前提下,给 GRPO 造出可验证、细粒度的安全奖励信号,既约束推理轨迹的安全性、又对齐最终行为。
切入角度:既然组合风险来自视觉/文本/组合三层的相互作用,那就把"安全推理"显式拆成这三层的逐步判定,并为每一层提供可被规则核对的 ground-truth 标签——这样安全判断就从"主观开放式"变回"可验证"。
核心 idea:用一个带显式三模态安全标签的数据集(SafeTag-VL-3K)当 ground truth,让模型按"step-guided safety thinking"逐步输出三层安全标签再回答,再用一套规则化奖励(格式门控 × (标签奖励 + 行为奖励))驱动 GRPO 自奖励优化。
方法详解¶
整体框架¶
SafeGRPO 的目标是用规则化、可验证的奖励驱动 GRPO,去对齐多模态推理的"安全性"。整条流水线分三段:先构建 SafeTag-VL-3K 数据集——把 VLGuard、SPA-VL、BeaverTails 的图文对汇集起来,用 GPT-5 重新打三层安全分并按规则过滤,得到带 <visual>/<text>/<combined> 三标签的高一致性子集;训练时模型按 step-guided safety thinking 的结构化 prompt 跑 rollout——先给图配字幕、再逐步判定视觉安全/文本安全/组合安全并打出对应标签,最后据组合标签决定"拒答+解释"还是"正常帮助";每条 rollout 由 rule-governed reward 评分——先过格式门控,再算标签奖励(看三层标签判对没)与行为奖励(看推理结论与最终动作一致没),合成一个标量喂给 GRPO 更新策略。三个关键设计——数据集、step-guided thinking、规则化奖励——正对应下图三段。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["SafeTag-VL-3K 构建<br/>VLGuard+SPA-VL+BeaverTails → GPT-5 三层打分 → 规则过滤"] --> B["Step-Guided 安全思考<br/>5 步逐层判定 + 三模态标签"]
B --> C["策略 rollouts {o_i}"]
C --> D["Rule-Governed 规则化奖励<br/>格式门控 × (标签奖励 + 行为奖励)"]
D --> E["GRPO 组内相对优势更新"]
E -.策略迭代.-> B
关键设计¶
1. SafeTag-VL-3K:把组合式安全风险拆成三层可验证标签
针对"安全无法像数学那样被直接验证"的痛点,本文构造了一个 3K 图文对的 modality-level 数据集,每条标注 <visual_safe>、<text_safe>、<combined_safe> 三个显式标签。数据源刻意混合 VLGuard(原用于 SFT)、SPA-VL(原用于 DPO),覆盖指令遵循与偏好两种安全分布;再把 300 条 BeaverTails 转成"打字稿风格图像"(把文字直接嵌进视觉模态),制造典型的跨模态嵌入攻击样本。
关键在于不沿用原数据集自带的安全标签(各家定义不一致),而是用 GPT-5 当 LLM-as-Judge 对每个图文对 \((x_v,x_t)\) 重标,给出三模态的安全分 \(s_m=\{s_v,s_t,s_c\}\) 与置信度 \(c_m=\{c_v,c_t,c_c\}\),均在 \([0,10]\)。再用阈值规则离散化并过滤模糊样本:\(y_m=\text{unsafe}\) 若 \(s_m\in[0,3]\)、\(=\text{safe}\) 若 \(s_m\in[7,10]\)、否则 discard;并只保留三模态置信度都满足 \(c_m\ge 7\) 的样本。过滤后留下一个高一致性子集(最大类别是"图安全+文本不安全"961 条,还有 300 条"各自安全但组合不安全"的硬样本)。作者强调这是"任务化的安全判定"而非知识蒸馏,并辅以人工核验其可靠性。
2. Step-Guided Safety Thinking:把"安全推理"标准化成可核对的五步
现有对齐范式(SFT/PPO/DPO)只优化最终输出、几乎不管推理过程——模型可能"答案看着安全、但推理路径不安全或自相矛盾"。本文用一个结构化 prompt 强制 reason-before-answering,把推理拆成五步:Step1 给图配字幕、Step2 判视觉安全并输出 <visual_safe>safe/unsafe</visual_safe>、Step3 判文本安全并输出对应标签、Step4 联合视觉与文本判组合安全、Step5 汇总安全结论与风险成因;然后据 Step4 的组合标签——若不安全则礼貌拒答并简述理由、若安全则正常帮助。推理须裹在 <think></think>、答案裹在 <answer></answer>。
形式化地,推理-生成过程为 \(s, y = R_{\text{think}}(x_v, x_t)\),再由规则函数 \((r_{\text{reason}}, r_{\text{answer}}) = F_{\text{rule}}(s, y)\) 同时导出"推理正确性/安全一致性"与"最终行为对齐"两路奖励。这一步把推理拆成可验证的中间状态(三层标签),既让 rollout 之间的标签格式统一、又为奖励提供了稳定可核对的抓手——这正是后面规则化奖励能落地的前提。
3. Rule-Governed Reward:格式门控的多粒度可验证奖励
不依赖学习式或偏好式奖励模型,本文用显式可验证规则从三方面打分:结构格式正确性、模态级安全标签一致性、行为与推断安全的对齐。总奖励是门控线性组合:
其中 \(\mathbb{I}_{\text{format}}\) 是格式门——输出须按预定顺序产全套标签 + 最终答案、可解析才置 1,否则置 0,确保只有结构合法的输出才计算后续安全奖励。
标签奖励 \(R_{\text{tag}}\) 体现组合标签主导的层级化设计:三个标签里 combined 是总安全一致性的主导指标,只有组合标签 \(s_c\) 判对才给有效奖励、否则整项清零;判对时再为视觉/文本标签给部分加分:
\(r_v, r_t\in\{0,1\}\) 表示视觉/文本标签是否匹配参考。行为奖励 \(R_{\text{behavior}}\) 则连接"推理结论"与"外在行为":只有当组合标签判对 且 行为也符合预期(不安全→显式拒答、安全→有用回应)才给 1,否则为 0:\(R_{\text{behavior}} = \mathbb{1}[(s_c=\hat{s}_c)\wedge(a_c=\hat{a}_c)]\)。其中行为 \(a_c\) 由关键词匹配自动判定(命中 "sorry/cannot/unsafe/not allowed" 等拒答指示词即视为拒答)。这套设计把"安全意图"与"外在行为"绑在一起,避免模型嘴上判不安全、却仍给出有害内容。把它接进 GRPO:策略对 query \(q\) 生成一组响应 \(\{o_i\}_{i=1}^G\)、各得规则奖励 \(r_i\),按组均值方差归一化出相对优势 \(A_i=(r_i-\bar r)/(s+\varepsilon)\) 再更新,实现无人工偏好的自奖励对齐。
实验关键数据¶
主实验¶
基座为 Qwen3-VL-4B/8B-Thinking,在 verl 框架上做 GRPO(4×A100、每 prompt 8 rollouts、global batch 256)。评测分三维:越狱防御(FigStep / VLGuard / MM-Safety,Safety Score↑,已线性缩放到 0–100)、安全意识(SIUO,图文各自安全但联合有害,Safety Score↑)、过度敏感(MOSSBench,Refusal Rate↓——安全查询被错误拒答的比例越低越好)。奖励/安全分由 GPT-4o-mini 当 judge。
| 方法(Qwen3-VL-8B-Thinking) | 越狱防御均值↑ | 安全意识 SIUO↑ | 过度敏感 Refusal↓ |
|---|---|---|---|
| 基座 | 89.28 | 86.52 | 21.00 |
| + VLGuard | 97.01 | 90.47 | 95.00 ⚠️ 过度拒答 |
| + ECSO | 95.68 | 89.34 | 26.33 |
| + Think-in-Safety | 97.69 | 88.80 | 64.00 ⚠️ |
| + SafeGRPO | 99.02 | 94.31 | 20.00 |
SafeGRPO 在三维上同时拿到最佳:越狱防御 99.02(比 Think-in-Safety 高 1.33)、安全意识 94.31(最高),而 Refusal Rate 仅 20.00——比基座(21.00)还略低。对照之下,训练式基线 VLGuard、Think-in-Safety 大幅推高过度敏感(Refusal 飙到 95.00 / 64.00),即"用拒一切来换安全"。4B 上结论一致(SafeGRPO 越狱防御 99.21、SIUO 93.85、Refusal 24.33)。
通用能力保持¶
| 方法(Qwen3-VL-8B) | ScienceQA | MathVista | POPE | 5 项均值 | 相对基座 |
|---|---|---|---|---|---|
| 基座 | 91.92 | 60.00 | 87.40 | 77.98 | — |
| + VLGuard | 5.60 | 20.10 | 19.20 | 16.94 | ↓61.04 崩塌 |
| + Think-in-Safety | 39.51 | 58.90 | 63.20 | 52.02 | ↓25.96 |
| + ECSO | 91.92 | 60.00 | 87.60 | 78.04 | ≈持平 |
| + SafeGRPO | 93.26 | 61.10 | 88.20 | 78.75 | ↑0.77 |
VLGuard 这类 SFT 方法因偏离预定结构化输出格式(如 \boxed{})并过拟合安全分布,通用能力几乎崩塌(均值跌 61);SafeGRPO 反而略涨——作者归因于 RL 强化推理能力、且 RL 天然缓解微调式灾难遗忘。
消融实验¶
| 配置(Qwen3-VL-8B) | 安全表现 | 说明 |
|---|---|---|
| Base(无 RL) | 最低 | 不优化 |
| w/ Tag only(仅标签奖励) | 中 | 只有安全感知监督 |
| w/ Behavior only(仅行为奖励) | 中 | 只有推理一致性监督 |
| Full SafeGRPO(两者) | 最高 | 多粒度信号协同 |
去掉标签奖励或行为奖励中任一项,所有安全基准都明显掉点:标签奖励提供显式的安全感知监督,行为奖励增强决策时的推理一致性与安全意识,两者结合才达最高 Safety Score。
关键发现¶
- 过度敏感是安全对齐的隐形代价:VLGuard/Think-in-Safety 把越狱防御做高的同时 Refusal Rate 飙到 64–95,等于"见到安全查询也拒答";SafeGRPO 靠"强化推理而非一刀切拒答"把过度敏感压到 20,是它相对其他方法最突出的优势。
- RL 比 SFT 更不伤通用能力:同样引入推理式数据,Think-in-Safety 的 SFT 本质仍掉点 26,而 SafeGRPO 的 RL 路线不仅不掉反略涨,印证"用可验证奖励做 RL"在"安全 vs 能力"权衡上的优越性。
- 组合标签是层级奖励的支点:标签奖励里组合标签判错就整项清零,把优化重心压在"联合解读出的组合安全"上——这正对应组合式风险这一核心问题。
亮点与洞察¶
- 把不可验证的"安全"重写成可验证的三层标签:通过 SafeTag-VL-3K + step-guided thinking,将开放式安全判断转化为视觉/文本/组合三个可被规则核对的离散标签,让 RLVR 范式得以用在安全对齐上——这是绕开"安全无法直接验证"瓶颈的关键一招。
- 格式门控 × (标签 + 行为) 的奖励结构:用 \(\mathbb{I}_{\text{format}}\) 当硬门、组合标签当层级支点、行为奖励绑定"判断↔动作",整套规则纯可验证、无需偏好模型,可直接迁移到其他"先结构化推理再决策"的对齐任务。
- 同时压住过度敏感:多数安全方法以推高拒答率为代价,SafeGRPO 用"上下文感知的谨慎决策"把 Refusal 压到比基座还低,提供了"安全且不矫枉过正"的范例。
- typo-style 图像样本:把 BeaverTails 文本嵌进图像制造跨模态攻击样本,是一种低成本扩充组合风险覆盖面的数据 trick。
局限与展望¶
- 重度依赖闭源 LLM 当标注与裁判:数据用 GPT-5 重标、评测用 GPT-4o-mini 当 judge,安全分的绝对值与可复现性都受这些闭源模型的偏好影响;作者称其为"任务化标注而非蒸馏",但标签质量上限仍系于 GPT-5。
- 行为判定靠关键词匹配:\(a_c\) 用 "sorry/cannot" 等拒答词来判是否拒答,可能误判(婉转拒答不含关键词、或安全回答恰含这些词),是奖励信号的潜在噪声源。⚠️ 论文未给该匹配的准确率。
- 数据规模与覆盖:SafeTag-VL-3K 仅 3K、且过滤掉了所有"模糊安全"样本——这让监督更干净,但模型可能没学会处理真正处于灰色地带、置信度中等的现实输入。
- 未与更强的 RLHF/偏好式安全方法横比:基线集中在 VLGuard/ECSO/Think-in-Safety,缺与大规模 RLHF 安全对齐的直接对照。
相关工作与启发¶
- vs VLGuard(训练式 SFT 安全对齐):VLGuard 靠精选安全数据做指令微调,结果过度敏感(Refusal≈95)且通用能力崩塌(均值跌 61);SafeGRPO 用可验证规则奖励做 RL,安全更高且通用能力不降反升、过度敏感最低。
- vs ECSO(推理时无训练防御):ECSO 在推理时用 query-aware 的图转文做输入净化,不改权重故几乎不伤通用能力,但安全提升有限(越狱防御 95.68 < SafeGRPO 99.02);SafeGRPO 训练时就把安全推理内化进策略,安全上限更高。
- vs Think-in-Safety(推理引导的 SFT 对齐):同样让模型带安全思考,但其 SFT 本质仍导致通用能力掉 26 且过度敏感升高;SafeGRPO 用 GRPO + 规则奖励监管推理过程本身,避免了"放任推理破坏对齐"的问题。
评分¶
- 新颖性: ⭐⭐⭐⭐ 把组合式安全风险拆成三层可验证标签、再用规则化奖励把 RLVR 引入安全对齐,思路清晰且填补"安全难验证"的空白;但 GRPO、LLM-as-Judge 标注都是既有组件。
- 实验充分度: ⭐⭐⭐⭐ 三维安全 + 五项通用能力 + 双尺度基座 + 奖励消融较完整;但缺与大规模 RLHF 安全方法横比,行为关键词匹配未给准确率。
- 写作质量: ⭐⭐⭐⭐ 动机层层推进、奖励公式交代清楚;部分数据集统计与图表需对照原文。
- 价值: ⭐⭐⭐⭐ 给出"安全且不过度拒答、还不伤通用能力"的可复用对齐范式,SafeTag-VL-3K 数据集对社区有实用价值。