MAGIC: A Co-Evolving Attacker–Defender Adversarial Game for Robust LLM Safety
把安全训练做成两个模型轮流出题、答题:一个专门把测试问题改得更难,另一个练习识别风险并正确回答。每隔一段训练就交换谁在学习,让测试题随着防御能力一起变化,同时加入无害问题,防止答题模型靠“一律拒绝”得到最高分。
先看结论:有效的对抗训练配方,尚非安全保证
MAGIC 的主要价值,是把攻击者初始化、独立参数和交替 GRPO 更新组合成持续生成训练难题的系统。单轮安全收益明显;多轮残余风险、评估器依赖和能力损失仍需单独审视。
这三个数字对应不同测试:前两项越低越好,第三项越高越好。它们共同说明,安全改善有实证支撑,但“通用能力完全不变”和“多轮攻击已解决”都超出了数据。全文数值均为论文报告,本页面未重跑训练或评测。[Table 1–4]

研究动机:训练时的难题也要更新
固定安全数据集只能覆盖已经收集到的提问方式。当攻击者改换表达、组合已有技巧或根据前一轮回复调整输入时,防御模型可能仍然失败。另一方面,训练模型大量拒绝有害请求,也可能让它误拒绝形式可疑但内容无害的问题。
| 路线 | 怎样训练或防御 | MAGIC 针对的缺口 |
|---|---|---|
| 静态安全训练 | 在预先收集的安全样本上优化 | 训练题目不能随模型能力及时变化 |
| Self-RedTeam | 同一套参数交替承担攻击与防御角色 | 作者认为相反目标会带来梯度冲突 |
| SmoothLLM / Self-Eval | 推理时扰动输入,或复查输出 | 主要在推理阶段加防线,不持续训练模型本身 |
| MAGIC | 两套参数,攻击者与防御者交替在线更新 | 同时训练有害拒绝与无害配合,寻找更好的平衡 |
关键 insight 是:攻击者不只负责找到会让模型输出有害内容的问题,还要找到会让模型错误拒绝的无害问题。后者来自无害训练样本和反向的拒绝奖励,是理解“为什么不是一律拒绝”的关键。
查看论文的动机图

核心方法:先冷启动,再交替更新
术语速查
| 术语 | 在这篇论文中具体是什么 |
|---|---|
| Attacker / policy \(\pi_A\) | 一套独立 LLM 权重,把原始种子问题改写成更难处理的输入 |
| Defender / policy \(\pi_D\) | 另一套 LLM 权重,接收改写问题并生成最终回复 |
| Action / rollout | 一次生成的改写文本或回复;同一输入采样多个候选供 GRPO 比较 |
| Reward / judge | Qwen3Guard 对回复的有害性、拒绝行为作判定,再按规则转为分数 |
| CoT / history | 攻击者的私有推理文本;多轮 history 则是此前实际问题和防御回复 |
| SPNE | Subgame 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
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_harm | R_ref | R_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-RedTeam | MAGIC |
|---|---|---|---|
| WildGuardTest adv. ASR ↓ | 36.5 | 25.5 | 2.3 |
| WildJailBreak adv. harmful ASR ↓ | 70.1 | 44.2 | 19.8 |
| DAN ASR ↓ | 32.7 | 32.3 | 4.3 |
| HarmBench adv. ASR ↓ | 36.3 | 23.7 | 5.5 |
| WildJailBreak 无害配合率 ↑ | 99.2 | 98.0 | 96.8 |
| XSTest 无害配合率 ↑ | 94.0 | 90.4 | 94.5 |
WildGuardTest 上减少 34.2 个百分点,约为 93.7% 的相对下降;但 WildJailBreak 无害配合率也下降 2.4 个百分点。应读成“在显著提高安全性的同时,大体保住配合能力”,而不是所有维度都改善。[Table 1]
2. 面对重新生成的攻击,仍有大量残余失败
查看图表精确数据与攻击预算
| 攻击 | 原模型 ASR % | Self-RedTeam % | MAGIC % |
|---|---|---|---|
| no-rev | 25.62 | 19.38 | 13.44 |
| GCG | 43.90 | 22.50 | 11.25 |
| PAIR | 44.38 | 31.88 | 25.31 |
| TAP | 63.75 | 40.00 | 35.63 |
| AutoDAN | 47.81 | 30.31 | 24.38 |
| AutoDAN-turbo | 75.00 | 66.88 | 54.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-7B | Multi-turn ASR ↓ | JailBreak Rate ↓ |
|---|---|---|
| 原模型 | 94.9% | 50.7% |
| Self-RedTeam | 89.9% | 50.4% |
| MAGIC | 85.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-7B | GPQA accuracy | 34.2% | 30.8% | −3.4 pp |
| Qwen2.5-14B | GPQA accuracy | 38.1% | 33.7% | −4.4 pp |
| Qwen2.5-14B | AlpacaEval 2 LC Win | 38.113% | 30.954% | −7.159 pp |
| Qwen2.5-14B | XSTest benign comply | 93.6% | 88.8% | −4.8 pp |
| Llama3.1-8B | IFEval Prompt Loose | 73.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 ↑ |
|---|---|---|---|---|
| Base | 70.1 | 99.2 | 94.0 | 33.733 |
| No-Game | 12.7* | 49.6 | 99.6 | 34.481 |
| Defender-only | 12.7 | 91.6 | 81.2 | 23.491 |
| w/ def. CoT | 13.6* | 90.0* | 70.0* | 30.791 |
| MAGIC-base | 8.0 | 87.6 | 88.8 | 28.184 |
| MAGIC | 19.8 | 96.8 | 94.5 | 33.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。
查看原论文交叉评估热图

