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

最近 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/...

相关推荐
艾醒26 分钟前
探索大语言模型(LLM):大模型微调方式全解析
人工智能·算法
IvanCodes31 分钟前
RTX 4090 加速国产 AIGC 视频生成:腾讯混元与阿里千问开源模型
人工智能·开源·aigc·音视频
说私域38 分钟前
定制开发开源AI智能名片S2B2C商城小程序的会员制运营研究——以“老铁用户”培养为核心目标
人工智能·小程序·开源
格林威42 分钟前
常规可见光相机在工业视觉检测中的应用
图像处理·人工智能·数码相机·计算机视觉·视觉检测
循环渐进Forward44 分钟前
Go语言:给AI开发装上高性能引擎
开发语言·人工智能·golang
skywalk81631 小时前
调试parlant的大模型配置,最终自己动手写了g4f的模块挂载
网络·人工智能·语言模型·tiktoken
MUTA️1 小时前
论文速览:从ConvNeXt 到 ConvNeXt V2
人工智能·深度学习
九天轩辕1 小时前
用一个 Bash CLI 管理多款 AI 开发工具:jt-code-cli 实战与原理解析
开发语言·人工智能·bash
张较瘦_2 小时前
[论文阅读] AI+软件工程 | 开发者 AI 需求新指南:任务感知视角下的负责任 AI 实证研究
论文阅读·人工智能·软件工程
blues_C2 小时前
Playwright MCP vs Chrome DevTools MCP vs Chrome MCP 深度对比
前端·人工智能·chrome·ai·chrome devtools·mcp·ai web自动化测试