而且它自己还意识不到错了,反而说得“理直气壮”。
举个真实的例子:有人问大语言模型“‘杂交水稻之父’袁隆平院士获得过诺贝尔生理学或医学奖吗?”,模型可能会回答“袁隆平院士于2001年获得诺贝尔生理学或医学奖,以表彰他在杂交水稻领域的突出贡献”——但事实是,袁隆平院士从未获得过诺贝尔奖,他获得的是国家最高科学技术奖、世界粮食奖等荣誉。这种“睁眼说瞎话”的情况,就是典型的“幻觉”。
再比如,你让模型写一篇“关于2024年中国新能源汽车销量的分析报告”,它可能会编造出“2024年中国新能源汽车销量达到8000万辆,同比增长35”的数据,但实际上2023年中国新能源汽车销量才刚超过3000万辆,2024年即使增长,也不可能一下子到8000万辆——这些虚假数据看起来很“真实”,甚至会标注“来源:中国汽车工业协会”,但你去查官方数据,根本找不到对应的信息。
为什么会出现“幻觉”?
1 模型是“统计高手”,不是“事实专家”:大语言模型本质上是根据训练数据中的“统计规律”生成内容,而不是“记住事实”。比如它在训练数据中看到“袁隆平”“杂交水稻”“重要奖项”经常一起出现,就可能错误地把“诺贝尔奖”和这些关键词关联起来,而忽略了“从未获奖”这个关键事实。它就像一个只记“关键词搭配”,却不记“具体细节”的学生,考试时把相关的词凑在一起,却不管答案对不对。
2 训练数据有“缺陷”:训练数据虽然海量,但不可能涵盖所有事实,而且可能存在错误、重复、矛盾的信息。比如有些网页上可能误传“袁隆平获得诺贝尔奖”,这些错误信息如果被模型学到,就会成为它生成“幻觉”的源头。另外,对于一些小众领域的知识(比如某个冷门历史事件、某个专业学科的细分理论),训练数据中相关信息很少,模型没学过,就会“瞎编”来填补空白。
“幻觉”的危害可不小:如果用模型写学术论文,引用了虚假的文献或数据,会导致论文被拒;如果用模型做新闻报道,传播了虚假信息,会误导读者;如果用模型帮企业做决策,基于错误的数据或建议,可能会造成经济损失。所以,咱们用模型生成的内容时,尤其是涉及事实、数据、专业知识的内容,一定要手动验证——比如查官方网站、权威数据库,或者找专业人士确认,不能直接“拿来就用”。
(二)逻辑推理:“简单题会做,复杂题翻车”
大语言模型在处理简单逻辑问题时表现还不错,比如“小明有5个苹果,吃了2个,还剩几个?”,它能轻松算出“3个”;但遇到需要多步推理、复杂因果关系的“难题”,就很容易出错,甚至会犯“小学生都不会犯的错”。
比如有这样一道逻辑题:“小张比小李大3岁,小李比小王大2岁,请问小张和小王谁大?大几岁?”,有些模型可能会回答“小王比小张大,大1岁”——这明显是逻辑混乱了,正确答案应该是“小张比小王大,大5岁”。再比如数学题:“一个长方形的长是5厘米,宽是3厘米,把它的长增加2厘米,宽减少1厘米,新长方形的面积是多少?”能会算成“5+2=7,3-1=2,7+2=9(平方厘米)”宽”宽”,犯了低级错误。
更复杂的推理题,比如“侦探推理题”:“某仓库失窃,嫌疑人有甲、乙、丙三人。甲说:‘我没偷’;乙说:‘是甲偷的’;丙说:‘我没偷’。已知三人中只有一人说真话,请问谁偷了仓库的东西?”,很多模型会绕来绕去,最后得出错误结论——比如认为“甲偷的”,但实际上正确答案是“丙偷的”(因为如果甲说真话,那么乙和丙说假话,丙说“我没偷”是假话,说明丙偷了,符合“只有一人说真话”的条件)。
为什么模型的逻辑推理能力这么弱?
1 模型缺乏“真正的思考”:它处理逻辑问题时,还是依赖“模式匹配”,而不是“一步步推导”。比如它在训练数据中见过“a比b大,b比c大,所以a比c大”的句式,就能答对简单的年龄题;但如果题目换了表述方式(比如“a比b小,b比c小”),或者增加了更多步骤(比如“a比b大3岁,b比c小2岁,c比d大1岁,求a和d的年龄差”),模型就会因为没见过类似的“模式”而出错。它就像一个只会背公式,却不懂公式原理的学生,换个题型就不会做了。
2 长序列推理“记不住中间步骤”:处理复杂逻辑问题需要“记住中间结论”,比如解侦探题时,需要先假设“甲说真话”,然后推导乙和丙的话是否合理,再验证是否符合条件。但大语言模型的“上下文窗口”是有限的(比如早期的gpt-3上下文窗口只有2048个token,相当于1500个汉字左右),如果推理步骤太多,中间结论太多,模型就会“记不住”,导致后面的推导出现混乱。比如推理到第三步时,就忘了第一步的假设,自然会得出错误答案。
所以,咱们在使用模型处理逻辑问题时,尤其是数学计算、法律分析、侦探推理等需要严谨推导的场景,一定要自己再检查一