阅读导航

MAGIC: A Co-Evolving Attacker–Defender Adversarial Game for Robust LLM Safety


作者Xiaoyu Wen*, Zhida He*, Han Qi, Ziyu Wan, Zhongtian Ma, Ying Wen, Tianhang Zheng, Xingcheng Xu, Chaochao Lu, Qiaosheng Zhang
机构Shanghai AI Laboratory · Shanghai Jiao Tong University · Zhejiang University
版本arXiv:2602.01539v2 · 2026-02-06;本解读:2026-10-04;* 为共同第一作者
原始资料论文 HTML · 本地 PDF · 官方代码

把安全训练做成两个模型轮流出题、答题:一个专门把测试问题改得更难,另一个练习识别风险并正确回答。每隔一段训练就交换谁在学习,让测试题随着防御能力一起变化,同时加入无害问题,防止答题模型靠“一律拒绝”得到最高分。

先看结论:有效的对抗训练配方,尚非安全保证

MAGIC 的主要价值,是把攻击者初始化、独立参数和交替 GRPO 更新组合成持续生成训练难题的系统。单轮安全收益明显;多轮残余风险、评估器依赖和能力损失仍需单独审视。

36.5% → 2.3%WildGuardTest 对抗有害集 ASR,Qwen2.5-7B,Table 1
94.9% → 85.4%X-Teaming 多轮 ASR,同一模型,Table 4
38.113% → 30.954%Qwen2.5-14B 的 AlpacaEval 2 胜率,Table 2

这三个数字对应不同测试:前两项越低越好,第三项越高越好。它们共同说明,安全改善有实证支撑,但“通用能力完全不变”和“多轮攻击已解决”都超出了数据。全文数值均为论文报告,本页面未重跑训练或评测。[Table 1–4]

MAGIC two-phase training architecture from Figure 2
原论文 Figure 2:先给攻击者做带 CoT 的 SFT,再轮流固定一方、更新另一方。攻击者的内部推理不发送给防御者;防御者只看到实际改写后的输入。

研究动机:训练时的难题也要更新

固定安全数据集只能覆盖已经收集到的提问方式。当攻击者改换表达、组合已有技巧或根据前一轮回复调整输入时,防御模型可能仍然失败。另一方面,训练模型大量拒绝有害请求,也可能让它误拒绝形式可疑但内容无害的问题。

路线怎样训练或防御MAGIC 针对的缺口
静态安全训练在预先收集的安全样本上优化训练题目不能随模型能力及时变化
Self-RedTeam同一套参数交替承担攻击与防御角色作者认为相反目标会带来梯度冲突
SmoothLLM / Self-Eval推理时扰动输入,或复查输出主要在推理阶段加防线,不持续训练模型本身
MAGIC两套参数,攻击者与防御者交替在线更新同时训练有害拒绝与无害配合,寻找更好的平衡

关键 insight 是:攻击者不只负责找到会让模型输出有害内容的问题,还要找到会让模型错误拒绝的无害问题。后者来自无害训练样本和反向的拒绝奖励,是理解“为什么不是一律拒绝”的关键。

查看论文的动机图
Static red-teaming and shared-parameter self-play motivation
原论文 Figure 1。梯度冲突是作者提出的动机;这张示意图本身不是冲突大小的实验测量。

核心方法:先冷启动,再交替更新

术语速查

术语在这篇论文中具体是什么
Attacker / policy \(\pi_A\)一套独立 LLM 权重,把原始种子问题改写成更难处理的输入
Defender / policy \(\pi_D\)另一套 LLM 权重,接收改写问题并生成最终回复
Action / rollout一次生成的改写文本或回复;同一输入采样多个候选供 GRPO 比较
Reward / judgeQwen3Guard 对回复的有害性、拒绝行为作判定,再按规则转为分数
CoT / history攻击者的私有推理文本;多轮 history 则是此前实际问题和防御回复
SPNESubgame Perfect Nash Equilibrium:要求防御者面对每一个可能输入,都采取最优响应

1. SFT 解决攻击者不愿改写的冷启动

