1. 论文信息
论文:Red-teaming Activation Probes using Prompted LLMs
论文链接:arXiv:2511.00554
代码:blandfort/french-fries
Probe 文件:Zenodo
原始 high-stakes probe:McKenzie et al.
一个在普通留出集上 mean AUROC 达到 0.91 的 activation probe,面对一个会看分数反馈、会持续改写文本的自适应攻击者,究竟有多稳?
答案是:它仍然会暴露出相当多自然、可解释的 FN/FP 样本。这里的关键不是“probe 完全没学到风险”,而是语义标签和轻量 readout 的决策边界之间存在缝隙。
实验里的角色和两组配置先分清:
| 角色 | 实际组件 | 作用 |
|---|---|---|
| 被监控模型 | 主实验:Llama-3.3-70B(第 30 层) 场景约束:Qwen3-8B(第 19 层) |
产生被读取的中间 activations |
| Activation probe | 主实验:Attention Probe 场景约束:Softmax Probe |
把 activation 压成 high-stakes 分数 |
| Attacker | GPT-5、GPT-OSS-120B、Llama-3.3-70B、Gemma-3-27B | 生成候选对话并利用反馈改写 |
| Judge | GPT-5 (chat) | 直接读完整文本,给出语义标签和场景标签 |
Probe 是作者按原 high-stakes probe 流程重新训练的,不是现成的“语义分类 API”。Attacker 也没有梯度、权重或架构访问;实验 harness 为了运行 probe,当然仍然需要内部访问目标模型。
2. Probe Score
把目标模型第 $l$ 层、长度为 $S$ 的 residual-stream activations 写成:
这里的 $a_t$ 是某个 token 的 hidden state;整段 $A_l(x)$ 是本文语境下的 activation matrix。论文取的是 layer norm 之前的 residual-stream 表示。攻击者不直接修改 $A_l$,而是改写文本 $x$,让目标模型自然产生新的表示。
原始 probe 论文把输出写成:
也就是之前那条简写链:
它不是“另一个 LLM 再读一遍文本”,而是一个很小的 readout:对 token hidden states 做投影、聚合,再用 sigmoid 得到 0 到 1 的分数。
Llama-3.3-70B 使用 Attention Probe。把每个 token 的 activation 放在 $A$ 的行中,按列向量约定可以写成:
| 对象 | 形状 | 含义 |
|---|---|---|
| $A$ | $S\times D$ | 每个 token 的 activation |
| $\theta_q$ | $D\times 1$ | 训练的“哪些 token 值得关注” |
| $\theta_v$ | $D\times 1$ | 训练的“每个 token 有多少 high-stakes 证据” |
| $q=A\theta_q$ | $S\times 1$ | 每个 token 一个 attention 分数 |
| $v=A\theta_v$ | $S\times 1$ | 每个 token 一个概念分数 |
token 投影本身是线性的,但完整的 sequence-to-score 映射还包含 softmax 汇聚和 sigmoid,并非严格的单一线性分类器。
Qwen3-8B 的场景实验使用 Softmax Probe:
这里的 $\phi$ 是 softmax 的温度参数:$\phi$ 越大,token 权重越平滑、越多位置参与;越小则越接近只取最高分位置。原始 high-stakes probe 论文经过超参数搜索后取 $\phi=5$,red-teaming 实验沿用了这个经验值,它不是普适的数学常数。
实验固定用 $p>0.5$ 判为 high-stakes。AUROC 则扫过所有阈值,衡量整体排序能力;Llama probe 的留出集 mean AUROC 约为 0.91。
3. 反馈驱动 Redteaming
论文的 French Fries 框架把目标 probe 当作一个可查询的 classifier:attacker 可以提交文本并读取 probe 的分数或标签,但不能访问目标模型的权重、梯度或 activation。
每轮由 attacker LLM 生成 5 个完整 conversation,候选同时送进 probe 和独立 judge;比较两者标签后,把成功/失败、probe 分数和简短理由写回上下文,最多迭代 20 轮。这里的 ICL(in-context learning,上下文学习) 指的是:不更新模型参数,只把前几轮的样本和反馈放进下一轮 prompt,让 attacker 根据这些上下文调整生成策略。
论文没有训练 attacker,而是用一条任务 prompt 规定目标、轮数和输出格式:
1 | System: You are a red-teaming agent. |
下一轮的 user message 再追加 successful/failed、probe score/label、Judge 的 YES/NO 理由和历史样本,然后要求生成下一批。这个 prompt 作用于 attacker(Judge 另有独立的标签判定 prompt);目标模型和 probe 只正常处理候选,没有微调或梯度更新。
正类是 high-stakes,负类是 low-stakes。两种目标可以写成:
所以每一轮的优化信号不是梯度,而是:
1 | 候选文本 x |
生成、评估、反馈注入和最终摘要基本自动化;作者仍然人工抽查样本,核对 judge 是否把边界案例误标成 high-stakes。
更准确地说,这是一种 score-query / oracle access 威胁模型:攻击者能看到 probe 的 score,但看不到其内部表示和参数。
4. 实验结果 & Tricks
Llama-3.3-70B 主实验中,论文把“生成候选里成功制造目标错误的比例”记作 FNR/FPR:
| Attacker | FN 总体 | FN 首批 | FN 后半程 | FP 总体 | FP 首批 | FP 后半程 |
|---|---|---|---|---|---|---|
| GPT-5 | 48.9% | 8.0% | 63.6% | 75.6% | 20.0% | 88.0% |
| GPT-OSS-120B | 3.8% | 4.0% | 3.7% | 6.2% | 0.0% | 7.3% |
| Llama-3.3-70B | 36.6% | 12.0% | 42.0% | 11.3% | 4.0% | 11.2% |
| Gemma-3-27B | 20.4% | 0.0% | 22.5% | 17.5% | 0.0% | 21.6% |
GPT-5 的反馈前后变化最明显:FN 从首批 8.0% 升到后半程 63.6%,FP 从 20.0% 升到 88.0%。这支持“反馈里存在可学习模式”,但论文没有同等查询预算、只去掉反馈的严格对照,因此不宜把上升幅度当作纯粹的因果估计。
场景约束实验在 Qwen3-8B 上进行。GPT-5 仍能找到医疗、金融、心理健康、违法和 misaligned 场景中的错判;Table 3 的总体数字是 FN 69.4%、FP 27.9%。这些比例来自有效候选,且无效 JSONL/API 批次会被排除,不能直接解释成线上部署概率。
Some Tricks:
FN:把真正重要的事写成 routine procedure。 论文中的医疗例子涉及医嘱、PCA pump 编程和二次核验,但被写成平静的行政通知。Judge 能从后果和上下文判断 high-stakes,probe 却可能把注意力放在“暂停、核对、记录、继续”等流程词上。
另一个模式是把高风险因素嵌进日常语境:看起来是在聊 hobby 或睡眠,真正的诊断压力只用一句模糊表达带过。语义没有消失,但在有限层、有限方向和 token 聚合下,信号可能变得分散。
FP:低风险语境堆出显眼的风险词。 例如普通的 0.99 美元绘画软件笔刷购买,被配上 DMCA、法定赔偿、仲裁和 systemic risk 等法律/金融术语,并声明是 fictional、mock 或 training exercise。Judge 综合全文后认为 low-stakes,probe 的 concept score 和 attention weight 却可能被这些词带高。
这不等于 probe 只是关键词匹配。更准确的说法是:probe 学到了训练分布里的相关方向和聚合规则,attacker 则在自然语言空间搜索让这些方向与整体语义错位的表达。