架构师之路公众号文章

你猜,大模型为什么会「幻觉」?这其实就是它的机制!(2/12)

《Agent原理,架构与实践》

架构师之路

公众号 · 2 篇文章

《Agent原理,架构与实践》

第2讲:大模型的幻觉

准备起一个新的系列《Agent原理,架构与实践》。目标不贪心:

1. 希望每篇文章有1-2个点能让大家有收获;

2. 希望不被骂;

本期第二讲,咱们开始。


上一篇,我们聊了三个机制:模型没有记忆,token就是钱,上下文窗口就是天花板。这一篇,聊一个更要命的问题:大模型幻觉。


我问AI,帮我详细介绍[架构师之路沈剑]从出生到失业的履历,一定要详细,6000字!太有意思了,说的有理有据,这个老六,要不是我自己,差点都信了。


大模型为什么要编?它知道自己在编吗?

先说结论:幻觉,并不是某个模型的缺陷,而是所有大模型的共性。它不是bug,是机制的必然产物。


【1】为什么大模型非得编,而不能说"不知道"?


核心原因一,训练决定的:模型分不清"知道"和"编得像"。


模型从海量文本里学到的是统计规律。有些事实,训练数据里只出现过一次,比如某个人的生日。有些编造的内容,出现的次数多,统计权重就高了。

画外音:谎言重复千遍,就成了真相。在大模型的世界里,确实是这样。


那些"一次性信息"的真相,大模型靠统计是学不会的。但训练目标不管这些,它要求模型"问什么都能答,而且要答得像回事"。


所以模型学到的不是事实,而是"事实长什么样"——论文标题的格式、日期的格式、API的命名风格。模型不是在"说谎",它根本不知道自己在编——它没有"我知道的"和"我编的"这个概念区分,只有训练过程中学到的统计概率。


核心原因二,评估决定的:瞎猜被奖励,诚实被惩罚。


大模型的主流评测几乎全是"考试思维":看准确率,而不是错误率。


一说你就懂了,问大模型一个问题:沈剑的生日是哪个月?

我去,这大模型怎么会知道,此时它有两个选择:

1. 瞎猜一个答案:1/12的概率能对;

2.  说"我不知道":必然得零分。


几千几万道题测试下来,爱猜的模型在排行榜上碾压诚实的模型。

画外音:不要说大模型了,考试的时候,老师是不是教我们,不要空着,随便选一个也有25%的概率答对。


所以,大模型会瞎编,是机制而不是bug,能够理解了吧?模型编答案,是因为训练和评估的整个体系,都在教它"宁可编,也不要说不知道"。指望它在生产环境里突然变得诚实,不现实。


【2】大模型“幻觉”无法避免,那我们要怎么办呢?


很多人的第一反应是,提示词里加一句提醒:"请诚实回答,不知道就说不知道。"

画外音:你在提示词里用过这个技巧吗?


其实吧,这句话作用很有限,大模型的"应试模式",一句提醒改变不了训练出来的行为倾向。


真正有效的方法,是把验证做到Agent流程里。

画外音:这是今天全文最重要的一句话。


更具体的,我们在设计Agent的时候:

1. 要有验证环节:生成的代码必须跑起来才算数,生成的事实必须给来源链接才算数;

2. 要求引用来源:让模型标注每个关键事实的出处,没出处的默认存疑;

3. 把"不确定"设计成合法输出:输出格式里明确留一个"无法确认"的选项,而不是逼它必须给答案;

4. 关键事实要求人工核验:关键决策点,Agent对话中断,返回人工决策。

画外音:AI时代,审美,决策,兜底(我不愿说“背锅”)是人无可替代的能力。


以上四条,本质上是同一件事:不完全相信模型的单次输出,只相信经过验证流程的输出。

画外音:Hermes agent号称可以自进化,她只会将跑通过的流程,做成skill。


【3】如何判断一个任务,适不适合交给大模型?


判断标准就一句话:答案能否被极低的成本验证?


更具体的说,这些场景就非常适合:

1. 生成类:写代码啊、写文案啊... 代码跑一遍,文章看一眼,就能验证;

2. 转换类:翻译、格式化、改写... 原文就在手里,对照即可;

3. 有验证器的:单元测试校验、schema校验、人工抽检校验...


有些场景就很不适合:

1. 精确事实:某人的生日、某篇论文的标题... 

2. 实时数据:今天的股价、最新的版本号... 

3. 高风险无校验的:医疗建议、法律意见... 错了也没人兜底。


特别提醒一个和程序员关系最大的:代码幻觉。模型会编造不存在的npm包、不存在的API方法、看起来合理但签名错误的函数...

画外音:像不像面试时不懂装懂的候选人?说得越细,越像真的。


所以,AI写代码,一定要验证:SDD就很好,有spec验证;TDD也很好,有用例验证。


【4】简单总结一下

1. 幻觉是大模型的机制,不是bug;

2. 降低幻觉的核心是验证;

3. 任务是否适合交给大模型,判断它是否能够低成本验证。


具体到第9讲,会详细介绍Agent的验证,评估与迭代体系。欢迎持续关注,让我们一起,一步一步,实现自己业务专属的mini-agent。


补充阅读:《大模型为何会产生幻觉?》

图片

https://openai.com/zh-Hans-CN/index/why-language-models-hallucinate/


下一讲,我们聊聊:Agent架构里,关于上下文的设计。


知其然,知其所以然。

思路比结论更重要。


===全文完==


PS:公众号只能贴静态图文,无法用js实时互动,在线版设计了课后习题与实操演练,欢迎阅读原文体验。

前往微信阅读全文

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

查看作者的更多文章 →订阅更新、RSS 与阅读指南 →