AIGC:大语言模型LLM的幻觉问题

news2024/9/30 15:24:16

引言

在使用ChatGPT或者其他大模型时,我们经常会遇到模型答非所问、知识错误、甚至自相矛盾的问题。

虽然大语言模型(LLMs)在各种下游任务中展示出了卓越的能力,在多个领域有广泛应用,但存在着幻觉的问题:即生成与用户输入不符、与先前生成的内容矛盾或与已知世界知识不符的内容。

这种现象对LLMs在现实世界场景中的可靠性构成了重大挑战。在准确率要求非常高的场景下幻觉是不可接受的,比如医疗领域、金融领域等。

目前在LLM幻觉问题上已经有无数的研究,比如关于幻觉的检测、幻觉的评估基准分类、缓解幻觉的方法等。

今天我会结合几篇有关LLM幻觉问题的综述论文,来理解LLM幻觉的分类、检测方法、评估和基准、减轻方法等。

最近的一篇是来自哈尔滨工业大学和华为的研究团队,长达49页,对有关LLM幻觉问题的最新进展来了一个全面而深入的概述。

这篇综述(下文简称:综述1)从LLM幻觉的创新分类方法出发,深入探究了可能导致幻觉的因素,并对检测幻觉的方法和基准进行了概述。

论文链接:https://arxiv.org/abs/2311.05232

另外还有一篇综述(下文简称:综述2),来自腾讯AI实验室和一些国内大学的研究团队,综述提出了LLM幻觉现象的分类法和评估基准,分析旨在减轻LLM幻觉的现有方法,并确定未来研究的潜在方向。

论文链接:https://arxiv.org/pdf/2309.01219.pdf

还有一篇有关幻觉的论文(下文简称:论文1),对各种文本生成任务中的幻觉现象进行了新的分类,从而提供了理论分析、检测方法和改进方法。

论文链接:https://arxiv.org/pdf/2309.06794v1.pdf

1 幻觉的分类

在综述2中,将LLMs幻觉分为三种:输入冲突幻觉上下文冲突幻觉事实冲突幻觉

  • 输入冲突幻觉:是指生成的内容与用户提供的输入不符;

  • 上下文冲突幻觉:是指生成的内容与之前生成的信息相矛盾;

  • 事实冲突幻觉:是指生成的内容与已知的世界知识不符。

图注:3种幻觉的定义

而在最新的综述1中,将LLM幻觉分为两种:事实型幻觉忠实度幻觉

如上图所示,左边是事实型幻觉:当LLM被问到谁是第一个在月球上漫步的人时,LLM编了个人物出来,甚至还说得有模有样。右边是忠实度幻觉:LLM在看到这段新闻后,直接把年份概括错了。

下图是一张更为详细的LLM幻觉种类图,包括更为细致的分类:事实型幻觉包括事实不一致、事实捏造;忠实度幻觉又包括:指令-答案的不一致、文本不一致,以及逻辑不一致。

图注:LLM幻觉种类图

总的来说,结合事实、上下文、输入的不一致,幻觉的定义和分类上是相似的。

结合常见的下游任务,比如机器翻译、问答系统、对话系统、文本摘要、LLM知识图谱和视觉问答系统,论文1总结了典型的幻觉现象,如下表所示:

 2 幻觉的来源

综述2认为产生幻觉的主要原因有预训练数据收集、知识GAP和大模型优化过程三个方面。

最新的综述1也深入探讨LLM产生幻觉的根本原因,主要分为三个关键方面:数据、训练和推理。

结合起来,我们具体来看下幻觉的来源:

2.1 幻觉来自数据

  • 预训练数据:大模型的知识和能力主要来自与预训练数据,如果预训练数据使用了不完整或者过期的数据,那么就很可能导致知识的错误,从而引起幻觉现象。

  • 数据利用:LLMs 往往会捕捉到虚假的相关性,在回忆知识(尤其是长尾信息)和复杂推理场景中表现出困难,从而进一步加剧幻觉。