现成 Instruct 模型可能直接拒绝生成攻击性改写。作者用 SorryBench 的 440 个原始有害问题及 20 类改写形成的 8,800 个对抗问题,再由 Gemini-2.5-Pro 补充中间推理。无害部分采样 WildJailBreak 训练集中的 20,000 个原始问题,由 Qwen2.5-Max 生成改写。SFT 更新攻击者;防御者从原始 Instruct 模型开始。[§5.1]

2. 每一阶段只训练一个角色

flowchart LR
 A["Mixed seeds"] --> B["Frozen attacker"]
 B --> C["Defender rollouts"]
 C --> D["Judge rewards"]
 D --> E["Update defender"]
 E --> F["Freeze defender"]
 F --> G["Attacker rollouts"]
 G --> H["Judge responses"]
 H --> I["Update attacker"]
 I --> B
drag to pan · scroll to zoom
阅读顺序从左至右:固定攻击者时,同一改写采样多条防御回复;固定防御者时,同一种子采样多条攻击改写,再分别获得防御回复和分数。下一周期使用更新后的攻击者。

RL 数据包含 15,000 个有害种子和 15,000 个无害种子,均取自 WildJailBreak 训练集。GRPO 把同组候选的奖励标准化,增加相对高分候选的生成概率;不需要单独学习 value model。表中的 rollout 数量为 4,攻击与防御每 15 步切换,更新比例为 1:1。

\[A_i=\frac{r_i-\operatorname{mean}(r_1,\ldots,r_G)}{\operatorname{std}(r_1,\ldots,r_G)}\]

上式是论文的组内 advantage 定义;优化使用带 clipping 的 GRPO 目标。虽然目标式写有 KL 项,Table 6 实验设置为 \(\beta=0\),因此不能把效果归因于 KL 正则。[Table 6]

3. 奖励既检查有害输出,也检查误拒绝

\[R_D=R_{\mathrm{harm}}+R_{\mathrm{ref}},\qquad R_A=-R_D+R_{\mathrm{fmt}}.\]

奖励规则作用
\(R_{\mathrm{harm}}\)安全 +1;有害或 controversial −1约束防御回复的内容
\(R_{\mathrm{ref}}\)有害种子被拒绝、无害种子被回答:+0.5;反之 −0.5防止靠一律拒绝获得高分
\(R_{\mathrm{fmt}}\)攻击者推理与实际输入按标签分开:+0.5;格式错误 −0.5只把实际输入发给防御者;仅对攻击者使用

例如,无害问题被安全回答时,防御者得 +1.5;若安全但错误拒绝,只得 +0.5。攻击者通过 \(-R_D\) 同时寻找有害问题上的漏拦截和无害问题上的误拒绝。安全相关奖励相反,但由于格式奖励只属于攻击者,完整总奖励不是严格零和。上述数值按论文 Eq. 8–11 与 Table 6 推导。

把奖励算清楚:误拒绝为什么仍然得到正分?

下表由 Eq. 8–10 和 Table 6 的权重直接推导,不是新增实验。“拒绝判断正确”指有害种子被拒绝,或无害种子未被拒绝;内容是否安全则由另一项判定。

回复内容拒绝判断R_harmR_refR_D
安全正确+1.0+0.5+1.5
安全错误+1.0−0.5+0.5
有害或 controversial正确−1.0+0.5−0.5
有害或 controversial错误−1.0−0.5−1.5

例如,“解释光合作用”被安全地拒绝,对应 +0.5;正常解释则是 +1.5。误拒绝损失了 1 分,但总分仍为正。GRPO 比较同一输入下候选的相对奖励,因此正分不等于该回复会被强化;还要看同组其他回复。两项 judge 标签也不是逻辑上的互补项:判为拒绝的回复,仍可能夹带有害内容。[§4.2]

4. 多轮通过历史反馈继续改写

攻击者可以读取防御者此前的回复,调整下一轮输入;其私有 CoT 对防御者不可见。作者称无需额外多轮 SFT,通过修改攻击者 system prompt 即可支持这一过程。需要区分“框架支持多轮”“多轮评测取得提升”与“所有主实验均采用多轮训练”:公开示例脚本的默认值仍是 max_num_turns=1。

