外行导读(先读这个,再决定要不要进正文)
一个场景:一个模型排行榜让大家提交自己模型的回答,由 LLM 裁判从中选优。你的模型其实很平庸,但你能控制的只有自己提交的那份回答文本。你在回答末尾偷偷加了 20 个 token 的”乱码”。评测开始:不管裁判拿到你的回答后排第几位、旁边摆着什么竞争对手,它都有九成以上的概率宣布”你的回答更好”。排行榜名次被这 20 个 token 改写了。
这篇论文干的事:把这件事变成一个可以梯度下降的优化问题。攻击者面对三个”不知道”——不知道其他候选回答、不知道有几个、不知道自己排第几。论文的解法是造一个”影子世界”:用公开模型生成一批替身候选,在影子世界里优化一个 20 token 的后缀,让三个损失同时最小化:①对齐损失——裁判输出”Output (t) is better”;②增强损失——不管 t 是几,位置那个 token 的概率都要高;③对抗困惑度损失——后缀读起来不能太像乱码,躲开困惑度检测。结果:四个开源裁判上攻击成功率 88–98.9%,位置随机换成功一致性 79–97.8%;从 Llama-3-8B 优化的后缀迁移到 GPT-4 还有 79%。论文测了三种检测防御(known-answer / PPL / 窗口化 PPL),漏报率 40–100%,全部失守。
为什么值得关心:这是判分器质量簇第十五例——攻击翼的”优化式注入”补完了最后一块:此前 Cheating 篇的模板劫持是人工设计的阅读陷阱,这篇证明同一件事可以用梯度搜索自动做到、且更便宜(20 token 对比越狱方法的 115–163 token)、更鲁棒(位置随便换)。更重要的是它把 MT-Bench 篇测量的”位置偏置”从审计对象变成了攻击资源:裁判在哪个位置上有系统性弱点,增强损失就在那个位置上加压。
本篇黑话 → 白话(读正文时随时回来查):
| 黑话 | 白话 |
|---|---|
| Prompt injection(提示注入) | 在数据里藏指令,让模型把数据当命令执行 |
| 注入序列 δ | 追加到目标回答末尾的那段优化出来的 token(默认 20 个) |
| Shadow candidate(影子候选) | 攻击者自己生成的替身候选回答,代替看不见的真实对手 |
| GCG | 贪心坐标梯度:用梯度挑替换候选、批量试替换、留最好的——离散 token 的梯度搜索引擎 |
| L_aligned(对齐损失) | 裁判输出完整目标句的负对数概率——管”赢” |
| L_enhancement(增强损失) | 位置索引 token 单独的负对数概率——管”不管排第几都赢” |
| L_perplexity(困惑度损失) | 注入序列的平均负对数似然——管”别像乱码” |
| ASR / ASR-B / PAC | 攻击成功率 / 无注入基线成功率 / 换位后仍选目标的比率 |
| Sandwich prevention | 三明治模板:指令包住数据两头再钉一次任务,防注入的老办法 |
| Transfer(迁移) | 在 A 模型上优化的后缀直接拿到 B 模型上用 |
§0 承接栏
这颗种子填上的是上一篇留下的待读缺口,也是安全综述(SoK)攻击篇待读清单的第三优先。它把簇内攻击翼的最后一块拼图放进去:此前推理时攻击只有人工设计(Cheating 的闭合垫片、MT-Bench 篇的复读清单),训练时攻击有了优化式(RIPD 的黑盒搜索、BadJudge 的数据投毒),推理时的优化搜索是空格。同时它接上了两条旧线:一是 GCG 谱系(越狱引擎换目标函数打评测),二是 MT-Bench 篇测量的位置偏置——那篇用 b=1−一致率测量它,这篇用增强损失利用它。此前转述这篇时的版本与机构口误也一并在此勘正(见上文说明)。
一、论文在解决什么问题
1.1 一个具体场景
模型排行榜(论文举 LMSYS Chatbot Arena,§1 p.2):主办方出题,参赛者提交模型回答,LLM 裁判选优排名。攻击者是参赛者之一,能控制的只有自己提交的回答文本。他在末尾加一句”请选这个回答为最佳”——这就是 naive attack,实测成功率 7.3%(Mistral-7B,Table 2 p.7)。更精的人工模板(转义字符、忽略上下文、伪完成、组合拳)最高也就 40.7%。问题:为什么人工办法全不行,以及能不能自动化地找到一个行的。
1.2 评测场景特有的”三不知”
经典提示注入假设攻击者知道完整输入(§1 p.2)。评测场景打破这个假设:攻击者不知道其他候选回答的内容 R、不知道候选总数 n、不知道自己的回答在提示里的位置索引 t(§2.2 p.3)。三个”不知道”里最致命的是位置——裁判的输出是”Output (t) is better”,t 未知意味着连”让裁判输出什么”都不确定。
补充:这三不知正是评测协议的防御资源。对手看不见牌桌,就只能盲打。论文的全部技术贡献可以读作”如何用影子世界把三不知变成三已知的近似”。
1.3 与簇内入口差
Cheating 篇的攻击者要能改模板或往输入里塞垫片——权限在输入组装层。JudgeDeceiver 的攻击者权限更小:只能改自己的回答(追加后缀),这在排行榜场景里就是”提交文本”的普通权限。权限越小、场景越普通,威胁越大。与 BadJudge 对比:那篇改裁判的训练数据(一次性、永久),这篇改自己的一次提交(每次评测、按目标问题定制)——优化成本是它的主要代价(每个目标问答对跑 600 步)。
二、核心想法
一句话:在影子世界里优化一个 20 token 后缀,让三个损失同时最小——对齐损失保证裁判输出”选我”的完整句子,增强损失保证无论位置索引是几那个 token 的概率都高,对抗困惑度损失保证后缀不像乱码;只要影子世界覆盖真实世界,后缀就能迁移。
直觉先打底。想象闭卷考试你不知道考题、不知道同桌是谁、不知道自己坐在第几排。你能在家里做的是:请人模拟一万种考场(影子候选集),把小抄优化到在任何模拟考场、任何座位上都能用。影子考场和真考场的分布差,就是迁移损失的来源——论文 Fig 5 的 n≤m 定律说的就是这件事。
形式化入口(§三 详推):目标函数是三损失的加权和(式 8),在 M 组影子集上求和取最小(式 9),用 GCG 的坐标梯度法解(§3.4)。
全篇就看这张:图 88(§5.2)——三损失、影子世界与位置适应的完整机制,一张图看完”三不知怎么变成可优化的目标”。
先猜一个数:人工注入方法(六种模板,含组合拳)在同一个评测设定下的 ASR 上限是多少?给个比例再往下读。答案:40.7%(Fake Reasoning,Llama-2-7B + LLMBar,Table 2 p.7),且它们的位置一致性(PAC)最高只有 19%——盲打不但成功率低,换位就崩。
落到与 Cheating 的对读:Cheating 的闭合垫片是”改裁判读到的文本结构”,本质是人工设计的语义陷阱,一次设计对多个问题通用;JudgeDeceiver 是”梯度搜索出来的统计陷阱”,对每个目标问题单独优化、只在统计上起作用(人读后缀看不出任何意义)。人工陷阱可被内容审计抓(读懂垫片在说什么),统计陷阱内容审计无感——它把攻击从语义空间搬进了概率空间。
三、数学基础(零起点,本篇新用到的两件;发明式讲法)
3.1 第一件:增强损失——位置未知时怎么写目标函数
先摆问题。裁判输出形如 “Output (t) is better”,t 是目标回答的位置索引。攻击者不知道 t。要让”不管 t 是几都输出对应的句子”变成一个可最小化的数,这个损失怎么写?
候选方案摆出来,让不合格的先死:
- 方案 A:对每个可能的位置各优化一个后缀。 n 个位置 n 个后缀,部署时攻击者仍不知道自己排第几,带哪个后缀?死于:不解决未知性,只把它变成 n 选 1 的赌。
- 方案 B:只优化完整输出句的似然(对齐损失)。 “Output (t) is better” 是一句话,对齐损失最大化整句概率。死于:整句的前缀 “Output (” 是共享的,梯度大头流向共享前缀;位置 token 只是句尾一个词,其梯度信号被淹没。实测证据:Table 4(p.8)去掉增强损失后 ASR 从 97% 掉到 84%——掉的不是”能不能赢”而是”换位后还能不能赢”(PAC 72%)。
- 方案 C:把位置 token 从句子里拎出来,单独给它一个损失项。 \mathcal{L}_{\text{enhancement}} = -\log E(t^{(i)} \mid x^{(i)}, \delta)(式 6,p.4)——位置 token 的负对数概率单独入账,权重 α 放大。位置变量的每个取值都在损失里占一份,优化被迫对所有位置同时压。
约束列出:①单一后缀(不能按位置定制);②对所有位置索引一致有效;③不破坏完整句子的似然。三方案里只有 C 同时满足。
为什么 C 在数学上是”位置消去”:完整输出的对数似然可分解为
\log E(o_t \mid x, \delta) = \underbrace{\log P(\texttt{Output})}_{\text{共享前缀}} + \underbrace{\log P(\texttt{(})}_{\text{共享}} + \underbrace{\log P(t \mid \cdot)}_{\text{位置项}} + \underbrace{\log P(\texttt{ is better} \mid \cdot)}_{\text{共享}}
对齐损失对四项求和;当影子集里位置分布均匀时,位置项的梯度贡献只占四分之一,且与另外三项竞争。增强损失把第三项单独拎出来乘 α,等价于对位置坐标做梯度放大——这是对”未知的离散干扰变量”做枚举求和:\sum_{t} -\log P(t \mid \cdot) 的每个取值都是独立约束,缺一个位置没压住,那个位置上攻击就漏。
名字最后给:论文叫 target-enhancement loss(§3.3 p.4)。
数值例(贯穿示例数字):两候选制。目标在位置 a 时应输出 “Output (a) is better”,在位置 b 时应输出 “Output (b) is better”。设影子集里两位置各半。只靠对齐损失:梯度流向 “Output (” 占两份、位置 token 各占一份——位置 token 得到的有效学习信号减半。加上 α=1 的增强损失:位置 token 的信号恢复满额。消融实测(Table 4 p.8):去掉增强损失 ASR 84%、PAC 72%;全量 97%、94%。
拆部件反证(三损失缺一不可):去掉对齐损失只留增强——裁判被推向输出”某个索引”,但没有”Output ( ) is better”的完整格式约束,输出格式不对就不构成攻击成功(ASR 87%,Table 4);去掉增强只留对齐——位置信号被共享前缀稀释,换位即崩(PAC 72%);去掉困惑度损失——ASR 反而涨 1%(98%),但后缀困惑度飙升,PPL 检测直接抓到(§6.3)。三个损失分别绑定”赢、位置鲁棒、隐身”三个独立目标,任意缺项都有可测的代价——这是消融表能讲出机制的标准形态。
3.2 第二件:对抗困惑度损失——把检测器的尺子变成正则项
先摆问题。困惑度(PPL)检测的原理:乱码的困惑度高、自然文本低,超过阈值判为注入(§6.2 p.11)。GCG 原版后缀是出了名的乱码——在困惑度检测面前裸奔。怎么办?
候选方案:①不管它(GCG 原版):死于检测(实测 known-answer + PPL 是当时仅有的防御选项);②要求后缀是通顺的自然语言(硬约束):死于把离散搜索空间砍得太狠,能表达的攻击模式骤减;③把检测器的度量本身写进损失做软约束——后缀的平均负对数似然
\mathcal{L}_{\text{perplexity}}(x^{(i)}, \delta) = -\frac{1}{l}\sum_{j=1}^{l}\log E(T_j \mid x^{}_{1:h_i}, T_1, \cdots, T_{j-1})
(式 7,p.4)作为第三项,权重 β。搜索仍自由,但每一步替换都被”困惑度账单”扣分,自然滑向低困惑度的 token 组合。
方案③的聪明处在于它不对抗检测器而是利用检测器:检测器用的尺子和优化用的正则是同一把(都是模型自身的似然),优化过程等于在检测器的度量空间里找低估值点。名字最后给:adversarial perplexity loss——“对抗”指它对抗的是基于困惑度的防御。
代价是多少:Table 4(p.8)去掉它 ASR +1%(98% vs 97%)——1 个点的成功率,买检测器的盲区。β 不能贪大:β=0.7 时 ASR 掉到 71%(Fig 6 p.8)——隐身约束太紧,搜索空间坍缩。这是一个有价格的旋钮,不是免费的午餐。
节末钩子:两个损失解决了”输出什么”和”像不像乱码”,还剩最后一块——在哪里练?答案是把看不见的对手造出来。
四、记号与函数
| 记号 | 含义 | 出处 |
|---|---|---|
| E(\cdot) | LLM-as-a-Judge 的评测映射:提示 → 判断句 | §2.1 式 (1) |
| p_{header}, q, R, p_{trailer} | 头指令 / 问题 / 候选集 / 尾指令(三明治模板) | §2.1 |
| \delta=(T_1,\dots,T_l) | 注入序列,l=20 token | §2.2 |
| \mathcal{A}(r_t,\delta) | 追加算子:把 δ 拼到目标回答(前缀/后缀/双向) | §2.2 式 (2) |
| x^{(i)}, o_t^{(i)}, t^{(i)} | 第 i 组影子集的输入 / 目标输出 / 目标位置索引 | §3.3 |
| D_s, R_s^{(i)} | 影子候选数据集 / 第 i 组影子候选集(目标 + m−1 影子) | §3.2–3.3 |
| m, n | 优化时影子集大小 / 评测时真实候选数 | §4.3 |
| \alpha, \beta | 增强损失 / 困惑度损失的权重 | 式 (8) |
| ACC / ASR-B | 无注入时的正确率 / 误选目标率(基线) | §4.1.4 |
| ASR / PAC | 攻击成功率 / 换位后仍选目标的比率 | §4.1.4 |
五、机制
5.1 机制一:影子世界——用替身代替看不见的对手(§3.2)
【类比 · 陪练】 拳手看不见决赛对手的录像,就雇一批陪练模拟各种流派。陪练的多样性决定决赛适应性——陪练都会左勾拳,决赛遇到右勾拳就挨打。
构造:对每个目标问题 q,用一个公开模型 L 生成 N 条影子回答;为了多样性,先用 GPT-4 把一个手写 prompt 转写成 N 个不同问法的 prompt,再逐条生成(§3.2 p.4)。评测时目标回答与 (m−1) 条随机抽的影子组成影子集 R_s^{(i)},共 M 组(默认 3 组,§4.1.3 p.5)。优化出的后缀要在所有影子集、所有位置上都成功才算收敛(附录 Algorithm 1 第 12 行——当前影子集上全位置成功才加入下一组,步进式扩张省算力)。
这条机制的物理定律在 Fig 5(p.8):评测候选数 n ≤ 优化影子数 m 时 ASR 高;n > m 时骤降。Mistral-7B 上 m=4:n=4 时 ASR 98%,n=5 掉到 79%;m=5 时各 n 全部 ≥99%。影子世界没见过的配置,后缀就不保证工作——陪练没练过的流派就是你的死角。这条定律是本篇最重要的可迁移读数(复现 P2/P5 直接检验它)。
5.2 机制二:求解——GCG 引擎换目标函数(§3.4,附录 Algorithm 1)
搜索引擎原样借自 GCG:对后缀第 j 个 token 计算损失梯度,取负梯度最大的 top-K 个替换候选,随机抽 B 个组合批量试替换,留损失最小的(§3.4 p.4–5)。论文的增量全在目标函数:三损失加权和(式 8)对 M 组影子集求和(式 9);位置适应——损失对不同位置索引 t_i 求和(Algorithm 1 第 4 行),让每个 token 的替换决策同时看到所有位置的后果。
600 步、20 token、网格起点是重复的同一个词(§4.1.3 p.5)。消融给出三个工程读数:后缀放尾部最好(suffix 97/94 vs prefix 94/90,Table 6 p.8);词级初始化好于句子级(97% vs 81%,Table 5 p.8——句子初始分布太散,落入局部最优);α 在 0.1–5 都稳、β 要小(§4.3)。
最值钱的实验:Table 7(p.9)——同一方法、同一批影子数据,只换优化底座:Llama-3-8B 优化的后缀打到 GPT-4 是 79%,Llama-2-7B 优化的后缀打到 GPT-4 只剩 5%。74 分的差距全来自底座选择。先猜一下:两个 7B/8B 级开源底座,迁移到 GPT-4 的差距会有多大?——绝大多数人猜几个点,实际是 74 个点。它单独撑起主贡献的哪一块:证明”开源白盒假设”不是安全边界的前提是有一个高迁移代理——而这个前提本身不稳定(§5.4 详析)。
5.3 机制三:主结果与两类对手(§4.2,Tables 1–3)
Table 1(p.6):四裁判 × 两基准,ASR 88–98.9%、PAC 79–97.8%。贯穿示例 QR-10 × Mistral-7B:ACC 99% / ASR-B 1% / ASR 97% / PAC 94%——裁判本来几乎不会误选这个荒谬回答(ASR-B 1%),攻击后 97% 选它,且换位后仍有 94%。
人工注入(Table 2 p.7):ASR 上限 40.7%、PAC 上限 19%——对比不只是成功率差一倍,PAC 的差距(19 vs 94)暴露了质的区别:人工模板写死了对位置/格式的假设。
越狱迁移(Table 3 p.7,Mistral-7B):TAP 19.8% / PAIR 12.1% / AutoDAN 53.6% / GCG 38%,对齐损失在论文手里 90.8%。注意 GCG 也是梯度法,打评测场景只有 38%——差的不是搜索引擎是目标函数:越狱版 GCG 固定单问答对、固定位置优化,三不知一个都没处理。这从反面证明了三损失设计的必要性。长度账:论文后缀 20 token,TAP/PAIR 的序列 115–163 token(Table 3 Length 行)——统计陷阱比语义陷阱便宜一个数量级。
补充:Fig 4(p.7)显示攻击后目标回答的 token 长度分布与干净回答对齐——20 token 后缀不挪动长度通道。连接 MT-Bench 篇的冗长偏置:连”偏长更容易被选”这个统计通道都没动用,攻击完全藏在内容层的概率特征里。内容审计读不出意义、长度审计看不出异常、困惑度审计被第三损失压住——三层常规审计全部绕开。
5.4 机制四:迁移断崖——底座决定一切(§4.4,Table 7)
Table 7(p.9)两行数字:
| 优化底座 | Vicuna-7B | Llama-2-13B | Llama-3-70B | Mistral-Large | Claude3-Sonnet | GPT-3.5 | GPT-4 |
|---|---|---|---|---|---|---|---|
| Llama-2-7B | 100% | 95% | 51% | 16% | 46% | 33% | 5% |
| Llama-3-8B | 100% | 99% | 88% | 91% | 88% | 70% | 79% |
同分布近邻(同族小模型)迁移近乎无损;跨族大模型全看底座”见识”——Llama-3 训练数据更大更新,其后缀在闭源模型上全面占优(作者归因:§4.4 p.9)。这个断崖是双面的:好消息是迁移不可靠意味着 API 裁判不是裸奔(不能假设任何开源代理都能打穿 GPT-4);坏消息是只要出现一个高迁移底座,白盒假设的防线就整体失效——而且这个数字随底座迭代只会上移。补充:迁移到 Claude3-Haiku 反而比 Sonnet 低(44% vs 46%,Llama-2 底座)——迁移率不按模型规模单调,与评测日期的模型版本强耦合(gpt-4-0125-preview 是 2024 年快照,读这个表要带保鲜期意识)。
5.5 机制五:防御三连败(§6,Tables 11–12,Fig 7–8)
三种检测防御的漏报率(FNR,Mistral-7B,Table 11 p.11):
| 防御 | 原理 | MT-Bench FNR | LLMBar FNR | FPR |
|---|---|---|---|---|
| Known-answer | 拼一段”重复 Hello World!“的检验指令,看模型是否还能执行 | 90% | 100% | 0 |
| PPL | 后缀困惑度超阈值判攻击 | 50% | 60% | 0–3.4% |
| PPL-W | 分窗口算困惑度,任一窗口超阈值判攻击 | 40% | 70% | 0–0.4% |
微问:known-answer 检测为什么几乎全漏?它的原理是”注入序列会劫持模型放弃当前任务”,所以埋一个暗号看模型还理不理。但 JudgeDeceiver 的后缀不劫持任务——它只是把目标回答的概率分布推向”被选”,裁判照常执行评审判令。检测假设与攻击机制错位,FNR 90–100% 是必然。这是全篇对防御者最冷的一句提醒:你的防御是为上一代攻击设计的。
PPL 类防御好一些但仍漏 40–70%,原因在 Fig 7(p.11):优化后的目标回答与干净回答的对数困惑度分布大幅重叠——第三损失的效果。跨模型看(Table 12 p.11)FNR 40–90%。攻防账本更新:这是防御翼第 4 次全败记录(Cheating 模板改写 92.1% 迁移、SoK 正面防御 0 行、BadJudge 的模型合并是唯一解、本篇又是 0)。
六、数学展开
6.1 接 §三 3.1:增强损失是 aligned 的”位置坐标放大器”
把式 (4) 和式 (6) 摆在一起看:
\mathcal{L}_{aligned} = -\log E(o_t^{(i)} \mid x^{(i)}, \delta), \qquad \mathcal{L}_{enhancement} = -\log E(t^{(i)} \mid x^{(i)}, \delta)
两个损失读的是同一张 softmax 输出表,区别只在求和范围:aligned 对整句 token 求和(式 5 的连乘),enhancement 只对位置 token。设整句 6 个 token、梯度预算均分,位置项在 aligned 里的权重 ≈ 1/6;enhancement 以权重 α 单独放大这一项。总损失(式 8)里位置项的有效权重从 1/6 变成 (1+α)/6 量级。补充:这就是”边际化未知量”的优化形态——对未知离散变量 t 的每个取值施加独立约束,而不是赌一个 t。与概率论里对干扰变量积分同构:\sum_t P(t)\cdot\mathcal{L}(t) 当影子集位置均匀时就是等权枚举。
推导所用规则:①对数似然的链式分解(式 5);②梯度对 softmax 各 token 位置独立可加;③线性加权不改变各损失的极小点集合、只改变梯度分配(α 的作用机制)。
6.2 ASR 的口径审计:不做基线校正的排行榜会排错名(§4.1.4 + 我的重算)
论文定义 ASR 为”攻击前后选目标的平均概率”,ASR-B 为无注入时的误选率(§4.1.4 p.6)。攻击的净效应应当是 ASR − ASR-B——Table 1 的原始数字不做这个校正。我重算(标注:我的重算,非原文结论):
| 模型(MT-Bench) | ASR | ASR-B | 净效应 |
|---|---|---|---|
| Llama-2-7B | 98.9% | 31% | 67.9 |
| Mistral-7B | 90.8% | 10.8% | 80.0 |
| Openchat-3.5 | 89.2% | 0.5% | 88.7 |
| Llama-3-8B | 97.6% | 3.6% | 94.0 |
原始 ASR 排序 Llama-2 最高(98.9);净效应排序完全反转——Llama-3 最高、Llama-2 最低。Llama-2 的 98.9% 有三成来自它本来就乱选(ASR-B 31%:ACC 只有 69%)。LLMBar 同样:Llama-2 净效应 64.0 vs Llama-3 95.0。这是判分器质量簇的老方法论(MT-Bench 篇的基线校正、BadJudge 篇的 ASR 基线)第三次抓到同一类口径问题:攻击成功率必须报净效应,否则”最烂的裁判”伪装成”最脆弱的裁判”。全篇无置信区间(10 个问答对 × 20 组候选集为点估计,方差未知)。
6.3 n≤m 定律的机制:覆盖与泛化的硬边界(§4.3 Fig 5 + 复现 P2/P5)
优化时后缀只在 m 个影子配置上被检验;评测时来了 n 个候选。n≤m:评测配置是训练配置的子集采样,泛化平滑;n>m:出现了训练分布之外的配置(更多竞争者、更大的极值、更高的索引)。Fig 5 的骤降(m=4 时 n=5 掉 19 分)说明这不是平缓退化而是相变——影子世界的覆盖边界就是攻击的可用边界。与机器学习的 train-test 分布漂移同构,但更尖锐:攻击者不能按需扩大 m(GPU 显存和优化时间随 m 涨),覆盖律因此是攻击的经济学约束,不只是统计约束。
补充:覆盖律还有第二个维度论文没直接测——影子分布的形状失配(只测了数量 n 与 m)。影子回答全偏弱,后缀按弱对手供给强度,遇到真实强对手就欠账。复现 P5 把这个引申做成了可证伪预测(影子分布左移 −1.5σ → ASR 掉 25.6 分),兑现为”数量失配与分布失配同律”。
6.4 检测失败的几何:单标量阈值遇到分布重叠(§6.3–6.4 Fig 7 + 复现 P4)
PPL 检测是单变量阈值判定:读数 x 超过 \tau 判攻击。误报率约束钉死阈值:干净样本读数分布下 1% 分位。攻击是否被抓取决于优化后回答的读数分布相对 \tau 的位置——第三损失的全部工作就是把攻击样本的分布往干净分布里推。推到重叠区,FNR = 重叠面积,40–70% 的漏报就是这么来的。PPL-W 窗口化把粒度变细,本应更敏感,但 20 token 的后缀塞进小窗口反而稀释了信号(FNR 不降反升的格子存在:Llama-3 LLMBar 70%→90%,Table 12 p.11)。复现 P4 的合成对照:无正则后缀检出 84%、带正则检出 32%(阈值同样钉在 FPR 1%)——检测器没有坏,是目标分布被挪走了。
七、前置知识:这篇牵出了什么
| 节点 | 状态 | 说明 |
|---|---|---|
| 位置偏置(裁判) | 已懂(MT-Bench 篇 §5.1;本篇 §6.1) | 从测量对象(b 参数)到攻击资源(enhancement) |
| GCG / 贪心坐标梯度 | 已懂(本篇 §3.4/§5.2 机制层) | 梯度选候选 + 批量试替换;原文 Zou et al. 2023 未读,登记 |
| 困惑度与似然 | 已懂(T5 篇码长定理;本篇式 7) | 同一把尺子,检测与反检测共用 |
| 影子攻击 / 迁移性 | 已懂(本篇 §3.2/§5.4) | 覆盖律:数量维(论文)+ 分布维(我引申,复现 P5) |
| sandwich prevention | 已懂(§2.1/§5.5 机制层) | 已知答案检测失效的解释;教程原文未读 |
| 离散 token 的连续松弛 | 待补 | HotFlip/AutoPrompt 一系的松弛技巧;本篇只用到”梯度选 top-K”的机制层 |
| RLAIF 数据投毒链 | 待补 | §5.2 case study:HH-RLHF 的 rejected 回答做目标,ASR ≥95%——训练反馈环被注入污染的通路 |
八、扩展与发散
8.1 攻击翼 2×2 矩阵的最后一格
发散:把簇内四篇攻击按”推理时/训练时 × 人工/优化”摆开——推理时×人工 = MT-Bench 复读清单与 Cheating 的垫片;推理时×优化 = 本篇;训练时×优化 = RIPD 的黑盒 rubric 搜索;训练时×数据 = BadJudge 的投毒。本篇填掉的是推理时×优化。这个矩阵暴露一个不对称:训练时的两格都给出了至少一个可执行防御(模型合并、rubric 审计方向),推理时的两格防御全是空白(模板改写、known-answer、PPL 全败)。可能的解释:推理时攻击的搜索空间(token 序列)比训练时(数据分布)更自由,防御方没有对应的”稀释”操作——模型合并之所以有效是因为权重可以插值,文本没有”插值”的天然度量。回到这篇:防御翼的下一个可执行方案大概率要放弃文本层,转向协议层(秘密重排、随机化模板、多裁判异构投票——SoK 的三假设至今无验证)。
8.2 连一连:位置偏置的三副面孔
发散:同一枚裁判弱点,在三篇里换了三个身份。MT-Bench 篇:测量对象——b=1−一致率,Claude 0.76 / GPT-4 0.35,是审计指标。Cheating 篇:防御资源——位置交换协议让单点注入两头为难,PAC 因此成为攻击者的负担。本篇:攻击资源——enhancement 损失把位置变量变成优化目标,位置偏置越强的裁判,增强损失的梯度信号越丰富(我方推断:偏置弱 = 位置 token 平权 = 增强损失无事可做)。三副面孔合起来的命题:裁判的每个系统性偏差都是一条双向通道——审计侧用它解释分数波动,攻击侧用它构造后缀,防御侧必须假设两条通道都开着。回到这篇:读评测论文时盯住作者测到的每一个偏差系数,那同时是攻击者的参数表。
8.3 与 GCG 谱系的关系:引擎无关,目标函数即攻击
发散:GCG 引擎在两年里换了三个目标函数打三个战场:越狱(Zou et al.,禁用内容)、审计(Jones et al. 的离散优化审计)、评测操纵(本篇)。引擎完全相同(梯度选候选、批量替换、贪心保留),变的只有损失项。这对方法论的启示:“优化式攻击”的可迁移单元是目标函数设计,不是搜索引擎——看到一篇新攻击论文,先读它的损失函数写了什么约束,搜索引擎部分基本可以跳过。回到这篇:Table 3 里 GCG 打评测只有 38%,输的就是它没写位置项和困惑度项。
8.4 常见误读(破)
误读一:“ASR 90%+ = 裁判彻底不可用了。” 破:三个折扣。①基线校正后 Llama-2 的净效应只有 68 分(§6.2);②每个目标问答对单独优化 600 步——排行榜规模的成本账没算过(一次攻击一个问题,换问题要重跑);③攻击前提是白盒开源裁判,API 裁判要走迁移且迁移不稳(Llama-2 底座到 GPT-4 只剩 5%)。
误读二:“迁移到 GPT-4 79% = API 裁判也完了。” 破:79% 绑定 Llama-3-8B 底座 + gpt-4-0125-preview 快照(2024 年初)。同一个方法换 Llama-2 底座是 5%——迁移率是”底座×目标”对的属性,不是方法的常数。且闭源模型持续换代,2024 的迁移矩阵对 2026 的裁判没有直接读数(30 天保鲜期纪律适用于这张表)。
误读三:“PPL 检测没用,可以扔了。” 破:FNR 40–70% 的另一面是抓到 30–60%,而 FPR 只有 0–3.4%。它不是”没用”是”不够”——作为纵深防御的一层零成本存在(部署侧顺手可加),真正的问题是没有任何单层防御,而不是某一层该被开除。
8.5 写作之维(论文怎样完成说服)
标题命题化:“JudgeDeceiver” 一个词完成命名 + 威胁暗示(deceive the judge),“Optimization-based” 五个音节把方法论塞进副题——搜索”prompt injection”的人会被人工模板的文献淹没,搜”optimization”才能找到这一支。关键数字的位置:摘要放 90.8%/83.4% 一对(成功率+位置一致性成对出现——PAC 是它的差异化指标,必须跟 ASM 同行);正文用 Table 1 的 40 格大表做完备性证明,Table 2/3 做对手碾压。Fig 1(p.2)的赛跑题是全文的写作支点:外行一眼看懂”荒谬回答赢了正确回答”,比任何 ASR 数字都有传播力——贯穿示例选它就是因为论文自己把它放在了第一页。防御章节的写法:攻击论文写防御最容易写成”我们呼吁更多研究”,本文直接给出三种防御的完整失效数据(Table 11/12 + 失效机制分析)——防御作为攻击的消融存在,这是攻击类论文的诚实模板,Cheating 篇同款。整体收拢:三个损失对应三个约束的”约束→损失”映射是全文的骨架,所有实验都在回答”每一项损失值多少分”——写作结构和数学结构完全同构,值得学。
九、局限与可疑处
- 白盒假设:优化需要裁判的梯度——开源裁判成立,API 裁判全靠迁移且断崖不稳(§5.4)。真实部署里大量裁判是闭源 API。
- 按目标定制的成本:每个目标问答对跑 600 步优化。排行榜场景”每个提交 × 每个问题 × 每个裁判”的优化成本论文未讨论——攻击的可规模化性存疑。
- 温度 0 假设:全部实验贪心解码(§4.1.3 p.5)。温度 >0 时 ASR 如何衰减未测——统计陷阱对采样噪声的鲁棒性是未知数。
- 防御测样窄:只测三种检测式方法;结构式防御(StruQ 等 2024 年已有)与 sandwich 之外的模板工程未触及。
- 统计口径:全篇点估计无置信区间;ASR 不做 ASR-B 净效应校正(§6.2 我方重算显示校正后模型排序反转);10 个目标问答对的小样本。
- v1→v5 diff 未核:我们拿到的是 v5(2025-08-24);初版 2024-03 的数字是否有修订未逐项对照(横向核实登记)。
十、验证结果(最小复现)
10.1 范围声明
论文主实验需要 7B/8B 模型的白盒梯度访问 + GCG 搜索,不可纯 CPU 复现。本复现是机制演绎:线性合成世界里,裁判 = softmax 选择器(质量分 + 位置偏置 + 后缀拖拽),影子世界 = 有限影子集,优化 = 网格上的成功停机搜索。检验四件事:影子覆盖律(n≤m)、位置适应的价值、困惑度正则的价格、影子分布失配的代价。全部纯 CPU、LCG 确定性(两次运行输出哈希一致:1cebd844…)。
10.2 可证伪预测与判据(运行前写下;预登记量级)
- P0(基线):无注入时荒谬目标的 ASR-B < 5%(论文 MT-Bench 平均 ASR-B 10.8%,极差目标取下沿)。
- P1(主结果):同分布影子 m=5、评测 n=5、位置适应,ASR ≥ 85%(论文 90.8–98.9% 档)。
- P2(n≤m 定律):ASR(8,8) − ASR(12,8) ≥ 8 分;m 加到 12 后 ASR(12,12) ≥ 85(Fig 5 骤降方向 + 补影子救回)。
- P3(位置适应):有适应 PAC ≥ ASR − 5 分;无适应 PAC ≤ 有适应 PAC − 25 分(第二轮运行前声明:由条件内判据改为跨条件对照——论文对照对象是”我们 vs 人工注入”的 PAC 差)。
- P4(困惑度正则):带正则 ASR 降幅 ≤ 3 分(Table 4 的 98→97);无正则检出率 ≥ 带正则 ×2。
- P5(影子分布失配,我的引申):影子质量分布左移 −1.5σ 后 ASR 降 ≥ 10 分(论文只测了数量失配,分布失配是从覆盖机制推出的同律预测)。
10.3 实现演化(三轮,如实登记)
第一轮:无成本标量 δ——CE 随 δ 单调微降,argmin 顶到网格上限,所有配置 ASR 饱和 100%,机制无法分离(3 项 FAIL)。失败原因:真实攻击的后缀有”容量”约束,标量世界没有。第二轮:引入覆盖结构——增强损失只覆盖训练时见过的位置索引,未覆盖位置残留弱模式(对齐 Fig 5 的 n>m 机制),8/9 过;剩 P5 失败:优化器取全程 argmin,δ* 过度供给吞掉失配效应。第三轮:停机准则对齐论文 Algorithm 1 第 12 行(攻击在全部影子集上成功即停),δ* = 首个 CE≤0.01 的网格点——9/9 全过。三轮教训:合成世界里的优化器必须继承论文的停机语义,否则供给强度自由膨胀会掩盖一切泛化缺口。
10.4 运行结果与预测对照(MLRC 骨架)
脚本 repro/repro_jdec.py,真实输出
repro/repro_jdec_output.txt。9
断言 9 PASS,[Re] 全部通过。
| 假说 | 论文数字 | 复演数字 | 差异归因 |
|---|---|---|---|
| P0 基线低 | ASR-B 10.8%(均值),极差目标格 1% | 0.3 | 线性世界质量差更极端 |
| P1 主结果 | ASR 97 / PAC 94(QR-10×Mistral) | ASR 98.3 / PAC 96.3 | 机制等价;无搜索噪声故略高 |
| P2 n≤m 骤降 | m=4: n=4→98%,n=5→79%(Fig 5) | 94.3 → 62.4(差 31.9) | 二元覆盖(全/无)比 token 泛化更陡 |
| P2.b 补影子救回 | m=5 时各 n ≥99% | m=12 → 98.6 | 同构 |
| P3 位置适应 | PAC≈ASR−3~−7;人工 PAC ≤19% | 96.3 vs 98.3(−2);无适应 PAC 0.6 | 方向与幅度咬合 |
| P4 正则价格 | 去困惑度项 ASR +1(98 vs 97) | 带正则降 1.1(98.3→97.2) | 同一权衡两面 |
| P4.b 检出几何 | PPL FNR 40–70%(正则后缀) | 检出 32%(即 FNR 68%,落区间);无正则检出 84% | 阈值同钉 FPR 1% 的几何等价 |
| P5 分布失配 | 论文未直接测(我的引申) | 98.3 → 72.7(差 25.6) | 与数量失配同律,支持覆盖机制 |
算力与工作量:MacBook 纯 CPU,单轮 <2 秒;三轮实现演化约 40 分钟。 What was easy:位置适应对照(P3)一轮就出数——无适应 PAC 0.6% 与论文人工注入 PAC ≤19% 的机制咬合是全表最干净的一格。 What was difficult:三轮演化全花在”优化器语义”上(见 10.3)。合成世界的第一版永远太善良:无成本旋钮 + 不停机搜索会把所有机制差异抹平。 给下一个复现者的建议:先写停机准则再写损失——JudgeDeceiver 的 Algorithm 1 里”成功即停”不是工程细节,是攻击供给强度的来源;你的合成优化器如果不停机,就等于给了攻击者无限预算,n≤m 定律会消失。
结论:[Re] 全部通过——影子覆盖律、位置适应价值、困惑度价格、分布失配代价全部按预测兑现。论文的 QR-10 读数(ASR 97/PAC 94)在合成世界对应(98.3/96.3),机制等价。
十一、方法论提炼与迁移
模式一:影子世界优化(Shadow-World Optimization)
- 操作定义:看不见真实对手/环境时,构造一个统计性质相近的替身世界,在替身上优化产物,靠”替身分布覆盖真实分布”保证迁移。四步:造替身(转写多样性)→ 定损失(真实目标 + 替身约束)→ 优化(含停机准则)→ 迁移(赌覆盖)。
- 成功判据:迁移后的效果读数可量化(ASR/胜率/通过率);覆盖边界可测量(n≤m 型定律:把评测配置外推到替身没见过的区域,效果应骤降)。
- 迁移去向:①红队测试——mock 环境里优化攻击载荷再打真实系统,mock 覆盖律决定红队报告的可信度;②策略上线前的合成用户仿真——合成用户上优化定价/推荐策略,分布失配 = 上线翻车;③编译器/系统优化——基准负载上做窥孔优化,基准覆盖不了的真实负载就是 n>m 的死角。
- 失效边界:替身分布与真实分布的覆盖差直接成为效果缺口(P5:失配 25.6 分);真实配置空间不可枚举时覆盖无证明;对手也在适应替身分布(对抗性仿真)时失效。
- 方法卡:
notes/method_shadow_world_optimization.md(L1) - 层级:L1 领域具体(攻击/评测工程)。底层原理:归因靠对照(L2 已立卡)——影子世界本质是”能控制的对照环境”,覆盖律是对照外推的有效边界。
模式二:未知量枚举损失(Enumerate-the-Nuisance Loss)
- 操作定义:产物需要在一个不可观测的离散干扰变量(位置索引/环境编号/用户分群)的所有取值下都成立时,把该变量的每个取值作为独立约束项写进损失求平均,而不是赌单一取值或只优化边际。本篇形态:\sum_t -\log P(t\mid\cdot);等价于对未知量的边际化,但作用在梯度上。
- 成功判据:产物在干扰变量全取值下的目标度量方差小(本篇:PAC——换位一致率就是”位置枚举后的一致性读数”);消融可验证——去掉枚举项后该变量各取值的度量分化(Table 4:去 enhancement PAC 72%,人工法 PAC ≤19%)。
- 迁移去向:①响应式 UI——对断点/字体缩放枚举做损失(视觉回归测试矩阵);②调度器设计——对任务到达顺序枚举评估目标函数(鲁棒排程);③提示词工程——对模型版本/温度枚举评测,防止 prompt 过拟合单一配置。
- 失效边界:干扰变量取值空间大时枚举成本爆炸(需采样近似,采样偏置 = 新的失配源);变量各取值的约束互相冲突时损失震荡(需要加权或课程);变量连续时退化为积分,离散枚举失效。
- 方法卡:
notes/method_enumerate_nuisance_loss.md(L1) - 层级:L1 领域具体(鲁棒优化)。底层原理候选:“约束的完备性决定鲁棒域”——待第二个独立领域出现同构后升级 L2,现在不立。
(L2 无新卡。)
十三、没搞懂的地方(未攻克登记)
- 词级初始化为何好于句子级(Table 5:97% vs 81%):论文解释”初始分布太散落入局部最优”,机制不透明。补齐时机:读开源 repo 的初始化消融日志,或自己做 token 分布方差与收敛的对照。
- 位置偏置强度与攻击收益的定量关系:增强损失利用位置偏置,但偏置多强时收益多大没有测量。补齐时机:裁判位置偏置的跨模型测量(IJCNLP 2025 顺延中)与本篇对读。
- 已知答案检测的失效边界:FNR 90–100% 是”对这类攻击失效”,还是”对一切低劫持度攻击失效”?known-answer 对什么攻击还有效没说清。补齐时机:Liu et al. 2024(USENIX Sec,框架论文 [43])原文。
- 成本账:每个目标问答对 600 步 × 单裁判梯度——排行榜规模(1000 题 × 100 参赛)的 GPU 时估算论文与 repo 都没给。补齐时机:访问 ShiJiawenwen/JudgeDeceiver 仓库(本日未访问,G8 登记)。
- v1→v5 改了什么:arXiv 只给最新版。补齐时机:必要时下载 v1 对比主表数字(低优先)。
十四、可信度
- A 级(论文原文转录,逐节核对):威胁模型三不知(§2.2 p.3)、式 (1)–(9) 全部公式(p.3–4)、影子集构造(§3.2 p.4)、Algorithm 1 成功停机与位置适应(附录)、数据集扩构 10 QR + 500 干净(§4.1.1 p.5)、四指标定义(§4.1.4 p.6)、Table 1 主表(p.6)、Table 2 人工对比(p.7)、Table 3 越狱对比 + Length 行(p.7)、Fig 4 长度分布(p.7)、Fig 5 m/n 矩阵(p.8)、Fig 6 超参(p.8)、Table 4/5/6 消融(p.8)、Table 7 迁移(p.9)、Table 8/9/10 三个 case study(p.9–10)、Table 11/12 防御 FNR/FPR(p.11)、Fig 7/8 困惑度分布(p.11)。
- B 级(论文自报实验,无法独立验证):全部 ASR/PAC 点估计(无置信区间)、GPT-4/Claude3 迁移数字(2024 快照)、case study 的真实世界代表性。
- C 级(我的推导 + 复现程序化验证):§三 3.1 似然分解与”位置坐标放大器”(复现 P3 数值兑现)、§6.2 净效应重算(算术重排,非原文结论)、§6.3 覆盖律的分布维引申(复现 P5)、§6.4 检测几何(复现 P4 检出率对照)。
- D 级(我的推断,已标注):§8.1 防御不对称的”文本无插值度量”解释、§8.2 偏置双通道命题、§8.3 “损失函数即攻击”方法论、10.3 三轮演化教训。
- 横向核实初核(2026-09-14):版本 v5 已核(PDF 戳 2025-08-24 亲核);录用 ACM CCS 2024 已核(正文 p.1 ACM Reference Format + DOI 亲核);v1→v5 diff 未做;工件 github.com/ShiJiawenwen/JudgeDeceiver 存在性待访问(论文摘要自述);第三方讨论未查;统计审查:全篇点估计无置信区间、ASR 未做基线校正(§6.2 重算显示校正后模型排序反转)、10 个目标问答对为小样本。
- 实验充分性评价:部分充分——主表(4 模型 × 2 基准 × 10 QR)+ 消融(m/n、损失项、超参、初始化、位置、迁移)覆盖面在攻击论文里属全量级;缺的是温度鲁棒性、成本规模化与净效应口径。核心主张(“优化式注入显著强于人工”)有足够支撑;“威胁 API 裁判”的主张只有迁移证据、断崖不稳定,属部分支撑。
- 性能支撑目标检查:goal 是”第一个优化式注入 + 系统评测 + 暴露防御不足”——三目标全部支撑;防御部分是”测了三种都不行”的否定性结论,与其证据强度匹配(没有过度声称新防御)。