2.2 幻觉来自训练

  • 预训练阶段:LLMs在这一阶段学习通用表征并捕捉广泛的知识,通常采用基于transformer的架构,在庞大的语料库中进行因果语言建模。但是,固有的架构设计和研究人员所采用的特定训练策略,可能会产生与幻觉相关的问题。

  • 对齐阶段:一般涉及两个主要过程,即监督微调和从人类反馈中强化学习(RLHF)。虽然对齐能显著提高 LLM 响应的质量,但也会带来产生幻觉的风险,主要分为两方面:能力不对齐(Capability Misalignment)和信念不对齐(Belief Misalignment)。

2.3 幻觉来自生成/推理

经过预训练和对齐后,解码在体现 LLM 能力方面发挥着重要作用。然而,解码策略的某些缺陷可能导致 LLM 出现幻觉。综述1深入探讨源于解码过程的潜在原因,并强调两个关键因素:

  • 解码策略固有的随机性(Inherent Sampling Randomness):比如采用采样生成策略(如top-p和top-k)引入的随机性也可能导致幻觉的产生。

  • 不完善的解码表示(Imperfect Decoding Representation):在解码阶段,LLM 使用顶层表示法预测下一个标记。然而,顶层表示法也有其局限性,主要表现在两个方面:上下文关注不足(Insufficient Context Attention)和Softmax瓶颈(Softmax Bottleneck)。

3 幻觉的检测

检测 LLM 中的幻觉对于确保生成内容的可靠性和可信度至关重要。传统的衡量标准主要依赖于词语重叠,无法区分可信内容和幻觉内容之间的细微差别。这样的挑战凸显了为 LLM 幻觉量身定制更复杂的检测方法的必要性。

鉴于这些幻觉的多样性,检测方法也相应地有所不同。

在综述1中,全面介绍了针对事实性幻觉忠实性幻觉的主要幻觉检测策略。

3.1 事实性幻觉的检测

事实性幻觉的检测方法:通常分为 "检索外部事实"(Retrieve External Facts)和 "不确定性估计"(Uncertainty Estimation)。

检索外部事实:为了有效地指出 LLM 输出中的事实不准确之处,一种直观的策略是将模型生成的内容与可靠的知识来源进行比较,如下图 3 所示。

虽然许多幻觉检测方法都依赖外部知识源进行事实检查,但有几种方法可以在零资源环境下解决这一问题,从而无需检索。

这些策略背后的基本前提是,LLM 幻觉的起源本质上与模型的不确定性有关。

因此,通过对模型生成的事实内容的不确定性进行估计,就可以检测出幻觉。

不确定性估计的方法大致可分为两种:基于内部状态和 LLM 行为,如图 4 所示。前者的前提是可以访问模型的内部状态,而后者则适用于更受限制的环境,仅利用模型的可观测行为来推断其潜在的不确定性。

3.2 忠实性幻觉的检测

忠实性幻觉的检测方法:主要侧重于确保生成的内容与给定上下文保持一致,从而避免无关或矛盾输出的潜在隐患。如下图5探讨在 LLM 生成中检测不忠实的方法。

  • 基于事实度量:通过检测生成内容与源内容之间的事实重叠度来评估忠实度。

  • 基于分类器的度量:利用经过训练的分类器来区分生成内容与源内容之间的关联程度。

  • 基于QA的度量方法:利用问题解答系统来验证源内容与生成内容之间的信息一致性。

  • 不确定性估计:通过测量模型对其生成输出的置信度来评估忠实度。

  • 基于prompt的度量方法:让LLM充当评估者,通过特定的prompt策略来评估生成内容的忠实度。

4 幻觉的评估

针对不同类型的幻觉,采用的评估方式不一样。

现有针对幻觉的工作,提出了各种基准来评估LLM中的幻觉,如下表5所示:

现有的基准主要根据LLMs的两种不同能力来评估幻觉:生成事实陈述或判别事实陈述与非事实陈述的能力。下表说明了这两种评估形式的区别。

  • Generation 生成式基准:将幻觉看作一种生成特征,类似于流畅度和连贯性,并对LLM生成的文本进行评估。例如,TruthfulQA用于评估大型模型对问题的回答的真实性,而FactScore则用于评估大型模型生成的个人传记的事实准确性。

  • Discrimination 判别式基准:考察大型模型区分真实陈述和幻觉陈述的能力。具体来说,HaluEval要求模型确定状态信息是否包含幻觉信息,而FACTOR则研究LLM是否更可能生成事实陈述而非非事实陈述。

在这些基准中,TruthfulQA是一种特殊的基准,兼具生成式和判别式两种基准,提供了一个多项选择的替代方案,以测试模型区分真实陈述的能力。

5 幻觉的解决

论文1总结了五种解决幻觉的方法,具体如下图所示:

不同下游任务解决幻觉的方法不同,具体如下图所示:

在哈工大的综述1中,全面回顾了当前减轻幻觉的方法,并根据幻觉成因对这些方法进行了系统分类。

具体来说,综述1将重点放在解决与数据相关的幻觉、与训练相关的幻觉和与推理相关的幻觉的方法上,每种方法都提供了量身定制的解决方案,以应对各自原因所固有的特定挑战。

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

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

相关文章

Unity动画系统学习笔记(二)根运动、动画事件与状态机行为

一、根运动 在学习根运动前需要了解两个名词: 身体变换:身体变换是角色的质心。它用于 Mecanim 的重定向引擎,并提供最稳定的移位模型。身体方向是相对于 Avatar T 形姿势的下身和上身方向的平均值。身体变换和方向存储在动画剪辑中&#x…

使用VisualStutio2022开发第一个C++程序

使用VisualStudio2022创建C项目 第一步:新建C的控制台应用 第二步:填写项目名称和代码存放位置,代码的存放目录不要有中文名 第三步:点击创建,VisualStudio会自动开始帮我们创建项目 第四步:项目创建好以后&…

【PostGIS】PostgreSQL15+对应PostGIS安装教程及空间数据可视化

一、PostgreSQL15与对应PostGIS安装 PostgreSQL15安装:下载地址PostGIS安装:下载地址(选择倒数第二个) 1、PostgreSQL安装 下载安装包;开始安装,这里使用默认安装,一直next直到安装完成&…

接口测试的持续集成的工具(git代码管理工具,jenkins持续集成)

持续集成的概念:大白话就是持续的做一件事情,使其使用起来更加流畅;结合测试来讲就是说用工具管理好代码的同时,使代码运行的更加自动以及智能;提升测试效率。 ⽹址:https://git-scm.com/downloads 长这个…

SpringSecurity6 | 失败后的跳转

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Java从入门到精通 ✨特色专栏: MySQL学习 🥭本文内容: SpringSecurity6 | 失败后的跳转 📚个人知识库: Leo知识库,欢迎大家访问 学习…

【网络安全/CTF】unseping 江苏工匠杯