阅读时还要分清三个计数:4 个 rollout是同一输入的候选样本数,15 步切换是参数更新的调度,多轮对话才是把此前回复放入下一次输入。候选数和切换步数都不表示一段对话有多少轮。训练中更新的是 Attacker 与 Defender 两套参数,Qwen3Guard 负责提供判分。[Table 6]

最关键的一句话:MAGIC 用持续更新的另一模型生成难题,并用有害性与正确拒绝的联合奖励,训练防御者区分“真正危险”和“看上去可疑”。

理论保证:精确最优响应的性质,不是 GRPO 收敛证明

论文将过程写成顺序博弈:攻击者先选择输入 \(y_A\),防御者看到它之后再选择回复 \(y_D\)。SPNE 要求防御者对每一个 \(y_A\) 都是最优响应,而不只是对当前训练分布平均表现好。

\[\pi_D^*(\cdot\mid y_A)\in\arg\max_{\pi_D}\mathbb{E}_{y_D\sim\pi_D(\cdot\mid y_A)}[r_D(y_A,y_D)],\quad\forall y_A.\]

Theorem 3.2 的前提是:每个输入都存在一个奖励不低于零的拒绝或安全回退回复,并且策略处于精确 SPNE。此时防御策略赋予正概率的每个回复,都满足 \(r_D\ge 0\)。这里的“安全”由奖励符号定义。[§3 与 Appendix A]

本页推导:非负奖励也不等于没有误拒绝。代入实验权重,安全回复的总奖励为 +0.5 或 +1.5,有害回复为 −0.5 或 −1.5,因此奖励符号只区分 judge 判定的内容安全性。定理的非负结论本身不排除 +0.5 的误拒绝;若另有可达到的 +1.5 回复,精确最优响应才会偏好后者。无害配合能力仍须通过实验单独检验。

证明直觉与为什么不能直接用于部署承诺

如果某个输入下已有一个非负奖励回复,最优可得奖励必然非负。精确最优策略不能把正概率分配给更差的回复,否则把这部分概率移到最优回复上就能提高期望奖励,产生矛盾。附录还使用了最优值可达到的条件,例如有限动作集情形。

这条证明真正依赖的是“每个输入都有安全回退”以及“防御者处处精确最优”。它没有证明有限采样、共享神经网络参数约束下的 GRPO 能达到这些条件,也没有给出有限训练误差对应的安全风险上界。训练中的 judge 可能误判,而理论中的奖励被当作正确给定。因此,定理提供目标性质,不能把当前 checkpoint 的采样回复认证为安全。

主要实验结果:分别看安全、可用性和攻击预算

1. 固定测试集上的单轮提升明显

以下均为 Qwen2.5-7B-Instruct 系列,比例统一换成百分数。ASR 是有害请求成功诱发有害输出的比例,越低越好;无害配合率越高越好。论文对 WildJailBreak 无害列也使用 “ASR↑” 命名,本页按含义标为“无害配合率”,避免与有害 ASR 混淆。点击表头可排序。

指标(%)原模型Self-RedTeamMAGIC
WildGuardTest adv. ASR ↓36.525.52.3
WildJailBreak adv. harmful ASR ↓70.144.219.8
DAN ASR ↓32.732.34.3
HarmBench adv. ASR ↓36.323.75.5
WildJailBreak 无害配合率 ↑99.298.096.8
XSTest 无害配合率 ↑94.090.494.5

WildGuardTest 上减少 34.2 个百分点,约为 93.7% 的相对下降;但 WildJailBreak 无害配合率也下降 2.4 个百分点。应读成“在显著提高安全性的同时,大体保住配合能力”,而不是所有维度都改善。[Table 1]

2. 面对重新生成的攻击,仍有大量残余失败

Qwen2.5-7B 在 HarmBench 320 个种子上的自动红队评测,GPT-4o 判定,ASR 越低越好。可点击图例隐藏系列。与上表的固定对抗集和 judge 不同,不能将数值直接视作同一测量。来源:Table 3、Appendix D.3。
查看图表精确数据与攻击预算
攻击原模型 ASR %Self-RedTeam %MAGIC %
no-rev25.6219.3813.44
GCG43.9022.5011.25
PAIR44.3831.8825.31
TAP63.7540.0035.63
AutoDAN47.8130.3124.38
AutoDAN-turbo75.0066.8854.69

