阅读,与值得关注的内容Readance

Jev 的一个危险误读:每条判断都合理,最后的结论却很愚蠢

摄影:产品经理

油炸臭豆腐

如果一个 AI 能把每个小问题都答对,它能不能把大问题做对?

直觉上似乎可以。

把复杂任务拆成几个简单判断,让模型分别给出概率,再用代码聚合:

signal 1 → 0.91
signal 2 → 0.13
signal 3 → 0.77
signal 4 → 0.24
signal 5 → 0.96
        ↓
     代码聚合
        ↓
      最终答案

这种架构很漂亮,也很符合最近火起来的 Jev。

Jev 的核心能力,就是把自然语言状态转换成结构化概率判断。相比让大模型生成一大段文字,再从中提取 "continue"、"stop" 或 "risk=high",这种方式更适合作为程序里的决策组件。

问题在于:

复杂问题一旦被拆开,某些决定最终结果的关系可能同时被拆没了。

最后就会出现一种很危险的系统:

每一条判断都合理,每一个数字都说得过去,最终结论却非常愚蠢。

一、那个让 Jev 从 62.6% 涨到 95% 的 benchmark

最近有一组很有意思的第三方测试。

研究者使用 2000 封邮件测试 Jev 和 Claude Haiku 4.5 的 phishing 识别能力,其中钓鱼邮件和正常邮件各 1000 封。

直接问模型:

这是不是一封钓鱼邮件?

结果:

  • Jev:62.6%
  • Claude Haiku 4.5:81.3%

Jev 输得相当明显。

随后测试者换了一种方法。

他们不再让模型直接给最终答案,而是让它判断几个更简单的信号,例如:

  • 发件域名和链接域名是否异常
  • 是否使用可疑托管服务
  • 是否要求登录或验证账号
  • 是否制造紧迫感
  • 是否存在身份冒充特征

于是 Jev 输出类似:

域名异常概率           0.91
可疑托管概率           0.74
要求登录概率           0.88
制造紧迫感概率         0.63
身份冒充概率           0.81

随后再把这些结果交给一个经过训练的 logistic regression 分类器。

最终准确率:

95.0%。

这个结果非常亮眼,也非常容易产生一个诱人的推论:

Jev 不擅长直接处理复杂问题,所以把复杂问题拆成很多简单判断,再用代码组合,就可以获得更好的结果。

这个推论需要非常谨慎。

因为 95% 的成绩属于整个系统:

人工设计 decomposition
        +
Jev 提取局部信号
        +
有监督训练的聚合器
        +
最终分类

这里面真正聪明的地方,并不全部来自 Jev。

测试者已经提前决定,哪些因素值得观察。

随后又通过有标签的数据,学习这些因素应该如何组合。

换句话说,复杂问题中很重要的一部分结构,已经由设计者和下游分类器提前编码进系统。

而 phishing 恰好又是一类非常适合这种玩法的问题。

二、为什么 phishing 特别容易拆?

假设要判断一封邮件是不是 phishing。

它可能存在一些相对稳定的特征:

发件人异常
链接域名异常
短网址
要求输入密码
制造紧迫感
冒充银行

这些信号有一个共同特点:

它们多数属于静态、可观察的特征。

邮件不会发现自己正在被检测,然后突然改变策略。

一个链接域名被检测出异常之后,也不会因为模型得出了这个结论,就改变下一步行为。

所以这个任务很接近:

只要找到合适的特征,再训练一个好的组合函数,确实可能取得很高的准确率。

很多真实决策并没有这么友好。

尤其当:

  • 不同因素之间存在强交互
  • 当前选择会改变后续环境
  • 每一步行动都会影响下一步可选空间
  • 对方会观察你的行为并作出反应

简单拆成几个概率,很容易丢掉最重要的信息。

三、一个很生活化的例子:买衣服

假设你正在商场买一件外套。

你让一个 Jev 风格的决策系统分别判断:

这件衣服好看吗?             0.92
价格便宜吗?                 0.88
质量好吗?                   0.81
穿着舒服吗?                 0.90
适合我的身材吗?             0.86

五项全部很高。

于是代码计算:

综合评分 = 0.874

结论:买。

单看这些判断,完全合理。

现在增加一个信息:

你的衣柜里已经有六件几乎同样款式、同样颜色、同样用途的外套。

这时,“这件衣服本身好不好”依然没有发生变化。

它仍然:

  • 好看
  • 便宜
  • 舒服
  • 质量不错
  • 适合你

前面五个判断依然全部正确。

可“应该买吗?”的答案已经可能发生变化。

因为最终决策取决于另一个变量:

这件衣服给你的衣柜增加了多少边际价值。

现在再往前一步。

假设商场有一个活动:【买满三件打五折】。

于是系统开始逐件判断:

第一件:

好看:0.91
实用:0.88
价格:0.86
→ 买

第二件:

好看:0.89
实用:0.84
价格:0.90
→ 买

第三件:

好看:0.87
实用:0.81
价格:0.96
→ 买

每一次局部判断都能解释。

最后你拎着三件衣服回家,其中两件一年都没穿过。

问题出在哪里?

系统一直在判断:

这件衣服值不值得买。

真正需要优化的目标却是:

在有限预算和已有衣柜的条件下,怎样配置整个购买组合,长期效用最高。

这两个问题差别很大。

四、这其实就是一个简单的博弈论问题

“买衣服”看起来不像博弈论。

一旦商家加入策略,它立刻就进入了博弈框架。

例如商家推出:【第二件半价】。

你站在第一件衣服面前。

系统判断:

