AI 硬伤
Posted | stdout
回顾一下我发现的AI弱点,说不定将来对抗 skynet 有用
2023年 我当时觉得:
- 不太会算术。没想到刚看到个更搞笑的人工加法智能。大概意思是,如果pretrain一个加法表,AI会「懂」任意整数的加法么?
- gpt4 不懂中文和字符形状——已经被多模态模型解决
- 对人类真正发音器官无感知——我感觉大模型是有感知的。至少它知道IPA里哪些音很接近和为什么。但是比如 弹舌、beatbox之类考验细节的就无能为力
2026年 我感觉:
- AI不能很好的讲笑话——真的
- 多个答案多种输出——这个受到top-k,max_tokens,think_budget等参数限制,即便你放开,可能就开始一直循环重复
- 搞不懂人称代词 这一点我相信frontier模型不是真会了,而是见得多,把问题掩盖了。
然后是最大的问题:
- 无法给发现的规律起名字。比如你让AI去改一坨代码,AI发现一个规律,它即便内心想到一个好名字,也不会在输出的时候跟你倾诉,也没法写博客写书,上下文一重置就没了
- 人在写代码时,可以边写边发现缺陷,虽然有时不会马上改,但是可能接下来遇到了就会结合之前的问题一起改了;或者好几个单独的bug串起来就是个大漏洞。AI目的驱动很强,缺乏 incidental learning(附带学习)
今天在马桶上拉屎,就又回想起一个经常琢磨的问题框架。比如人们写日记。可能有个习惯会把当地当天天气记录下来。
设想有两个挑战:
A: 假如全世界有足够的人去写城市+日期+天气的日记,并且汇总交给LLM去学习(pretrain),形成一个全球的天气记录。然后你问LLM某地某天的天气怎么变化的,AI应该猜个八九不离十。
B: 但反过来,全球的气象记录是已知的,你让AI去全文背诵一段时间经纬度+降雨图。然后去考验,如果有个人连续写了很多天日记,记录当地天气,能反推这个人在哪里吗?
这可能是关于「知识」和「表征」 的一个极好的例子
对于B,人也做不好。但是人的大脑有个习惯,遇到有趣的,好玩的,但是没卵用的,也会先留个深刻印象,先记着。说不定将来某个机缘之下就是事情的突破口。如果刚好看到日记里有一天记录“台风”,那么全球气象数据的再大,在你面前瞬间坍塌缩小成沿海和热带。
这几天在HN上 看到古希腊掌管起名字的神Martin Fowler 最新发现:AI完全不懂安全攻防。
Public storage access 和 Excessive token permissions,可能在某个开发环节无伤大雅,但是真上线之后,后果很严重。
更加严重的是,这玩意不是写一两个 rules/skills 就能解决的。
要我说最严重的——瑞士奶酪模型被击穿。每一个环节都是小问题,但是合在一起刚好形成致命隐患
要我说这是因为「安全」本质上不是「做事」。它是降低「负事」。
世界上归根结底有两种价值。一种是靠辛勤劳动的创造;一种是破坏

对于潜在风险的防御,思考难度和上面那个根据天气猜地点差不多。
对于创造,你只要打通所有环节,就全部通了;
对于破坏,你只要一个薄弱点被突破,就全盘皆输。
LLM适合干创造的事,因为它只需要根据经验选一个最佳输出。但是要做好安全,你得写每一行代码时,都要遍历其所有的风险。
那么结合之前的 Instruct 模型去思考
- 大模型 pretrain 是学习语料库的概率分布,可以理解为形形色色的人说过的话
- posttrain 我觉得最重要的意义是按照一定“偏好”在 chat范式下,更良好的一问一答(pretrain里的语料一问一答很少)
那么问题来了。一问一答的排查问题这种模式,在 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能力边界是这样思考的:
对于某个任务或者话题,
- pretrain 的 wikipedia/reddit/arxiv 一般会怎么叙述?
- 对于该任务或者话题,AI Lab 里后训练会设置什么样的eval?
然后就能估摸出个能力大概。
Gemini一看,补充了一点:
- reasoning 会如何改善并影响最终输出?
Comments