AI 硬伤

回顾一下我发现的AI弱点,说不定将来对抗 skynet 有用

2023年 我当时觉得:

2026年 我感觉:

然后是最大的问题


今天在马桶上拉屎,就又回想起一个经常琢磨的问题框架。比如人们写日记。可能有个习惯会把当地当天天气记录下来。

设想有两个挑战:

A: 假如全世界有足够的人去写城市+日期+天气的日记,并且汇总交给LLM去学习(pretrain),形成一个全球的天气记录。然后你问LLM某地某天的天气怎么变化的,AI应该猜个八九不离十。

B: 但反过来,全球的气象记录是已知的,你让AI去全文背诵一段时间经纬度+降雨图。然后去考验,如果有个人连续写了很多天日记,记录当地天气,能反推这个人在哪里吗?

这可能是关于「知识」和「表征」 的一个极好的例子

对于B,人也做不好。但是人的大脑有个习惯,遇到有趣的,好玩的,但是没卵用的,也会先留个深刻印象,先记着。说不定将来某个机缘之下就是事情的突破口。如果刚好看到日记里有一天记录“台风”,那么全球气象数据的再大,在你面前瞬间坍塌缩小成沿海和热带。


这几天在HN上 看到古希腊掌管起名字的神Martin Fowler 最新发现:AI完全不懂安全攻防。

Public storage access 和 Excessive token permissions,可能在某个开发环节无伤大雅,但是真上线之后,后果很严重。

更加严重的是,这玩意不是写一两个 rules/skills 就能解决的。

要我说最严重的——瑞士奶酪模型被击穿。每一个环节都是小问题,但是合在一起刚好形成致命隐患

要我说这是因为「安全」本质上不是「做事」。它是降低「负事」。

世界上归根结底有两种价值。一种是靠辛勤劳动的创造;一种是破坏

对于潜在风险的防御,思考难度和上面那个根据天气猜地点差不多。

对于创造,你只要打通所有环节,就全部通了;

对于破坏,你只要一个薄弱点被突破,就全盘皆输。

LLM适合干创造的事,因为它只需要根据经验选一个最佳输出。但是要做好安全,你得写每一行代码时,都要遍历其所有的风险。

那么结合之前的 Instruct 模型去思考

那么问题来了。一问一答的排查问题这种模式,在 pretrain 里的分布是不是偏少。每件具体的事出现的问题可以说是千奇百怪。

比如上一行你在处理登录,下一行你就开始查SQL,接着你又开始拼template字符

对于安全而言,每一行都在切换 domain。LLM在这里会有能力和精度的损失,导致注意力不集中。

更好的方式是,先看几行,找出最关键的问题,然后reset上下文,从问题部分继续往后看几行,再找出最关键的问题,这样迭代进行。这样每次都更符合 pretrain 分布。

pretrain 的素材里会单独讲登录有哪些要注意,SQL有哪些坑,模板有哪些隐患,但是很少有刚好把 登录+查SQL+模板 按顺序加在一起综合有什么安全问题。

你可以把登录、查SQL、模板分别一问一答,在 pretrain 里的分布就更丰富。如果混一起问,具体的事项+组合爆炸,出现的问题可以说是千变万化

如果你直接问:这段代码有什么安全问题?AI只能挑选几个它觉得最有代表性的,突出的,给你讲一讲。

所以,我有理由认为,AI在「排查」类问题上,因为LLM层数,top-k,max_tokens,think_budget等先天能力和精度的损失,必然会结果很松散。


再说另外个感受,最近 vibe 的东西比较多,我感觉AI在设计的时候,对于“状态机” 极容易翻车。就是SPA界面上各个控件触发顺序、互斥等逻辑。

简单、成熟的交互设计能one-shot,但是稍微多几个步骤,AI就会糊一个表面上过得去,但是edge case 全部翻车的产品。

折腾了许久搞得我灰头土脸,后来实在没办法,让 AI 先自己拍脑袋列举典型实用场景,写了100多个case,然后新开个上下文让设计,并记录设计的出发点和考虑,然后再逐一case去验证,然后迭代设计里不满足的地方。几轮下来,最终AI给出了一个比较像样,至少100多个case不会太大偏离的设计。

这也算一个土办法?

如果你仔细看这个问题,其实跟上一段「安全」本质是一回事。


现在有一个大的体会,AI在 happy path 上越来越稳,刷分越来越高,像一个经验老道的猎手。但是对于先验不足的东西,它缺乏一种 scatter-gather 的耐心和细致。

想起来,人对于「采集」这种事心态是完全不同的。你得处处留心,以一种「万一将来有用」的目标去做事,甚至做没意义的事。

AI亏就亏在,它肯定能在某个局部发现某个问题有“隐患”。但是因为这个属于偏题,可以回答可以不回答。如果手头任务繁重,它即便隐藏层激活了也会最终被吞没。

然后AI上下文不是永久的,它无法在10天后新的context里突然回忆起之前遇到个有关的坑!

这是机制上无法弥补的行动缺陷。

当然不排除有 agent 能朝这个方向努努力,多听听AI发牢骚,记录并形成一笔财富。哈哈哈

我现在预估AI能力边界是这样思考的:

对于某个任务或者话题,

  1. pretrain 的 wikipedia/reddit/arxiv 一般会怎么叙述?
  2. 对于该任务或者话题,AI Lab 里后训练会设置什么样的eval?

然后就能估摸出个能力大概。

Gemini一看,补充了一点:

  1. reasoning 会如何改善并影响最终输出?

Comments