大模型还能产生幻觉?一文讲清楚原理和解决方法

news2024/12/24 21:34:11

“像我们这样相信物理学的人都知道,过去、现在和未来之间的区别只是一种顽固执着的幻觉。换句话说,时间是一种幻觉。”

——波尔

幻觉,即一种看似真,实为假的感受。最近接触到了一个概念:大模型幻觉。有点好奇,大模型还能产生幻觉?于是查找了一些资料,开始了解。

一、大模型幻觉,像你身边那个爱吹牛的熟人

关于大模型幻觉,官方一点的说法是这样的:

大模型的幻觉问题,即Hallucination,指模型基于有限元素和强大的语言表达能力生成逻辑上似乎合理但实际不符合已知常识的描述。幻觉可能由错误数据、训练过程失误、推理错误等多种原因触发。

直白来说,大模型幻觉就是一本正经地胡说八道。它就好像饭桌上,那个爱吹牛的熟人,推杯换盏间,嘴里几句真话、几句假话,不得而知。

二、幻觉,是大模型的“通病”

2023年,一名联邦法官对纽约市的一家律师事务所处以 5000 美元罚款。原因是该所的一名律师,使用ChatGPT 起草了一起人身伤害案件的摘要,而里面捏造了六个以上的案例。

斯坦福大学和耶鲁大学的研究人员在关于三种流行的大语言模型(LLM)的研究预印本中发现,类似的错误在人工智能生成的法律输出里极为普遍。

无论是哪种大模型,都会出现不同程度的“幻觉”。其症状的轻重,与科技公司的实力相关。

一般来说,大模型幻觉分为两大类:事实性幻觉和忠实性幻觉

事实性幻觉强调生成的内容与可验证的现实世界事实之间的差异。其通常表现为事实不一致或捏造。比如说回答历史事件的具体时间或人物关系时出现错误。

忠实幻觉是指生成内容与用户构思或输入所提供上下文的差异,以及生成内容内部的自我一致性。例如要求总结某一篇文章的主要内容,但模型生成的总结包含了原文中没有提到的观点或信息。

三、大模型幻觉从何而来?

OpenAI华人科学家翁荔,在她最新的Blog中提到:产生幻觉的原因包括预训练数据问题和微调新知识问题

  • 预训练数据问题:使用的这些数据通常是从公共互联网抓取来的,可能存在数据太陈旧、某些关键部分缺失或者本身就是错误的。导致模型在学习这些数据时,记错了信息。
  • 微调:大模型引入新知识时,但模型学习新知识较慢,导致更容易产生幻觉。

LLM-Hallucination-2

四、大模型幻觉会停止吗?

不会。在《 hallucination is inevitable: an innate limitation of large language models》实验论文中,给出了一个基本结果:即无论模型架构、学习算法、提示技术或训练数据如何改变,对于任何可计算的LLM来说,幻觉是不可避免的

亚利桑那州立大学研究人工智能的教授 Subbarao Kambhampati,对此也说道:“所有计算机生成的创造力在某种程度上都是幻觉。”

此外许多机器学习专家也不认为幻觉是可以修复的。比如微软研究院和佐治亚理工学院发表的《 Calibrated Language Models Must Hallucinate》研究表示:经过校准的语言模型必然会出现幻觉。

所以从技术层面来说,由于现实世界问题的多样复杂性,无论如何训练大模型,总会存在超出模型能力的可解决问题。

五、如何应对“幻觉”?

“幻觉”虽不会停止,但我们可以尽可能地减轻幻觉。

对于我们普通使用者来说,减轻幻觉的一个直接方法是:调教你的AI,并对其保持批判的态度

  1. 不依赖单一来源:不要只依赖大模型作为获取信息的唯一来源,尝试结合多个渠道的信息进行综合判断。
  2. 保持批判性思维:对大模型的输出保持警惕,思考其合理性和逻辑性,查验它给的信息。
  3. 选择可靠的平台和工具:比如大厂的模型,通常实力更强,幻觉也会更少。

