机器学习|大模型为什么会出现"幻觉"?

最近 OpenAI 发表了一篇文章《Why Language Models Hallucinate》,解释为什么会出现 "幻觉",周末我读了一下,总结这篇文章。

什么是"幻觉"?

幻觉是语言模型生成了似是而非的答案,即使很简单的问题,但是模型可能给出一些不符合事实的答案,比如:

css 复制代码
问题:请用一句话回复,其中第三个词是 "dog"
回答:I have a dog. 词列表:I, have, dog, a. 

以上就是一个 "幻觉" 错误,dog 并不是第三个词。

幻觉分类:

  • 内在幻觉(Intrinsic Hallucinations):生成的内容与输入的源信息冲突,类似上面的这个问题。
  • 外在幻觉(Extrinsic Hallucinations):生成了与源信息无关的内容,大部分情况是没有原始事实,会导致大模型开始 "胡说八道"。

为什么会出现 "幻觉"?

错误的奖励机制

"幻觉" 出现的一个原因源于目前的评估方法所设的错误奖励机制。

想像一下我们在做选择题的时候,对于不知道答案的情况下,我们会怎么选择?我们直接回答不知道,还是猜测一个答案?

大家应该更倾向猜测一个答案,毕竟有一定的概率猜中答案,这样就能获得分数,如果留空则没有奖励分数。

同样,如果只以准确度(即完全答对问题的百分比)来为模型评分,那就会鼓励模型猜测,而不是说"我不知道"。

所以根本原因是模型在训练过程中,并没有将弃权作为评估模型的一个指标,而是根据准确度来排列模型的先后次序。

以上是大模型幻觉率的排行榜,可以看到 "幻觉" 并不是模型越大,"幻觉" 就越低,而是和本身的模型评分标准相关。

尽管知道错误的奖励机制会导致 "幻觉" 的出现,但衡量准确度的评分机制仍在排行榜和模型资料卡上占据主导地位,促使开发人员建立倾向猜测而非选择不作答的模型,这样就进一步加剧模型更加自信的提供错误答案。

预训练数据和微调问题

"幻觉" 出现的另一个原因就是预训练本身就是概率预测下一个词,这里必然存在一定概率出现非事实回答,这个时候有人可能会说:为啥拼写和符号等问题不会错?

这个是由于某些事实的数据量小,或者事实没有规律可言的情况下,模型只能按照概率选择下一个词,导致开始 "胡说八道",所以模型的学习目标(最小化交叉熵损失进行概率密度估计)在统计上必然会导致其生成错误。

同时,Gekhman等人在研究中讨论了一个问题:用新知识进行LLM微调是否会促使幻觉现象的发生。

发现 LLM 学习带有新知识的样本,要比学习与模型预先存在的知识样本,学得更慢,一旦学习了这些带有新知识的样本,模型产生幻觉的倾向就会增加。

如何减少 "幻觉"?

基于如上两个出现的原因,其对应方案如下。

完善的评分准则

对于模型训练过程中相对于表示不确定答案,向自信的错误答案施予更严重的惩罚,并对表示不确定的答案给予部分分数。

论文中认为只针对表示不确定的答案增设若干新测试尚不足够,更有必要更新以准确度为基础的热门评估机制,借此令评分标准不再鼓励猜测。

假如主要的评分机制持续奖励侥幸猜测,模型就会持续学习猜想答案,修定评分机制更有助扩大幻觉减少技术的采纳范围。

提升训练数据质量或者引入外部数据

分布偏移:当测试或用户提问的分布与训练数据分布不同时(OOD),模型更易出错。

垃圾进,垃圾出:训练数据本身包含的错误、半真半假的信息和偏见,会被模型学习并复制。

所以高质量的训练数据对于模型是非常重要的,对于模型不了解的知识,应选择类似 RAG 等外部数据源,补充一些事实的缺失问题。

参考

(1)zhuanlan.zhihu.com/p/721611756

(2)openai.com/zh-Hant-HK/...

相关推荐
love530love1 分钟前
ComfyUI-3D-Pack:Windows 下手动编译 mesh_inpaint_processor C++ 加速模块
c++·人工智能·windows·python·3d·hunyuan3d·comfyui-3d-pack
uzong7 分钟前
“腾讯QClaw全面开放”,不花 Token 钱、真正体验一把小龙虾的快乐,最低成本全面了解龙虾
人工智能·后端
剑穗挂着新流苏31212 分钟前
111_神经网络的指路明灯:损失函数与反向传播深度解析
人工智能·深度学习·神经网络
ofoxcoding18 分钟前
怎么用 API 搭一个 AI 客服机器人?从零到上线的完整方案
人工智能·ai·机器人
Jial-(^V^)23 分钟前
使用api-key调用大模型(包括DeepSeek/GLM/OpenAI)
人工智能
格林威23 分钟前
工业相机图像采集:Grab Timeout 设置建议——拒绝“假死”与“丢帧”的黄金法则
开发语言·人工智能·数码相机·计算机视觉·c#·机器视觉·工业相机
忧郁的橙子.25 分钟前
08-QLora微调&GGUF模型转换、Qwen打包部署 ollama 运行
人工智能·深度学习·机器学习·qlora·打包部署 ollama
坚持学习前端日记26 分钟前
从零开始构建小说推荐智能体 - Coze 本地部署完整教程
大数据·人工智能·数据挖掘
码农三叔26 分钟前
自动驾驶技术演进:路径规划与行为决策的突破与落地
人工智能·机器学习·自动驾驶
workflower30 分钟前
影响用例书写格式的因素
人工智能·机器人·集成测试·ai编程·软件需求