外部迁移也有支持:在 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 类池混为一谈。观察到训练数据之外的组合,不等于证明基础模型从来没有这种能力。
局限与展望:应保留的结论与待补的证据
- 方法定位:从怀疑者角度看,这是两个独立模型的在线对抗训练,使用已有 SFT 与 GRPO。最具体的贡献是将 CoT 攻击者冷启动、角色参数分离和有害/无害混合奖励整合到交替训练中,并给出跨基准实验;不是新的 RL 优化器。
- 理论与算法有缺口:SPNE 的安全性质建立在全输入最优响应和正确奖励上;实际训练是有限样本近似 best-response,论文没有证明交替 GRPO 收敛到 SPNE。
- judge 依赖:训练及多数评测使用 Qwen3Guard,可能偏向同一评估器的判定标准。GPT-4o 外部评测提供补充,但它同样不是人工真值。Appendix D.3 在一个基线集合上比较两者,不能消除训练后模型的评估偏差。
- 对比并非完全统一:Qwen 的 Self-RedTeam 使用公开 checkpoint 重评;Llama 的对应结果直接引用旧论文。成本、judge 和流程差异会影响跨方法结论的强度。
- 消融尚未干净分离所有因素:MAGIC-base 同时改变 SFT 初始化和攻击能力,不能单独量化 CoT 的因果收益;也缺少同数据、同预算、仅切换是否共享参数的对照来直接验证梯度冲突解释。
- 成本与范围:作者承认在线交替训练开销较大,依赖攻击者初始化和容量。实验主要覆盖文本模型;工具调用和多模态属于未来方向。Table 6 给了 GPU 数,但未提供完整 GPU-hours、judge 调用成本与误差区间。
本页判断:值得借鉴的是同时评估“漏拦截”和“误拒绝”的动态训练设计。下一步最有价值的验证,是独立 judge 加人工抽检、更大多轮攻击预算、严格控制训练成本的共享/分离参数对照,以及对训练误差给出可检验的风险界。
复现线索与来源
截至 2026-10-04,官方 README 提供训练代码,并公告已发布三种骨干的攻击者 SFT 权重。以下只核对论文、README、训练入口和配置文件;未启动训练,也未验证 checkpoint 能否完整复现论文结果。
展开训练配置与需要核对的细节
| 项目 | 论文 Table 6 |
|---|---|
| 训练顺序与切换 | Defender → Attacker;15 步切换;比例 1:1 |
| 总步数 | 300;表中注明在 200 步 early stop |
| 计算资源 | 每个角色 4 GPUs,未据此推算总耗时 |
| Batch size | train 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,对应前者。复现时应明确这一口径,尤其是改写发生语义偏移的样本。
- arXiv 摘要与版本记录:v1 为 2026-02-02,v2 为 2026-02-06;本页以 v2 为准。
- 论文全文:§3 / Appendix A 为定理,§4 为方法,Tables 1–5 为主实验,Tables 6–15 为设置与补充结果。
- MAGIC 官方仓库与 README:工程入口、环境要求和权重发布信息。
- 公开 GRPO 训练脚本与训练配置:本页实现层面的核查依据。
原论文图像归原作者所有。交互图表依据标注的论文表格与 Figure 3 重绘;相对变化和百分点变化由本页计算。正文中的“本页判断”、证明边界分析与证据强度评估均为解读,区别于作者原始主张。