技术层来说,减少LLM幻觉的技术方法包括:

  1. 高等提示词:通过编写更具体的提示词,如多事例学习,以及使用新的工具来优化提示词,管束LLM的幻觉问题。
  2. Meta AI的Chain - of - Verification(CoVe):将事实核对分解为可管理的步骤,通过生成初始响应、组织验证问题、独立回答这些问题并生成最终经过验证的响应,来减少LLM的幻觉情况,提高响应正确性。
  3. 知识图谱:将知识图谱集成到RAG中,利用其结构化且相互关联的数据,增强当前RAG系统的推理能力。
  4. Raptor:通过建立更高层次的抽象来处理跨多个文档的问题,先从外部知识库中检索相关且经过验证的信息,然后将这些数据与原始查询一同嵌入到模型中,减少幻觉现象。
  5. 共形抽离:通过应用共形猜想技术来确定模型何时应该停止给出响应,从而增加大型语言模型(LLMs)中的幻觉情况。
  6. RAG削减结构化输入中的幻觉情况:ServiceNow通过RAG在生成文本之前从外部知识库中检索相关的JSON对象,确保生成过程基于正确且相关的数据,减少幻觉情况。

LLM-Hallucination-3

六、大模型幻觉,造梦的工具

读到这里,你会觉得这篇文章的内容都是正确的吗?不是的,有一点我其实在瞎说:开头的那句话并不是物理学家波尔说的,而是爱因斯坦。没有看过原句的朋友,肯定会把它当真的,然后可能用在别处。

大模型会产生幻觉,人也会,人的交流也并不是百分百的准确和真实,所以我们也不用对大模型幻觉太过紧张。不过对于需要运用数据分析等严谨的工作来说,的确不建议依赖大模型,因为这需要自己具有出色的筛选和辨别大模型给出数据真假的能力,这非常考验个人能力素养。

换个角度来看,大模型幻觉也有好处:对于一些需要“造梦”或者说“创造性”的内容来说,创意大于准确性,而幻觉正好可以提供很多灵感

Subbarao Kambhampati 教授也说道:“今天的 LLM 从来都不是为了纯粹准确而设计的。它们被创造出来是为了创造——为了生成。”

如果你觉得文章不错,欢迎关注「敏捷开发」。后续会分享更有有趣的行业知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2170355.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Qt | QList 】QList<T> 容器详细介绍和例子代码

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 ⏰发布时间⏰: 2024-09-26 …

python面向对象三大特性

面向对象 面向对象编程,是许多编程语言都支持的一种编程思想。 基于模板(类)去创建实体(对象),使用对象去完成功能开发 面向对象的三大特性 封装继承多态 封装 封装表示:将现实世界事物的属性和行为,封装到类中,描…

打造高质量软件架构 - 9大质量属性

关注TechLead,复旦博士,分享云服务领域全维度开发技术。拥有10年互联网服务架构、AI产品研发经验、团队管理经验,复旦机器人智能实验室成员,国家级大学生赛事评审专家,发表多篇SCI核心期刊学术论文,阿里云认…

球体RCS计算 - 金属球的单站RCS【CST软件分析】

用金属球算RCS雷达散射截面可谓RCS的入门案例,本期用T和I两个求解器算单站RCS进行比较。 Step 1. RCS模板,T-solver, 频率0-5GHz,然后建模,半径10.16cm,可以算出来电尺寸在5GHz大概为三个波长,…

ROS理论与实践学习笔记——2 ROS通信机制之常用的命令

4.1 rosnode操作节点 rosnode:是用于获取节点信息的命令。 rosnode ping 测试到节点的连接状态 rosnode list 列出活动节点 rosnode info 打印节点信息 rosnode machine 列出指定设备上节点 rosnode kill 杀死某个节点 rosnode cleanup 清除不…

Python中的数据处理与分析:从基础到高级

在数据科学和数据分析领域,Python凭借其丰富的库和强大的生态系统,成为了最受欢迎的语言之一。本文将从基础到高级,详细介绍如何使用Python进行数据处理和分析,涵盖数据清洗、数据转换、数据可视化等多个方面。 1. 数据导入与导出…

华为 HCIP-Datacom H12-821 题库 (27)

🐣博客最下方微信公众号回复题库,领取题库和教学资源 🐤诚挚欢迎IT交流有兴趣的公众号回复交流群 🦘公众号会持续更新网络小知识😼 1. 如图,BGP 下有如下配置,下面哪些描述是错误的? A、Time…

Minderbinder:一款基于eBPF的进程安全测试工具

关于Minderbinder Minderbinder是一款基于eBPF的进程安全测试工具,在该工具的帮助下,广大研究人员可以通过注入噪声来测试目标进程的安全性。 Minderbinder 是一款使用 eBPF 将故障注入正在运行的进程的工具。当前版本的Minderbinder 可以通过将 kprobe…

