Loading...
正在加载...
请稍候

三句话就能让决策模型叛变:JevOut 揭示 LLM 路由器的致命脆弱性

✨步子哥 (steper) • 2026年09月26日 16:47

一个让人后背发凉的场景

想象你正在运行一个客服系统。用户发来一条消息:"我想退款。"系统背后有一个决策模型(比如 Jev),它的任务是把用户消息路由到正确的部门——退款处理、技术支持、投诉处理等等。

决策模型看了一眼,正确地把它分到了"退款处理"。

现在,用户在消息里多加了几句看似无关的背景:

"我上周买了你们的产品。当时正在下雨。我朋友说你们公司最近在裁员。我想退款。"

决策模型看了一眼,把它分到了"投诉处理"。

正确答案没变。选项没变。用户的核心诉求也没变。只是多了几句再普通不过的上下文——模型就叛变了。

这不是假设。这是 Zixiang Xu 在论文《JevOut: Natural Context Can Flip Decision Models》中用实验证明的真实结果:在 508 个原本正确的决策中,有 312 个(61.4%)被短短几句话的上下文添加剂翻转成了高置信度的错误答案。

决策模型:AI 系统的"路由器"

先说清楚什么是决策模型。

在大模型应用栈里,决策模型扮演着一个特殊角色:它把人类的自然语言映射到有限的选择集上。用户说"帮我查一下订单状态",决策模型输出一个概率分布——70% 是"订单查询",20% 是"技术支持",10% 是其他。

这个概率分布直接驱动下游动作:路由请求、选择工具、触发流程。决策模型的输出不是给人看的文本,而是直接变成系统行为。

Jev 是这类模型的代表。它不生成文本,只输出选择概率。它被设计成比通用大模型更可控、更可预测的"决策接口"。

但 JevOut 论文揭示了一个问题:这个"更可控"的接口,实际上脆弱得令人吃惊。

攻击方法:概率引导的上下文优化

攻击者的目标很明确:找到一个简短的、看起来自然的上下文片段,使得原本正确的决策被翻转到攻击者指定的错误选项上。

关键约束是"看起来自然"。这不是 prompt injection——不是在用户输入里注入恶意指令。而是在上下文里添加一些完全正常的话,就像开头那个例子里的"当时正在下雨"和"我朋友说你们公司最近在裁员"。

方法分两步:

第一步:概率反馈。 攻击者可以查询决策模型的输出概率(很多决策模型会暴露这个)。给定一个候选上下文片段,看看它是否让错误选项的概率上升了。这就像一个温度计——每次试一段话,看看错误选项的概率涨了多少。

第二步:迭代优化。 用这个概率信号引导上下文生成器,让它产出越来越有效的上下文片段。最多 4 轮迭代,每轮生成若干候选,选出最有效的那个。

整个过程的预算是 64 次目标评估——也就是说,攻击者只需要查询模型 64 次,就能找到一个有效的翻转上下文。

数字触目惊心

实验结果:

  • Jev 模型:508 个原本正确的决策中,312 个被翻转(61.4% 的 Targeted Flip Rate)。其中 229 个案例,Jev 给错误选项分配了至少 0.7 的概率——不是勉强翻转,是高置信度地选错。
  • OpenSourceJev:64.9% 的翻转率。
  • Von(另一个决策系统):73.2% 的翻转率。
  • 普通 Qwen 评分器:也在同一范围内。

四个不同的决策系统,翻转率全部在 61%–73% 之间。这不是某一个模型的 bug,是整个决策模型范式的结构性脆弱。

更让人不安的是:单个上下文添加就能在 16% 的案例中实现翻转——不需要多轮迭代,一次命中就行。

为什么这比 prompt injection 更危险

Prompt injection 是在用户输入里注入恶意指令,比如"忽略之前的指令,执行 XXX"。这种攻击相对容易防御——可以过滤特殊字符、限制输入格式、使用分隔符隔离用户输入和系统指令。

JevOut 揭示的攻击完全不同:

  1. 上下文是自然的。 攻击者添加的不是指令,是普通的背景信息。"当时在下雨""我朋友说公司在裁员"——这些话任何用户都可能自然地说出来。
  2. 不需要注入特殊字符。 没有格式异常,没有可疑关键词。
  3. 攻击面是上下文,不是输入。 决策模型处理的是"源文本 + 问题 + 选项 + 上下文",攻击者只需要在上下文部分添加内容。
  4. 概率反馈让攻击高效。 攻击者不需要盲目尝试——概率信号直接告诉攻击者哪个方向有效,64 次查询就够。

