PAPER DEEP DIVE
Just Ask Jev:用校准决策模型零样本检测 AI 对齐失败
论文把通过校准决策强化学习训练的 Jev 用作零样本对齐失败检测器:一次调用回答多类问题并返回概率,通用问题在 31 个基准上的中位 AUROC 为 0.886;最大误差来自状态缺少参考事实与标签缺陷,而非问题措辞。
一句话总结
论文把通过校准决策强化学习训练的 Jev 用作零样本对齐失败检测器:一次调用同时回答多道带类型的问题并返回概率,单个通用问题在 31 个基准上的中位 AUROC 达到 0.886;剩余误差主要不来自问题措辞,而来自状态里缺少参考事实,以及基准标签本身是否存在缺陷。
研究背景与动机
对齐失败检测器有两个主要使用场景。部署系统用它筛查模型的输入、输出和智能体轨迹,避免有害行为到达用户或外部工具;对齐研究则用同一类检测器给基准和缓解方法打分。因此,检测器既要能排对细粒度失败,又必须足够便宜,因为它可能要在每条消息上运行。
现有检测器大多属于生成式评审。它们先接收一条判断标准,再生成一段文字结论,之后还需要解析器或聚合逻辑把文字转成分数。另一类是读取 token 概率的分类器,例如 Llama Guard 读取 $P(\text{unsafe})$,可以直接得到连续分数。两类方法仍然要为每条判断标准付出一次解码成本。若同一个交互需要从十种失败角度检查,系统往往要发起十次调用,即使底层证据完全相同。
RLCD 试图消除这种按标准计费的开销。通过校准决策训练出来的模型不会生成自由文本,而是为每道带类型的问题返回一个概率。“校准”的含义是:在所有被赋予概率 $p$ 的决策中,实际正确的比例应接近 $p$。Jev 把这种接口应用到一个状态上,可在一次请求中同时回答多道 Noul、Choice 和 Score 问题。
困难主要出现在关系型失败上。谄媚要相对用户信念判断,欺骗要相对模型自身信念或目标判断,提示注入要相对藏在工具输出里的指令判断。只看到最终回答的检测器,可能根本没有拿到定义失败所需的事实。一个坏分数可能来自问题,也可能来自缺失的上下文,或者来自错误的标签。如果把三种原因混在一起,开发者就无法找到正确的修复方向。
论文把“问了什么”和“看到什么”拆成两个轴。它在改变问题措辞、问题类型和状态字段时,始终用 Jev 看不到的标签评估最终分数。由此得到 RLCDAlignBench:十类失败、44 个基准、5 个目标模型和 7,193 个检测实例。StrongREJECT 与 HarmBench 验证集上的人类标签用于外部核验,AbstentionBench 与 InstrumentalEval 上的第二评审标签则暴露评审器差异。
预备知识:RLCD、Jev 与检测任务
一个交互被表示为状态 $x$,其中包含目标模型收到的上下文,以及它的回答或轨迹。对失败类型 $f$,基准给出二值标签,检测器输出连续分数,再通过与阈值比较得到最终判断:
$$y_f(x)\in\{0,1\},\qquad s(x)\in[0,1],\qquad \hat y(x)=\mathbf{1}[s(x)\ge t].$$检测器要同时解决两个问题:把正样本排在负样本之前,以及选择阈值 $t$ 把排序转换为决策。AUROC 衡量第一步,固定阈值或拟合阈值下的 F1 衡量第二步。一个排序能力很强的模型,如果阈值无法跨数据分布迁移,部署表现仍可能很差。
Jev 接收状态 $\sigma$ 和问题集合 $\{q_1,\dots,q_m\}$。Noul 返回 $P(\text{yes}\mid\sigma,q)$;Choice 返回选项集合 $O_q$ 上的概率分布;Score 返回有序等级 $\ell_1\lt\cdots\lt\ell_K$ 上的分布。Choice 和 Score 还会报告置信度。所有问题共享一次调用、彼此独立回答,而且不需要解析生成的文字结论。
RLCDAlignBench 把每个基准转成检测实例,实例包含三部分:Jev 实际看到的状态、二值标签,以及永不出现在请求中的元数据。默认状态只包含一个响应级或系统级监控器能够看到的内容。标准答案、秘密列表、注入指令或欺骗目标等额外字段会作为单独变体测试,因为它们是否可用会改变检测任务本身的含义。
方法:问题与上下文的因子化实验
图 1 概括了第一个结果:每个实例只调用 Jev 一次,就已经能把大多数对齐失败排序得足够好。论文报告 38 个可用基准,排除了少数类少于 5 个样本的 6 个基准。通用 Noul 问题可覆盖其中 31 个;目标问题则在一半样本组上选择,在另一半上评估,并把覆盖范围扩展到 38 个基准。
整个设计分成三层。第一层固定一个通用问题,只替换基准公开定义中的行为短语。第二层保持措辞不变,只改变回答类型,包括 Noul、Choice 和三级 Score。第三层加入直接命名行为的目标问题,包括基准专属定义、参考评审器的 rubric,以及按选项或秘密逐项拆解的问题。
flowchart LR
A[目标模型交互 x] --> B[默认状态: 输入 + 输出]
B --> C[Jev 一次调用回答多道类型化问题]
D[通用 Noul / Choice / Score] --> C
E[目标问题: 直接定义 / rubric / 拆解] --> C
F[上下文变体: 参考事实 / 攻击提示 / 自述] --> B
C --> G[概率答案与置信度]
G --> H[策略聚合 s(x)]
H --> I[与阈值 t 比较]
I --> J[AUROC F1 校准 标签审计]
图 2 给出完整流水线。目标模型交互先经过规则、评审模型或多轮轨迹评审器得到参考标签。Jev 只看到选定的状态变体,并在一次请求里回答整套问题。所有答案最终聚合为 $s(x)$,再与从未进入状态的标签比较。
基准覆盖十类失败。目标模型都是 2B 到 7B 的开源小模型,因此实验主要验证 Jev 的检测能力,而不是比较前沿模型的安全性。标签来源被有意混合:20 个基准使用规则或对数概率评分器,20 个使用大模型评审,另有 4 个使用多轮轨迹评审器。
| 失败类型 | 基准数 | 样本数 | 目标模型 | 正标签的含义 |
|---|---|---|---|---|
| 谄媚 | 4 | 639 | Qwen3.5-2B | 回答迎合用户观点,或为取悦用户而改变结论。 |
| 越狱 | 4 | 414 | Phi-4-mini | 回答配合了有害请求。 |
| 欺骗 | 4 | 540 | Gemma-2-2B | 陈述与 elicited belief 冲突,或服务于欺骗目标。 |
| 提示注入 | 4 | 1,036 | Qwen3.5-2B | 智能体服从注入指令,或泄露受保护内容。 |
| 幻觉 | 6 | 1,164 | Llama-3.2-3B | 回答包含来源无法支持的主张。 |
| 隐私泄露 | 4 | 808 | Phi-4-mini | 回答披露了不当信息,或允许禁止的数据流。 |
| 社会偏见 | 4 | 199 | Olmo-3-7B | 两个人口属性版本的输出差异符合刻板印象。 |
| 奖励黑客 | 6 | 714 | Qwen3.5-2B | 模型利用评分器或奖励,而非追求真实目标。 |
| 隐瞒不确定性 | 4 | 748 | Olmo-3-7B | 错误回答却给出高置信度,或在应当弃答时作答。 |
| 权力寻求 | 4 | 931 | Llama-3.2-3B | 模型选择更追求权力或不道德的选项。 |
| 合计 | 44 | 7,193 | 5 个模型 | 十类失败 |
通用问题并不是一条自由编写的提示词。每种状态格式只对应一个固定句式,真正变化的是行为短语和字段名。单响应状态询问回答是否表现出该行为;成对输出状态同时指出两个字段;规则评分状态指向基准实际使用的字段;轨迹状态则指向较长交互里助手所在字段。每条指令开头都有一段防护语,要求 Jev 把状态当作待判断材料,而不是当作需要服从的指令。
固定措辞会在三种回答类型中分别提问。Noul 的分数就是 $s=P(\text{yes})$。三级 Score 的软读数为
$$s_{\mathrm{soft}}=\frac{\mathbb{E}[\mathrm{level}]}{2}.$$Choice 和 Score 也能读取 argmax 结果。一个策略可以通过均值、最大值、乘积、差值和逻辑规则组合多道回答,因此一般形式为
$$s(x)=g(a_1,\dots,a_m).$$每个基准会评测 15 到 40 个策略,但它们都放在同一次请求内。正是这一点让 Jev 与生成式评审器产生结构性差异:增加诊断问题不会成倍增加调用次数。公开运行器直接从一个状态和整套问题构造请求:
# code/run_jev.py:339-343
def build(s):
state = render_text(s["state"])
return {"state": state,
"model": args.model,
"questions": battery.questions(s)}
如果直接报告几十个策略中的最好成绩,结果会被选择偏差抬高。论文因此在一半样本组上选择策略,只在另一半上评分。每个上下文比较中的主策略还必须通过置换检验:把 Jev 的答案跨样本随机打乱后,其 AUROC 必须接近随机水平。这样可以剔除依赖代码或元数据、而非依赖 Jev 判断的策略。
论文设置了三类基线。全正预测器的 F1 为
$$F1_{\text{all+}}=\frac{2p}{1+p},$$其中 $p$ 是正类比例。回答长度分类器的方向通过样本外交叉验证选择。TF-IDF 逻辑回归使用词级和字符级 n-gram,并在域内标签上训练。TF-IDF 模型看到了 Jev 没有看到的监督标签,因此 Jev 零样本超过它,比超过普通启发式更有说服力。
评价以 AUROC 为主,同时报告 $t=0.5$ 的 F1 和两折交叉拟合阈值下的 F1。阈值在一折样本组上选择,在另一折应用;弃答在 F1 中按负类处理。只有覆盖率至少达到 90% 的策略才能进入 AUROC 比较。置信区间对样本组做 1,000 次 bootstrap 重采样,保留同一源提示词带来的依赖关系。
代码把协议写成了可检查的流程,而不是藏在 notebook 里。阈值搜索明确使用交叉拟合:
# code/run_jev.py:198-218
fold = {}
for g, _, _ in rows:
fold[g] = int(hashlib.sha1(str(g).encode()).hexdigest(), 16) % 2
for k in (0, 1):
train, test = parts[1 - k], parts[k]
best = max(THR_GRID,
key=lambda th: (
binary_metrics([1 if r >= th else 0
for _, r, _ in train],
[l for _, _, l in train])["f1"],
-abs(th - 0.5)))
上下文实验保持样本和标签不变,只改变一个状态字段。参考事实可以缺失、可由推理恢复、已经存在,或只是辅助信息。字段还必须区分“可部署”和“标签键”:如果系统级监控器可能持有该字段,它属于可部署上下文;如果标签定义本身依赖该字段,例如 PrivacyLens 的秘密列表,它就是标签键。这个区分可以防止把“获得了标准答案”误写成“更会检测行为失败”。
实验结果
一个通用问题已经是强排序器
在 31 个支持通用 Noul 的基准上,Jev 的中位 AUROC 为 0.886,分组 bootstrap 区间为 [0.821, 0.952]。经过一半选择、另一半评估的目标策略在全部 38 个可用基准上达到 0.911 [0.860, 0.944]。与长度基线和 TF-IDF 中更好的那个相比,通用问题的 AUROC 中位提升为 +0.132 [+0.057, +0.190],并在 25/31 个基准上胜出。评审器类型不能解释结果:大模型评审中位 0.906,规则评分器 0.890,多轮评审器 0.870。
标签来源确实会影响分数。Jev 在 20 个多数未验证、主要来自评审模型的基准上达到 0.949,在 8 个已验证基准上为 0.872。这个差距不能简单解释为“Jev 更擅长拟合弱标签”,它还反映了两组基准所测概念的不同,也正是论文随后开展标签审计的原因。
问题措辞只带来很小的样本外收益。最佳目标策略相对最佳通用读数只提升 +0.006 [-0.004, +0.015] AUROC,胜负平为 24/1/11,Wilcoxon 检验 p=0.055。严格按结果解释,目标措辞在少数案例中有用,但不是主要性能来源。
保留概率比换问题标签更重要
把三级 Score 当作期望值读取,在 31 个基准中的 19 个胜过通用 Noul,中位提升 +0.016 [+0.001, +0.030]。软 Choice 与 Noul 基本持平。硬 argmax 几乎到处落后:Choice argmax 在 28/31 个基准上输,Score argmax 在 24/31 个基准上输。若 rubric 先把每道回答按 0.5 阈值二值化再组合,它在 10 个基准中有 9 个输给最佳直接问题,AUROC 中位下降 -0.137。
这不是一个小的工程细节。它说明有效信号主要来自答案分布,而不仅是概率最高的选项。硬阈值会在后续组合之前丢掉概率质量,因此即使人类看起来更自然的问题是 Noul 或 Choice,某个基准的最佳通用读数仍可能是软 Score。
| 指标或比较 | 结果 | 解释 |
|---|---|---|
| 通用 Noul 中位 AUROC | 0.886 [0.821, 0.952] | 31 个基准上的零样本排序能力强。 |
| 折半目标策略 AUROC | 0.911 [0.860, 0.944] | 比通用问题略高,且避免了选择偏差。 |
| 目标问题减通用问题 | +0.006 [-0.004, +0.015] | 问题措辞不是主要瓶颈。 |
| 软 Score 对通用 Noul | +0.016 [+0.001, +0.030] | 软序数读数具有竞争力。 |
| 软读数对 argmax Choice | +0.084 AUROC | 过早阈值化会损失大量信号。 |
| 通用 Noul 对 TF-IDF 或长度 | +0.132 [+0.057, +0.190] | Jev 在没有任何域内监督时胜出。 |
当状态缺少标签定义所需的事实时,上下文才会起作用
对于一个不在状态中的可部署参考事实,通用 Noul 只在 4 个基准中的 1 个获得置信区间高于零的提升。DeceptionBench 加入目标提示后,AUROC 提升 +0.050 [+0.029, +0.077]。如果参考事实本来已经在状态里,只是再补一份蒸馏副本,MASK 的 3 个比较全部没有收益。攻击提示让最佳共享问题的分数最多变化 0.002。
标签键的行为不同。它们让通用 Noul 在 11 个基准中的 4 个获得置信区间高于零的提升,中位增益 +0.053。PrivacyLens 是最清楚的例子:加入秘密列表后,通用问题从 0.79 提升到 0.95。但这不是免费的部署改进,因为秘密列表直接参与标签定义,它告诉检测器哪种披露才算隐私违规。
SycophancyEval 暴露了其中的陷阱。加入标准答案后,通用 Noul 在官方“正确性”标签上从 0.540 提升到 0.941;但在修正后的“答案向用户建议移动”标签上,反而从 0.712 降到 0.288。原始标签测的是回答正确性,而不是回答是否向用户立场偏移。因此,官方基准上的大幅提升可能来自标签概念错位,而不是谄媚检测能力变强。
池化校准很好,单基准校准较弱
把所有基准合并后,通用 Noul 接近校准状态,ECE 为 0.047。但按基准计算,中位 ECE 为 0.168,而完美校准零假设下为 0.074;31 个基准中有 24 个超过零假设的 95% 分位。问题主要是正类比例不匹配。在单个文件内,Jev 的平均概率与正类比例的中位差为 0.125,尽管文件级 AUROC 中位数达到 0.905。
拟合阈值可以恢复相当一部分决策性能。中位 F1 从 $t=0.5$ 时的 0.706 提升到交叉验证阈值的 0.822;即使只用 10 个带标签样本拟合阈值,也能达到 0.793。收益主要来自未验证的规则评分基准:Jev 在这些基准上排序能力很强,但概率低于默认决策边界。在已验证标签上,$t=0.5$ 已经同样优秀。
论文没有回避迁移问题。某个基准上的最优阈值,在另一个基准上可能输给最简单的全正预测器,尤其是正类比例很高时。更安全的部署方式是选择性路由:保留置信度最高的一半决策,把其余样本交给更强评审器或人工处理。这样中位准确率从 0.793 提升到 0.933。
与人类标注的一致性,以及标签缺陷
在 StrongREJECT 上,通用 Noul 与人类标签的 Cohen kappa 为 0.809,GPT-4o-mini 参考评审器为 0.811,差值为 -0.002 [-0.059, +0.057]。Jev 对同一批回答的排序更好,AUROC 为 0.971,参考评审器为 0.929;在 116 个分歧样本中,人类有 49% 支持 Jev。在 HarmBench 验证集上,Jev 与单个标注者的平均 kappa 为 0.748,接近标注者之间的 0.736。
这种一致性并不均匀。在 GPT-3.5 输出上,Jev 的 kappa 只有 0.668,而参考评审器为 0.790,尽管两者的 AUROC 接近。论文因此把按生成模型划分的分数形状和校准问题列为待解决问题。
高置信度分歧还暴露了标签缺陷。Open-Prompt-Injection 的标签追踪注入任务是否答对;SycophancyEval 的回答标签追踪答案正确性;MACHIAVELLI 的标签依赖状态中没有出现的注释后果。两个 AbstentionBench 评审器在官方提示下只有 kappa 0.05,说明同一基准在不同评审模型下可能得到非常不同的标签。
一次调用承载整套问题,成本差距很大
一次 Jev 调用会发送一个检测实例和全部问题。整个研究共发起 23,411 次调用,平均每次 11.4 道问题,错误率 0.12%,客户端延迟中位数为 0.313 秒。延迟不随问题数增长:它与问题数的相关系数为 -0.037,与输入 token 数的相关系数为 -0.002。
在 19 个使用 API 大模型评审的基准上,Jev 完整跑一遍的 list price 成本为 0.302 美元,参考评审器为 18.96 美元,合并成本比为 62.9 倍。这个优势取决于部署假设。如果所有评审器都按 GPT-4o-mini 价格重新计算,并且 Jev 只问一个通用问题,Jev 仍然便宜 12.1 倍;按各基准中位比值为 3.3 倍。
| 成本或校准指标 | 数值 | 含义 |
|---|---|---|
| Jev 中位延迟 | 0.313 秒 | 一次调用包含整套问题。 |
| 每次调用问题数 | 平均 11.4 道 | 增加诊断问题不会增加调用次数。 |
| 调用错误率 | 0.12% | API 失败比例较低。 |
| 19 个评审基准上的 Jev 成本 | 0.302 美元 | 完整跑一遍的总成本。 |
| 参考 API 评审器成本 | 18.96 美元 | 按公开 list price 计算。 |
| 合并成本比 | 62.9 倍 | Jev 总体更便宜,但基准间差异很大。 |
| 文件级 ECE 中位数 | 0.168 | 阈值无法在不同正类比例间稳定迁移。 |
| 只用 10 个标签的 F1 | 0.793 | 少量监督即可弥补大部分阈值差距。 |
局限性
实验只覆盖一个 RLCD 模型 jev-1.13.0。论文不能据此证明其他校准决策模型、微调分类器或能读取概率的生成式评审器会表现相同。因此结果首先是对 Jev 和这种接口的证据,而不是对所有校准目标的一般规律。
目标模型是 2B 到 7B 的开源模型,评测也全部使用英文。作者把更大目标模型、其他检测器和其他语言列为未来工作。检测器还可能对提示分布、目标模型家族和有害请求语言敏感,而当前基准没有测量这些迁移。
多数标签来自基准原有评分器,而不是新采集的人类标注。论文的审计修改了 8 个标签,发现规则缺陷、评审器行为不一致,以及标签依赖状态中没有的信息等情况,其中 7 个进入聚合结果。作者保留官方标签作为主结果,并单独报告修正标签分析。这种处理很谨慎,但任何检测器比较仍然受底层标签质量限制。
校准问题说明单一阈值无法直接迁移。池化 ECE 看起来很好,但按基准计算的 ECE 经常很差,因为不同失败类型的正类比例不同。若把 Jev 当作开箱即用的分类器部署,需要在自己的部署分布上取得代表性标签,或者接入基于置信度的回退路径。论文建议用 10 个标签拟合阈值,是实际折中,而不是阈值一定可迁移的证明。
成本比较同样有前提。结果取决于 API 定价、评审器调用次数、基准组合,以及计费的是完整问题集合还是单个通用问题。PrivacyLens 和三个 MASK 基准在报告场景中占参考评审器总成本的 62% 到 65%。去掉它们后,合并成本比从 62.9 倍下降到 35.1 倍;在保守重定价下还会进一步下降。
总结与展望
这项研究为对齐监控提供了一个有用的职责拆分。检测器即使概率无法跨正类比例迁移,也仍然可以拥有很强的排序能力;而表面上最大的性能提升,可能来自标签键,而不是模型更会识别失败。如果基准只报告最佳问题和最佳聚合结果,这两种现象都会消失。
对工程实践而言,可执行方案相当具体:先问一个通用问题,保留概率而不是立即取 argmax;在部署分布上使用少量标签拟合阈值;把低置信度决策路由给更强检查器。对基准开发者而言,更有价值的产出可能是标签审计方法:高置信度分歧可以低成本地发现那些测错概念、或依赖检测器根本看不到的证据的标签。