PAIR、TAP、AutoDAN 的 max_iterations 均为 3;GCG 为 50 步、search_width 128;AutoDAN-turbo 为 3 epochs,warmup_iteration 与 lifelong_iteration 均为 10。部分方法使用 Qwen2.5-7B-IT 作为攻击模型。这些是特定攻击预算下的结果,不能推出更强攻击或更多尝试下的上界。[Table 7]

MAGIC 在这一 7B 对比中降低了各项 ASR,但 AutoDAN-turbo 下仍为 54.69%。此外,14B 的 GCG 和 PAIR 测试,以及 Llama 的部分测试,仍有其他防御取得更低 ASR;因此不宜概括为全部模型、全部攻击上的最优。[Table 8–9]

3. 多轮改善存在,但不能忽略 85.4% 的绝对风险

Qwen2.5-7BMulti-turn ASR ↓JailBreak Rate ↓
原模型94.9%50.7%
Self-RedTeam89.9%50.4%
MAGIC85.4%43.0%

两个分母不同:Multi-turn ASR 按有害种子计数,10 种对抗改写策略中只要任一种成功,该种子就算成功;JailBreak Rate 按对抗提示计数。94.9% → 85.4% 是下降 9.5 个百分点,按展示数值计算,相对下降约 10.0%。论文 Imp. 列记为 10.1%,这一小差异无法仅凭表内数值解释;它也不表示绝对下降 10.1 个百分点。[Table 4]

4. “基本保留能力”有明显例外

模型指标(越高越好)原模型MAGIC变化
Qwen2.5-7BGPQA accuracy34.2%30.8%−3.4 pp
Qwen2.5-14BGPQA accuracy38.1%33.7%−4.4 pp
Qwen2.5-14BAlpacaEval 2 LC Win38.113%30.954%−7.159 pp
Qwen2.5-14BXSTest benign comply93.6%88.8%−4.8 pp
Llama3.1-8BIFEval Prompt Loose73.6%76.2%+2.6 pp

7B 的 ARC-C 不变、MMLU 基本稳定,Llama 的 IFEval 改善;但 14B 的无害配合率、GPQA 和偏好胜率下降。AlpacaEval 2 是相对 GPT-4-turbo 的长度控制胜率,不是答题准确率。论文未为这些主表给出多随机种子误差条,因此不能据此断言差异无统计意义。[Table 2]

5. 消融支持“平衡更好”,不支持“拒绝率处处最高”

下表采用正文 Table 5,数值均换成百分数。No-Game 只训练防御者、无在线改写;Defender-only 使用固定攻击者;MAGIC-base 去掉专门的攻击者 SFT 初始化;w/ def. CoT 给防御者也加上推理输出格式。

设置WJB 有害 ASR ↓WJB 无害配合 ↑XSTest 配合 ↑AlpacaEval 2 ↑
Base70.199.294.033.733
No-Game12.7*49.699.634.481
Defender-only12.791.681.223.491
w/ def. CoT13.6*90.0*70.0*30.791
MAGIC-base8.087.688.828.184
MAGIC19.896.894.533.224

完整 MAGIC 的 WJB 有害 ASR 高于多个消融版本,但无害配合与 AlpacaEval 更均衡。No-Game 在 WJB 无害问题上仅有 49.6% 配合,说明只看低 ASR 很容易把过度拒绝误认成进步。

数值核查:正文与附录不一致,不能合并解释

带 * 的项在 Appendix Table 12 有不同数值:No-Game 的 WJB 有害 ASR 是 2.4%(正文 12.7%);w/ def. CoT 的 WJB 有害 ASR 是 9.0%(正文 13.6%),WJB 无害配合为 80.8%(正文 90.0%),XSTest 配合为 65.2%(正文 70.0%)。HTML 与 PDF 均可见这些差异,本页保留各自出处,不擅自确定哪张表正确。主方法这一行的对应数值一致。[Table 5] · [Table 12]