该题考察序列化反序列化及Linux命令执行相关知识。 题目 <?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function __destruct(){if (in_array($thi…

TypeScript学习笔记归纳(持续更新ing)

文章目录 前言 二、TypeScript的优势体现在哪里&#xff1f; 1、执行时间上的区别 2、基础数据类型区别 3、TS优势 三、TypeScript的关键特性 四、TypeScript的类型系统 1、什么是类型注释&#xff1f; 2、类型系统核心 - 常用类型 1&#xff09; 基本类型&#xff0…

vue 自定义的通用的表格组件(使用div)

vue 自定义的通用的表格组件(使用div) 做项目的时候由于传统的table及elementUI的el-table的tr和td没办法设置间距,满足不了UI提供的设计稿,为了还原,自己封装了该组件 该表格组件的特点 表头排序功能:支持点击表头进行升序、降序排序,并显示相应的排序图标。复选框功能…

【unity】关于unity3D摄像机视角移动的几种方式详解

目录 一、前言 二、Transform基础 1、几种坐标系 2、position和localPosition属性 3、rotation属性 三、摄像机的平移 1、键盘控制平移 2、鼠标控制平移 3、整合 四、摄像机的旋转 1、绕自身旋转 2、绕目标物体旋转 3、整合 五、优化功能 1、调整速率 2、切换…

【数据结构】布隆过滤器原理详解及其代码实现

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐--…

差生文具多之(二): perf

栈回溯和符号解析是使用 perf 的两大阻力&#xff0c;本文以应用程序 fio 的观测为例子&#xff0c;提供一些处理它们的经验法则&#xff0c;希望帮助大家无痛使用 perf。 前言 系统级性能优化通常包括两个阶段&#xff1a;性能剖析和代码优化&#xff1a; 性能剖析的目标是寻…

【期末考试】计算机网络、网络及其计算 考试重点

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 计算机网络及其计算 期末考点 &#x1f680;数…

Netty Review - 深入理解Netty: ChannelHandler的生命周期与事件处理机制

文章目录 概述CodeLifeCycleInBoundHandler 验证 概述 Netty的ChannelHandler是处理网络事件&#xff08;如数据读取、数据写入、连接建立、连接关闭等&#xff09;的核心组件。 在Netty中&#xff0c;ChannelHandler的生命周期与Channel的状态紧密相关&#xff0c;主要涉及到…

从mice到missForest:常用数据插值方法优缺点

一、引言 数据插值方法在数据处理和分析中扮演着至关重要的角色。它们可以帮助我们处理缺失数据&#xff0c;使得数据分析更加准确和可靠。数据插值方法被广泛应用于金融、医疗、社会科学等领域&#xff0c;以及工程和环境监测等实际应用中。 在本文中&#xff0c;我们将探讨三…

制作小米导航实验

一、实验题目 制作一个小米"手机"的标签&#xff0c;当鼠标移动到"手机"上后&#xff0c;显示右边的白色菜单&#xff0c;当鼠标离开"手机"时&#xff0c;菜单消失。 二、实验代码 <!DOCTYPE html> <html lang"en"> <…

高级人工智能之群体智能:蚁群算法

群体智能 鸟群&#xff1a; 鱼群&#xff1a; 1.基本介绍 蚁群算法&#xff08;Ant Colony Optimization, ACO&#xff09;是一种模拟自然界蚂蚁觅食行为的优化算法。它通常用于解决路径优化问题&#xff0c;如旅行商问题&#xff08;TSP&#xff09;。 蚁群算法的基本步骤…

python分割字符串 split函数

split函数用于字符串的分割&#xff0c;可以完成基于特定字符将字符串分割成若干部分并存于列表中 url "http://localhost:5000/static/images/DICOMDIR 5.26-6.1/10283674_GOUT_5_0_2.png" # 获取最后一个_的前一个数字 parts url.split(/) print(parts)在这里讲…

Kali Linux—借助 SET+MSF 进行网络钓鱼、生成木马、获主机shell、权限提升、远程监控、钓鱼邮件等完整渗透测试(二)

远控木马 SET 同时集成了木马生成工具&#xff0c;可以生成木马并调用MSF框架对远程主机进行控制。直接使用MSF生成木马并控制主机的可参考之前另一篇博文&#xff1a;渗透测试-Kali入侵Win7主机。 控制主机 1、运行 SET&#xff0c;选择创建攻击载荷和监听器&#xff1a; 2…

Tomcat日志乱码了怎么处理?

【前言】 tomacat日志有三个地方&#xff0c;分别是Output(控制台)、Tomcat Localhost Log(tomcat本地日志)、Tomcat Catalina Log。 启动日志和大部分报错日志、普通日志都在output打印;有些错误日志&#xff0c;在Tomcat Localhost Log。 三个日志显示区&#xff0c;都可能…

ETN21与CJ2M-CPU33通讯

实验设备:CJ2M-CPU33,CJ1W-EIP21,交叉网线 实验目的:手动建立数据链接表,建立TAG通讯。 实验步骤: IP地址设置:①usb线连上电脑,打开I/O表,将ETN21模块的ip地址与CJ2M-CPU33设置为同一个网段不同节点,节点号跟硬件上的node number一样,下载重启模块,如下: 配置n…