第一件值 500 元吗?
→ 值

于是买。

然后看到第二件:

原价 500
现在只要 250
性价比极高
→ 买

每一步都合理。

最终花了 750 元。

如果你一开始只需要一件衣服,真实备选方案其实是:

方案 A:
买一件
支出 500

方案 B:
买两件
支出 750

方案 C:
今天都不买
等下个月真正需要时再买

商家的促销策略,会改变你每一步看到的“局部价格”。

第二件 250 元确实很便宜。

可这并不能推出:多花 250 元一定增加了 250 元以上的效用。

这就是商家和消费者之间一个非常简单的策略互动:

商家:
通过改变局部激励
提高客单价

消费者:
通过局部性价比判断
连续做出看似合理的购买决策

最终结果可能恰好符合商家的最优策略,却偏离消费者自己的全局目标。

所以一个决策系统如果每一步只问:

“当前这个选择划算吗?”

即使全部回答正确,也可能被对方通过机制设计牵着走。

这就是局部最优在策略环境中的危险之处。

五、每个 signal 都对,也可能缺少最关键的信息

假设一个 AI 判断公司是否值得投资。

它拆出五个问题:

行业增长快吗?          0.89
产品好吗?              0.91
管理层优秀吗?          0.82
估值便宜吗?            0.78
客户满意吗?            0.86

结果看起来非常好。

但真实风险可能来自这样一条关系:

公司最大的两个客户
        ↓
贡献 70% 收入
        ↓
其中一家正在自研替代产品
        ↓
另一家与潜在收购方存在竞争关系

这里真正重要的内容不是某一个独立 signal。

核心在于几个事实之间形成了一条因果链。

一旦把原始问题压缩成:

0.89
0.91
0.82
0.78
0.86

那条关系可能已经永久消失。

聚合器再聪明,也只能处理自己收到的信息。

输入里没有的关系,后面的代码无法凭空恢复。

六、Agent 场景里这个问题会更加严重

Jev 很容易让 Agent 开发者产生一个想法:

以后大量 control flow 都可以交给概率判断。

例如一个 research agent 每执行一步,都问:

还要继续搜索吗?

Jev 返回:

0.81

继续。

下一轮:

0.76

继续。

下一轮:

0.73

继续。

每一次继续搜索都可能有充分理由。

因为新的搜索确实还存在一定概率带来新信息。

可最终 Agent 可能出现:

搜索 30 次
获取大量重复信息
context 越来越长
冲突越来越多
真正关键证据反而被淹没

每一步都问:再搜索一次有没有价值?

而系统真正应该优化的是:

“下一步有没有收益”和“整条轨迹是否最优”属于两个层级的问题。

这也是 Jev 在 Agent 架构里最容易被滥用的地方。

七、Jev 很适合判断,规划则需要更完整的状态

Jev 这类模型非常适合处理一些边界清晰的问题:

这个网页相关吗?

这个来源是否重复?

这条证据是否支持某个 proposition?

这个请求应该路由到哪个 Skill?

当前结果是否满足某个明确标准?

这些任务通常具有明确的局部语义。

可一旦问题变成:

整个任务下一步应该怎么办?

现在是否应该停止?

应该为了短期收益牺牲未来选项吗?

对手看到我的行为以后会怎么调整?

这个行动会怎样改变十步之后的状态?

系统就需要维护更多东西:

长期目标
历史状态
资源约束
动作之间的依赖
未来状态转移
对手策略
机会成本

一个局部 probability 无法完整承载这些信息。

八、所以 phishing benchmark 应该怎样理解?

那组 benchmark 很有价值。

它说明:

在某些可以良好分解的任务中,把复杂判断拆成多个稳定特征,再通过专门的聚合器处理,可能显著提升效果。

这个结论已经足够重要。

没有必要再把它扩大成:

所有复杂推理都可以拆成简单概率判断。

phishing 的结构天然适合 feature engineering。

投资决策、Agent planning、谈判、资源分配、商业竞争和长期策略,则经常存在大量交互项、反馈循环和状态转移。

这些问题里,拆解方式本身就是推理的一部分。

如果 decomposition 错了,后面每一个模型都可以回答得非常准确,整个系统依然会失败。

九、真正需要 benchmark 的,是最终轨迹

如果要判断 Jev 能否承担 Agent 的决策层,仅测试:

这个分类对不对?
这个概率准不准?
这个 routing 准确率是多少?

还不够。

更关键的测试应该是:

最终任务完成率是多少?

整个 Agent 走出的轨迹质量如何?

是否会陷入局部最优?

是否会因为连续正确的小决定积累成大错误?

对手改变策略以后还能工作吗?

长期目标和短期 signal 冲突时会怎样处理?

这才真正对应 Agent 的能力。

Jev 很有意思。

它证明了一件事:

大量原本由 LLM 通过生成文本完成的判断,可以被压缩成非常廉价、快速的概率决策。

可当我们把复杂任务拆成几十个漂亮的 probability 时,还要问最后一个问题:

这些概率保留了做出最终决策所需要的信息吗?

如果答案是否定的,那么整个系统可能呈现一种非常诡异的失败方式:

所有局部判断都经得起检查,所有数字都看起来合理,所有代码都严格执行了规则。

最后得到的,却是一个很愚蠢的结论。

END

未闻 Code·知识星球开放啦!

一对一答疑爬虫相关问题

职业生涯咨询

面试经验分享

每周直播分享

......

未闻 Code·知识星球期待与你相见~

前往微信阅读全文

内容来自公众号,可前往微信查看原文。

查看作者的更多文章 →