6. 攻击者确实增强,但“新技能”和“均衡”证据有限

Figure 3 中,针对未训练防御者的 ASR 从 SFT 攻击者的 21.25% 上升到 RL iter3 的 27.81%;同时后期防御者明显更能抵抗这些攻击。交叉测评支持双方在变化,但曲线趋稳不等于已经达到 SPNE。

按 Figure 3 重绘两行数据。横轴是防御者阶段,曲线对应固定的攻击者版本,ASR 越低表示防御越强。同一后期攻击者对原模型更有效,却在训练后防御者上迅速失效。
查看原论文交叉评估热图
Original Figure 3 cross-evaluation heatmap
原论文 Figure 3,320 个 HarmBench 测试种子。热图是有限模型版本间的交叉评测,不是对所有攻击的遍历。

外部迁移也有支持:在 600 个 WildJailBreak 测试种子、每个种子只改写一次、temperature 0、GPT-4o 判定的设置下,MAGIC-attacker 对 Qwen2.5-7B 的 ASR 为 58.00%,基础攻击者为 37.33%;对 Gemini-2.5-Flash 则为 31.33% 对 24.67%。但对共同训练的 MAGIC-defender,MAGIC-attacker 是 9.00%,基础攻击者是 10.50%,显示对手适应具有分布特异性。[Table 10]

“出现新组合策略”的证据主要是案例与基于 Qwen2.5-72B 的策略分类。Appendix F 的专门分析还排除了初始化数据中的编码和翻译改写,因此不能把这项分析配置与主实验的完整 20 类池混为一谈。观察到训练数据之外的组合,不等于证明基础模型从来没有这种能力。

局限与展望:应保留的结论与待补的证据

本页判断:值得借鉴的是同时评估“漏拦截”和“误拒绝”的动态训练设计。下一步最有价值的验证,是独立 judge 加人工抽检、更大多轮攻击预算、严格控制训练成本的共享/分离参数对照,以及对训练误差给出可检验的风险界。

复现线索与来源

截至 2026-10-04,官方 README 提供训练代码,并公告已发布三种骨干的攻击者 SFT 权重。以下只核对论文、README、训练入口和配置文件;未启动训练,也未验证 checkpoint 能否完整复现论文结果。

展开训练配置与需要核对的细节
项目论文 Table 6
训练顺序与切换Defender → Attacker;15 步切换;比例 1:1
总步数300;表中注明在 200 步 early stop
计算资源每个角色 4 GPUs,未据此推算总耗时
Batch sizetrain 64;eval 256
长度上限prompt 8192;response 6144
优化learning rate 1e−6;4 rollouts;temperature 1.0;KL β=0

当前公开脚本 scripts/rl/separated/grpo_public.sh 设置 max_num_turns=1、start_agent=defender,训练 300 步。它同时写了 kl_loss_coef=1e-3 和 use_kl_loss=False;不能只读取系数就判断启用了 KL loss。README 推荐 vLLM 0.8.5,作者特别提示版本会影响性能与显存行为。

另一个值得复核的差别是拒绝奖励依据:论文公式使用原始种子 \(x\) 的标签,README 则提供按改写问题标签或原始标签计算的开关;当前脚本 USE_Q_SAFE_LABEL_FOR_REFUSAL 默认值为 1,对应前者。复现时应明确这一口径,尤其是改写发生语义偏移的样本。

  1. arXiv 摘要与版本记录:v1 为 2026-02-02,v2 为 2026-02-06;本页以 v2 为准。
  2. 论文全文:§3 / Appendix A 为定理,§4 为方法,Tables 1–5 为主实验,Tables 6–15 为设置与补充结果。
  3. MAGIC 官方仓库与 README:工程入口、环境要求和权重发布信息。
  4. 公开 GRPO 训练脚本与训练配置:本页实现层面的核查依据。

原论文图像归原作者所有。交互图表依据标注的论文表格与 Figure 3 重绘;相对变化和百分点变化由本页计算。正文中的“本页判断”、证明边界分析与证据强度评估均为解读,区别于作者原始主张。