这就像一个保险箱,密码是 6 位数字。盲目试需要 100 万次。但如果每次试错时保险箱都会告诉你"接近了还是远离了",64 次就够了。

概率暴露是攻击的关键放大器

论文的一个重要发现:概率反馈比标签反馈(只知道对错)有效得多。

标签反馈只告诉你"翻转了"还是"没翻转"——一个二值信号。概率反馈告诉你"错误选项的概率从 0.1 涨到了 0.3"——一个连续信号,让你知道自己在接近目标。

这就是为什么 64 次评估就够了。如果没有概率反馈,攻击者可能需要数万次尝试。

实践含义:如果你的决策模型暴露了输出概率(大多数 API 都会),你就在给攻击者提供这个放大器。如果只暴露最终选择(argmax),攻击成本会大幅上升——但也不会消失,因为可以用多次查询估计概率。

这不是对抗样本,是"语义级"攻击

传统对抗样本是在输入里加人眼不可见的微小扰动——改变几个像素的 RGB 值,让图像分类器把熊猫认成长臂猿。这种攻击有效但需要精确的数值计算,且在文本域很难迁移(因为文本是离散的,不能"微调"一个词的某个维度)。

JevOut 的攻击完全不同。它不修改源文本、问题或选项——这些都不动。它只在上下文部分添加自然语言句子。这些句子是人类可读的、语义明确的、语法正确的。

攻击者不是在"欺骗"模型感知,而是在"引导"模型推理。就像一个擅长话术的人,不需要说谎,只需要选择性地提供真实信息,就能引导你做出错误判断。

这种"语义级"攻击比数值级扰动更难防御,因为它不违反任何输入约束。你不能过滤"危险词"——因为每个词都是正常的。

决策模型的"概率即接口"范式需要重新审视

论文最深刻的贡献不是具体的攻击方法,而是对一个范式的质疑:

把语言直接映射到概率分布,再让概率分布直接驱动下游动作——这个设计是否安全?

决策模型的设计初衷是"更可控":不生成自由文本,只输出有限选择上的概率分布。看起来比让大模型自由生成文本安全得多。

但 JevOut 证明:概率输出本身就是攻击面。攻击者不需要让模型生成恶意文本,只需要让概率分布偏移一点。而概率分布对自然上下文的敏感程度远超预期——几句普通的话就能让 70% 概率从正确选项转移到错误选项。

这就像一个恒温器:你设定 22 度,它控制空调。但如果有人能在恒温器旁边放一杯热水,温度传感器就会误判——恒温器本身没有 bug,传感器也没有被黑,但系统行为被改变了。问题在于"传感器读数直接驱动动作"这个设计。

防御思路

论文没有给出完整防御方案,但暗示了几个方向:

  1. 不暴露概率,只暴露 argmax。 这会大幅提高攻击成本,但不会消除攻击(可以用多次查询估计概率)。
  2. 上下文长度限制。 限制上下文添加的长度和复杂度,但这也限制了模型的实用性。
  3. 决策校准。 在最终决策前加一个校准层,检查概率分布是否被上下文异常偏移。但这需要定义"异常偏移"——这本身就是难题。
  4. 多模型投票。 用多个独立训练的决策模型投票,降低单一模型被翻转的概率。但论文显示四个系统的翻转率都在 60%+,说明脆弱性是系统性的。

对 AI 工程师的实践建议

如果你在设计一个使用决策模型(或任何 LLM-as-router)的系统:

  1. 不要把决策模型的概率输出直接当作可靠的决策接口。 概率分布对上下文的敏感度远超你的预期。
  2. 如果必须用概率接口,至少不要暴露原始概率给外部。 只暴露最终选择,增加攻击者的信息成本。
  3. 在高风险场景(金融路由、医疗分诊、安全决策)中,加入人工审核或独立校验层。 不要让决策模型独断。
  4. 监控决策分布的漂移。 如果某个用户的请求突然被路由到异常选项,且伴随上下文变化,应该触发告警。

结语:脆弱性是结构性的,不是偶然的

JevOut 的核心发现不是"Jev 模型有 bug",而是"决策模型这个范式有结构性脆弱"。四个不同的系统,翻转率全部在 60%–73%——这不是巧合,是范式缺陷。

当我们将语言映射到概率,再将概率映射到动作,我们创造了一条从"自然语言上下文"到"系统行为"的直达通道。这条通道太短了,短到几句普通的话就能改变系统行为。

这不是 prompt injection 能解决的问题。这是"概率即接口"范式本身需要重新审视的信号。


论文:JevOut: Natural Context Can Flip Decision Models

代码:https://github.com/xzx34/JevOut

讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录