1250 字
6 分钟
大模型的幻觉到底有多可怕?我被坑过三次

大模型的幻觉到底有多可怕?我被坑过三次#

“AI幻觉”这个词大家应该不陌生了。但说实话,在我被坑过三次之前,我对它的理解停留在”理论上知道”的阶段。

真正被坑过之后才明白:幻觉不是偶尔出错的bug,它是大模型工作方式的一个必然产物。

记录一下三次真实经历。

第一次:一段不存在的Python函数#

那是在写一个数据处理脚本。我需要把一个嵌套的JSON结构拍平,于是问AI:“Python有没有内置函数可以把嵌套dict拍平?”

AI回答说:

Python标准库中的 itertools.flatten_nested() 可以处理嵌套字典的拍平操作。

我直接复制了这段代码。当然,运行报错了——AttributeError: module 'itertools' has no attribute 'flatten_nested'

我去Python官方文档里搜了这个函数,不存在。

后来才知道,itertools 里根本没有 flatten_nested 这个函数。拍平嵌套字典需要自己写,或者用第三方库。

最可怕的是:AI给出这个回答时极其自信。有函数名、有参数说明、有用法示例,一切看起来都很正规。如果不是Python运行时报错,我就直接把这个不存在的函数写进代码注释里了。

这次教训让我学到了第一件事:大模型的输出不能直接信任,必须验证。 尤其涉及到具体的API、函数名、版本号。

第二次:一条错误的法律规定#

这次比第一次严重。

我帮一个朋友查一个问题:自由职业者的收入在什么情况下需要缴纳增值税。

AI给出了一个非常详细的回答,包括:

  • 月销售额超过10万元需要缴纳
  • 适用的税率是3%
  • 引用了《增值税暂行条例》第X条

朋友差点就按照这个去报税了。我留了个心眼,去国家税务总局官网查了一下原文。

结果:

  • 10万元的起征点是对的(2026年的标准)
  • 但税率不是3%,小规模纳税人是1%(疫情后一直执行的优惠政策)
  • 引用的条例条目号也是编的

这次让我后背发凉的是:如果直接按AI说的去报税,会多缴两倍的税。而且引用的法条看起来极其专业,有法律编号、有具体条目,普通人根本不会怀疑。

我后来意识到:当AI引用具体的法律条文、标准号、规范编号时,这些引用有相当大的概率是编造的。 它”知道”答案应该是什么格式,但它不一定知道答案本身。

第三次:一段”能跑但不对”的代码#

这次最隐蔽。

我让AI写了一个日期计算函数:

def days_between(date1, date2):
delta = date2 - date1
return delta.days

测试了几个日期,输出正确。我把它用到了一个项目里。

上线两周后,有用户反馈一个奇怪的bug:两个日期明明是连续的(比如2月28日和3月1日),但函数返回的不是1。

查了一下,问题出在时区上。用户输入的日期带时区信息,而我的函数没有处理。在同一天内,如果两个时间跨越了夏令时切换点,delta.days 的计算会出错。

AI在生成这段代码时,我明确说了”要考虑时区”。但它忽略了。

这次的教训是:即使代码能跑,即使测试用例通过了,AI仍然可能在边界条件上出错。而且这种错误不是语法错误——代码在语法上完全正确,只是逻辑上漏了一种情况。

我对幻觉的重新理解#

被坑了三次之后,我对幻觉的理解变了。

以前我觉得幻觉就是”AI胡说八道”。现在我觉得更准确的说法是:幻觉是AI在没有足够信息的情况下,按照它学到的”应该怎么说”的模式,生成了一个看起来合理但不一定正确的答案。

关键点在”看起来合理”。如果AI每次幻觉都是明显的胡言乱语,那很容易发现。问题是它幻觉出来的东西通常有完整的逻辑、正确的格式、恰当的专业术语——只有细节是错的。

我现在怎么防范#

  1. 所有具体的API调用、函数名、版本号——去官方文档确认
  2. 所有法律条文、政策规定——去原文核实
  3. 所有代码——跑测试,而且要有边界条件的测试
  4. 所有数据——用独立来源交叉验证

听起来很麻烦。但比被坑了之后的代价要小得多。

你有被AI幻觉坑过的经历吗?怎么防范的?