红队:PAIR 与自动化攻击 本节摘要:Chao、Robey、Dobriban、Hassani、Pappas、Wong(NeurIPS 2023,arXiv:2310.08419)。PAIR——提示自动迭代精炼(Prompt Automatic Iterative Refinement)——是教科书级的自动化黑盒越狱。一个带红队系统提示的攻击者 LLM,为目标 LLM 迭代地提出越狱,把尝试与响应作为上下文反馈累积进自己的聊天历史。PAIR 通常在 20 次查询内成功,比 GCG(Zou 等的 token 级梯度搜索)快几个数量级,且不需要白盒访问。PAIR 现在是 JailbreakBench(arXiv:2404.
本节摘要:Chao、Robey、Dobriban、Hassani、Pappas、Wong(NeurIPS 2023,arXiv:2310.08419)。PAIR——提示自动迭代精炼(Prompt Automatic Iterative Refinement)——是教科书级的自动化黑盒越狱。一个带红队系统提示的攻击者 LLM,为目标 LLM 迭代地提出越狱,把尝试与响应作为上下文反馈累积进自己的聊天历史。PAIR 通常在 20 次查询内成功,比 GCG(Zou 等的 token 级梯度搜索)快几个数量级,且不需要白盒访问。PAIR 现在是 JailbreakBench(arXiv:2404.01318)和 HarmBench 的标准基线,与 GCG、AutoDAN、TAP、说服性对抗提示并列。本节是第 12-16 节「对抗评估工具」弧线的基础。
对应原课程:Phase 18 · Lesson 12 ·
red-teaming-pair-automated-attacks(原英文phases/18-ethics-safety-alignment/12-red-teaming-pair-automated-attacks/docs/en.md)。前置:Phase 18 · 01,Phase 14。
阅读完本节,你应当能够:
红队过去是一项手工活动。少数专家测试者构造对抗提示,跟踪哪些有效。这不规模:攻击成功率需要统计样本,而每次模型发布目标都在变。PAIR 把红队操作化为一个黑盒目标的优化问题。
输入:目标 LLM T、裁判 LLM J、攻击者 LLM A、目标字符串 G(「用[有害指令]回应」)、预算 K(通常 20 次查询)。循环 k=1..K:
经验结果(NeurIPS 2023):对 GPT-3.5-turbo、Llama-2-7B-chat 攻击成功率 >50%,平均成功查询数在 10-20 范围。
GCG(Zou 等 2023)按梯度搜索对抗 token 后缀,需要白盒模型访问,产出的后缀不可读。PAIR 是黑盒,产出可跨模型迁移的自然语言攻击。PAIR 的上下文反馈让攻击者从每次拒绝中学习;GCG 没有等价物(每次新 token 更新都得重新发现之前的进展)。
⚠️ 安全对齐的工程现实:今天每个前沿实验室都在发布前对生产模型跑 PAIR 和 TAP。ASR 轨迹出现在模型卡(第 26 节)和安全案例附录(第 18 节)里。这种攻击不是异国情调,它是标准基础设施——一个不跑自动化红队的部署,等于一个不跑单元测试的发布。
code/main.py 构造玩具 PAIR 循环。目标是模拟分类器,拒绝「明显」有害提示(关键词过滤);攻击者是规则精炼器,尝试改写、角色扮演框架、编码;裁判给响应打分。你会看到攻击者对关键词过滤在约 5-15 次迭代内成功,对语义过滤则失败。
def pair_loop(attacker, target, judge, goal, K=20): history = [] for k in range(K): p_k = attacker.propose(goal, history) # 读历史,出新提示 r_k = target.respond(p_k) score = judge(p_k, r_k, goal) if score >= THRESHOLD: return p_k, k # 越狱找到 history.append((p_k, r_k, score)) # 上下文反馈 return None, K
两者(2024)标准化评估:
ASR 通常在固定查询预算下报告。比较攻击必须匹配预算——200 次查询下 90% ASR 不可与 20 次查询下 85% ASR 比较。
| 攻击 | 访问方式 | 产出 | 效率 |
|---|---|---|---|
| PAIR | 黑盒 | 自然语言,可迁移 | ~20 查询 |
| GCG | 白盒 | 不可读 token 后缀 | 数百-数千梯度步 |
| AutoDAN | 黑盒 | 进化搜索提示 | 中等 |
| TAP | 黑盒 | PAIR + 树分支剪枝 | 更高 ASR,更多算力 |
| PAP | 黑盒 | 说服模板 | 任务依赖 |
设计要点:黑盒攻击(PAIR/TAP/AutoDAN/PAP)与白盒攻击(GCG)互补——前者产可迁移的自然语言攻击,后者产不可读但通用的后缀。生产红队通常两者都跑,因为模型卡读者关心的是「在固定预算下,最坏攻击的 ASR」。
本节产出 outputs/skill-attack-audit.md:给它一份红队评估报告,它审计——跑了哪些攻击(PAIR、GCG、TAP、AutoDAN、PAP)、各自在什么预算、用什么裁判、在哪个有害行为集(JailbreakBench、HarmBench、内部)。这是审读任何 2026 模型卡安全章节的解码器。
code/main.py 是独立玩具,模拟分类器可换成真实目标 LLM 的 API,PAIR 循环骨架不变。
Easy:运行 code/main.py,测三种内置攻击者策略的平均成功查询数。解释各自利用的目标防御假设。
Medium:实现第四种攻击者策略(如翻译成另一语言、base64 编码)。报告对关键词过滤目标与语义过滤目标的新的平均成功查询数。
Medium:读 Chao 等 2023 Figure 5(PAIR vs GCG 对比)。描述两种尽管 PAIR 高效,仍偏好 GCG的场景。
Hard:JailbreakBench 在固定目标集上报告 ASR。设计一个额外指标,测量攻击多样性(成功提示的方差)。解释多样性为何对防御评估重要。
Hard:TAP(Mehrotra 2024)用分支 + 剪枝扩展 PAIR。给 code/main.py 草拟一个 TAP 风格扩展,描述算力 vs 成功率的权衡。
下一节,我们看一种与 PAIR 互补的长度利用——多样本越狱:当上下文窗口足够长,几百个示例就能让模型模仿并产出有害内容。