动手学LLM(ch2)

2.1 理解词嵌入 深度神经网络模型,包括大型语言模型(LLMs),无法直接处理原始文本,因为文本是分类数据,与神经网络的数学运算不兼容。为了达到这个目的,需要将单词转换为连续值向量。记住一句话…

“Y模型”—我在3年实操后的个人总结

一直想写一篇关于【需求分析】及【产品设计】方面个人最常用的一些方式方法,对于一些刚入行以及埋头苦干的同学来说,大多数情况都是粗放式凭感觉的分析产品。 因为自己也有过这样的阶段,深知这种思考方式的弊端。从用户场景/反馈到具象化的产…

Linux标准IO(四)-格式化I/O输入

C 库函数提供了 3 个格式化输入函数&#xff0c;包括&#xff1a;scanf()、fscanf()、sscanf()&#xff0c;其函数定义如下所示&#xff1a; #include <stdio.h> int scanf(const char *format, ...); int fscanf(FILE *stream, const char *format, ...); int sscanf(c…

2023年金融科技建模大赛(初赛)开箱点评,多分类模型实战

原创作者Toby&#xff0c;文章来源公众号&#xff1a;python风控模型&#xff0c;2023年金融科技建模大赛&#xff08;初赛&#xff09;开箱点评 各位同学大家好&#xff0c;我是Toby老师。2023年金融科技建模大赛&#xff08;初赛&#xff09;从今年10月14日开始&#xff0c;…

最强反推更新!Joy Caption Alpha One详细测评、在线免费使用

免费教程网站&#xff1a;AI教程_深度学习入门指南 - 站长素材 (chinaz.com) 原文链接&#xff1a;最强反推更新&#xff01;Joy Caption Alpha One详细测评、在线免费使用 (chinaz.com) JoyCaption在一周前悄悄上线了最新版本Joycaption alpha one Joycaption alpha one免费在…

Python进阶:利用NotImplemented优化你的对象交互逻辑,让Python对象间的操作更加智能与灵活

推荐阅读&#xff1a;从混乱到清晰&#xff1a;用NotImplementedError重构你的Python代码&#xff0c;NotImplementedError如何助你打造更健壮的API NotImplemented 在Python中&#xff0c;NotImplemented并不是一个异常类&#xff0c;而是一个特殊的值&#xff0c;用于在二元…

linux桌面软件(wps)内嵌到其他窗口

程序测试环境是&#xff1a;slackware系统&#xff0c;属于linux系统&#xff0c;有桌面&#xff08;Xface Session&#xff09;。系统镜像是&#xff1a;slackware64-15.0-install-dvd.iso。qt、c代码实现。 程序功能&#xff1a;将已经打开的wps&#xff08;word、pdf等都可…

【优选算法】(第五篇)

目录 ⻓度最⼩的⼦数组&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 ⽆重复字符的最⻓⼦串&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 ⻓度最⼩的⼦数组&#xff08;medium&#xff09; 题目解析 1.题目链接&#xff1a;. - …

分割数组的最大值

题目链接 分割数组的最大值 题目描述 注意点 0 < nums[i] < 10^61 < nums.length < 10001 < k < min(50, nums.length) 解答思路 首先需要理解题意&#xff0c;需要将这个数组分成 k 个非空的连续子数组&#xff0c;找到划分组合中子数组和的最大值最小…

el-table+el-form实现表单校验和解决不垂直居中导致的问题

el-tableel-form实现表单校验 1.实现el-table的表单校验 关键点123 2.解决不垂直居中导致的问题 问题效果图 解决方案 .item-align-center {display: inline-flex; }

OJ在线评测系统 原生Java代码沙箱核心实现流程三 整理封装输出结果 拿到程序执行时间(stopwatch类) 和 运行内存

我们在之前的操作中已经拿到程序进行了编译和运行 接下来我们要将我们的结果输出 整理输出 // 4.收集整理输出结果 ExecuteCodeResponse executeCodeResponse new ExecuteCodeResponse(); ArrayList<String> outputList new ArrayList<>();for (ExecuteMessage…

Library介绍(一)

之前和大家介绍过cell delay是如何计算的。那么&#xff0c;本文将着重和大家介绍一些timing lib中的各个参数定义是什么意思。会分以下几个部分介绍&#xff1a;库属性描述、时序弧介绍、环境描述、单元描述。之前介绍的cell delay template就是单元描述中的一部分。本文主要介…