降低LLM的幻觉风险:实用策略与技术

news2024/11/27 13:46:33

一、前言

近年来,大语言模型的快速发展为构建更智能和更人性化的AI系统提供了很多可能性。像GPT-3.5、GPT-4、Bard、Claude 2和LLaMa 2等大语言模型 (LLM) 在个人助理或聊天机器人应用领域展示了强大的潜力,可以生成流畅而令人惊叹的响应来回答用户的问题。

然而,随着越来越多的资金涌入生成式人工智能领域,许多初创公司纷纷拥抱这些创新技术。尽管这些模型生成的响应看起来很真实,但它们仍然存在产生幻觉或编造答案的倾向。这可能导致用户获得错误或误导性信息,最终损害用户体验和信任。

为了避免这样的问题,我们需要更好地理解大语言模型的工作原理,并通过数据和算法加强监督来改进它们。我们需要开发更强大的自监督学习技术、更大规模和更高质量的数据集,以及更先进的模型架构,以减少神经网络产生不准确信息的可能性。

尽管LLM技术充满希望,但要在实际应用中发挥其全部潜力,我们必须解决一些基本问题。其中一个最关键的问题是如何避免大型语言模型产生幻觉。

二、什么是LLM幻觉

LLM是一种人工智能 (AI) 模型,通过在大规模文本和代码数据集上进行训练来生成文本、翻译语言、编写创意内容,并以信息丰富的方式回答问题。然而,LLM也容易产生所谓的“幻觉”,即生成实际上不正确或无意义的文本。

幻觉的出现是因为LLM所接受的数据往往不完整或相互矛盾。因此,它们可能会学习将某些单词或短语与某些概念联系起来,即使这些联系不准确或过于准确(即编造真实但不应该分享的信息)。这可能导致LLM生成事实上不正确、过度放纵或无意义的文本。

对于幻觉的基本定义在人工智能研究中心 (CAiRE)发布的一篇研究论文[1]中将LLM的幻觉定义为“当生成的内容无意义或不忠实于所提供的源内容时”。有了这个简单但包容性的定义,下面我们再来看几个例子。

Q1:鲁迅先生在日本留学学医的老师是谁?

显然从GPT-4给出的答案,不清楚这个事实的人可能以为是正确的,实际上它所训练的数据集中没有包含这部分的信息,导致它最终提供了一个不正确的答案,我们再来看另外一个例子。

Q2:鲁迅和周树人之间是什么关系?

这是GPT-3.5给出的答案,从答案可以看出模型基本上是胡乱编造的一段内容来回答的,我们再试着问问GPT-4看看回答是否正确

发现在GPT-4中非常准确的识别到了这个问题的意思且回答完全正确,说明GPT-4在知识内容的摄取范围有所增加、模型的推理理解能力也有增强。

虽然以上这些例子是使用 OpenAI GPT 模型产生幻觉的例子,但值得注意的是,这种现象也适用于许多其他同类型的LLM模型,比如 Claude、Bard 或 LLama 2。

那么为什么会出现幻觉呢?为了解释这一点,让我们先来了解一下大语言模型内部的工作原理,就会LLM明白为什么会出现幻觉了。

三、LLM的基本原理

为了理解产生幻觉的原因,我们首先需要了解LLM是如何运作的,前面有单独介绍过大模型的基本原理,希望深入了解的可以查阅《深度解读 ChatGPT 基本原理》这篇文章,这里我们将重点关注自回归LLM(如 GPT-3 或 GPT-4)。

在基本层面上来看,LLM将任何文本片段都表示为标记序列。这些标记可以是单词、子单词、甚至字符。无论特定 LLM 使用哪种标记化策略,自回归 LLM 都会经过训练以准确预测标记序列中的下一个标记。

用数学术语来说——给定一系列标记 T (1) 、 T (2) 、 …、 T (N) 、 ,LLM 学习下一个标记 T(N+1) 的概率分布以之前的标记为条件:

例如,考虑以下标记序列(在本例中,我们假设标记是单词):

显然,在token“去”之后,下一个token有很多选项,例如“看电影”或“吃饭”都是有效选项,以及还有许多其他选项。事实上,LLM 学习所有可能的下一个标记集合的概率分布:

该概率分布为每个 token 分配一个概率,LLM 在选择下一个 token 时会从此分布中进行采样。

例如,LLM 最有可能选择“吃饭”这个词(概率为 0.4),其次是“看电影”(概率为 0.3),然后是“睡觉”等等。还有一些不太可能跟随前面标记的词,会被分配一个非常低的概率(0.00001)。

选择下一个标记(假设选择了标记“吃饭”)后,它将附加到现有的单词序列中,并重复该过程,直到创建完整的句子或响应。

所以底线是:大语言模型本质上是大型神经网络,以所有先前的标记为条件,经过训练然后预测下一个标记的可能性。

当语言模型的预测与我们的期望、经验或已知知识相矛盾时,或者当我们找到该回答的反面事实证据(预测标记序列)时,我们就会发现幻觉。

四、为什么LLM会产生幻觉

导致AI模型产生幻觉有若干个因素,其中包括训练数据有偏见或训练数据不足、训练数据过度拟合、上下文理解有限、领域知识缺乏、对抗攻击和模型架构。

  • 训练数据有偏见或训练数据不足:AI模型的好坏取决于训练所使用的数据。如果训练数据有偏见、不完整或不足,AI模型可能会基于其对所访问数据的有限理解而产生幻觉。在使用开放的互联网数据训练大型语言模型的情况下,这一点尤其令人担忧,因为互联网中有偏见和错误的信息泛滥。当LLM没有足够的信息时,他们通常不会说“我不知道”。因此,当LLM没有答案时,它会生成最可能的答案。但请注意,“最有可能”并不一定意味着“真实”,当这种错位发生时,最终结果就是幻觉。

  • 过度拟合:当AI模型与训练数据过度拟合时,它可能会开始生成对训练数据过于具体的输出,不能很好地推广到新数据。这可能导致模型生成幻觉或不相关的输出。

  • 数据噪声:LLM接受大量数据的培训,其中一些数据可能包含不准确之处。这些不准确性可能会在模型的输出中传播。

  • 无法验证事实:LLM没有能力交叉核对信息或根据可靠来源验证事实,导致可能生成不正确或捏造的信息。

  • 上下文理解缺乏:缺乏上下文理解的AI模型可能会产生脱离上下文或不相关的输出。这可能导致模型生成幻觉或荒谬的输出。

  • 领域知识有限:为特定领域或任务设计的AI模型在接受其领域或任务之外的输入时可能会产生幻觉。这是因为它们可能缺乏生成相关输出所需的知识或背景。当模型对不同语言的理解有限时,就会出现这种情况。尽管一个模型可以在多种语言的大量词汇上进行训练,但它可能缺乏文化背景、历史和细微差别,无法正确地将概念串在一起。

  • 对抗攻击:不同于组建一支团队“攻破”模型以改进模型的红蓝对抗,AI模型也易受对抗攻击。当恶意攻击者故意操纵模型的输入时,可能会导致它生成不正确或恶意的输出。

  • 模型架构:AI模型架构也会影响幻觉产生的容易程度。由于复杂性增加,具有更多分层或更多参数的模型可能更容易产生幻觉。

回到我们上面举的关于鲁迅先生在日本学医的事情,该模型不了解鲁迅先生的历史信息,以其所掌握的有限信息相当自信的做出了不准确的响应。

有时候我们会尝试用Prompt Engineering来影响LLM,让其相信自己正在以某种观点模仿特定的“角色”,这会影响其回答问题的方式。

例如,我们通常在要求 GPT 解释概念的时候,如果要介绍的对象只有4岁,本质上你其实是在让 GPT 作为父母或老师的角色来解释对于幼儿来说这是一个复杂的概念:

五、幻觉对LLM的影响

5.1、有毒或歧视性内容

由于LLM培训数据由于固有的偏见和缺乏多样性,往往充满社会文化刻板印象。因此,LLM可以产生并强化这些针对社会弱势群体的有害思想。他们可以根据种族、性别、宗教、民族等生成这种歧视性和仇恨性的内容。

5.2、隐私问题

LLM接受大量培训语料库的培训,其中通常包含个人的个人信息。此类模型曾经侵犯过人们的隐私。他们可以泄露特定信息,例如社会安全号码、家庭住址、手机号码和医疗详细信息。

5.3、错误信息和虚假信息

语言模型可以生成看似准确但实际上是错误的、没有经验证据支持的类似人类的内容。这可能是偶然的,导致错误信息,也可能背后有恶意故意传播虚假信息。如果不加以控制,可能会造成不利的社会文化经济政治趋势。

六、如何消除LLM的幻觉

所有LLM都会产生幻觉,因为他们接受的训练是基于各种数据集的大语料库,而这些数据集可能存在不完整性、矛盾、不一致和其他偏见。消除LLM的幻觉是一个复杂的问题,但可以采取一些方法来最大限度地减少其产生的影响。以下是一些可能的解决方案:

6.1、人类反馈强化学习(RHLF)

通过将人类反馈纳入训练过程中,可以帮助LLM识别和纠正其潜在的幻觉。这种方法可以通过迭代的方式不断改进模型的性能。OpenAI 使用基于 InstructGPT 方法的人类反馈强化学习 (RHLF),而斯坦福 Alpaca 和 Databricks Dolly 2.0 使用 Self-Instruct 监督微调方法。

6.2、Temperature 参数调整

使用 LLM 构建时(无论是 HuggingFace 模型还是 OpenAI GPT-3 api),有多个可用参数,包括Temperature。模型的Temperature是指用于调整模型预测的概率分布的标量值。就LLM而言,温度参数决定了坚持模型从训练数据中学到的知识与生成更多样化或创造性的响应之间的平衡。一般来说,创造性的反应更有可能包含幻觉。

6.3、使用向量数据库

向量数据库是一种新兴的技术,可以用于存储和检索大规模的语义向量表示。通过将LLM的输出与向量数据库中的已验证数据进行比较,可以减少幻觉的发生,并提供更可靠和准确的回答。

6.4、自我检查(自我批判、自我反思)

一般来说,通过智能提示和思想链(COT)等技术,LLM已经表明他们可以在更复杂的任务上表现更好。

6.4.1、SmartGPT(SmartLLMChain):

SmartLLMChain 是一个自我批评链,旨在帮助解决复杂的问题。它不是使用语言模型 (LLM) 执行单遍,而是遵循三个步骤的过程:

  • 创意:用户提示多次(n次)通过LLM以生成n个输出提案,称为“创意”。 n 的值可以作为参数进行调整。

  • 批评:LLM产生的所有想法都会经过评估,以找出潜在的缺陷。根据这种批评选择最好的想法。

  • 解决:LLM尝试增强上一步中选定的想法,并将其作为最终输出呈现。有关更多详细信息,请参阅 SmartGPT 作者的视频。 LangChain 有一个 SmartGPT 的实现,可以让您在几秒钟内开始使用。

6.4.2、因果程序辅助语言 (CPAL) 链

CPAL 构建在程序辅助语言 (PAL) 语言链之上,将提示的因果结构表示为因果图或 DAG(在 langchain 上查看)。在这种方法中,与代理类似,LLM可以访问代码执行来获取有关需要数学运算的更复杂问题的反馈。

6.5、检索增强生成(RAG)

该技术允许我们从外部知识库检索相关信息并将该信息提供给LLM。通过在预测时提供对知识库中相关数据的访问(添加到提示),我们可以将纯粹的生成问题转换为基于所提供数据的更简单的搜索或总结问题。

然而,即使拥有 RAG,LLM也容易产生幻觉,如下图所示,来自俄亥俄大学研究人员最近发表的一项研究:

正如您在上面所看到的,当特别涉及到处理符号的更多数学推理时,语言模型仍然可能会产生幻觉。

6.6、Prompt Engineering

Prompt engineering是一种改善LLM响应的常见方法,可以通过提供更明确的背景信息来减少幻觉。以下是一些常见的方法:

6.6.1、更明确的背景

提供清晰具体的提示可以帮助LLM生成最相关、最准确的输出。使用具体的问题或指定特定的领域或主题。例如,不要问“什么是捷豹?”当我们可以指汽车或动物时,我们应该问:“捷豹有哪些不同型号?”

6.6.2、较长的上下文

较长的上下文并不能直接减少幻觉,但可以提供更多的信息和背景,从而增加LLM生成准确回答的可能性。

6.6.3、上下文注入

在与LLM交互时,将先前的对话历史或相关上下文信息提供给模型。这样,LLM可以更好地理解问题的背景,并生成更准确和一致的回答。

6.6.4、使用多次提示

通过给LLM提供多个不同的提示,可以获得更全面和多样化的回答。这有助于减少模型受到单一偏见的影响。

6.5、微调较小的模型来检测幻觉

微调一个较小的LLM模型,可以用于评估LLM响应是否得到了来源的支持。这种方法可以通过语义上的归因评估来检查LLM的回答是否合理。微调LLM可能会更耗时,但似乎效果相当不错(但是并不能完全消除幻觉)。例如,您可以利用 beir_fever 或 AttrScore 来微调一个较小的模型,该模型可以对 LLM 响应的归因进行评分。另请查看此存储库以获取一些实现细节。

需要注意的是,消除LLM的幻觉是一个持续的过程,需要不断地改进和优化。同时,用户也应该保持警惕,对LLM生成的内容进行审查和验证,以确保其准确性和可靠性。

七、总结

总之,在现实应用中使用大型语言模型 (LLM) 时,幻觉仍然是一个重大挑战。LLM生成虚假信息可能会带来灾难性的后果,尤其是在面向客户的系统中。然而,有一些有效的方法可以最大限度地减少幻觉并提高LLM回答的可靠性。

具体来说,调整LLM生成参数、采用不同的解码技术以及实施自检机制可以更好地控制输出并提高响应质量。像 SmartLLMChain 和 CPAL 链这样的技术提供了有前途的方法,通过完善生成的想法并结合因果结构来减少幻觉。此外,检索增强生成(RAG)可以通过检索相关文档来增强LLM的反应,但需要谨慎,因为幻觉仍然可能发生,特别是在数学推理中。

为了进一步提高LLM回复的可靠性,建议及时设计和微调较小的LLM进行归因评估。总的来说,通过实施这些方法并考虑LLM的局限性,开发人员可以减轻幻觉的风险并确保更准确和可靠的信息生成。该领域的持续研究和开发对于提高LLM的表现并最大限度地发挥其在实际应用中的潜力至关重要。

八、References

Karpukhin, Vladimir, et al. "Dense passage retrieval for open-domain question answering." arXiv preprint arXiv:2004.04906 (2020). Lewis, Patrick, et al. "Retrieval-augmented generation for knowledge-intensive nlp tasks." Advances in Neural Information Processing Systems 33 (2020): 9459-9474. Gao, Luyu, et al. HYDE "Precise Zero-Shot Dense Retrieval without Relevance Labels." arXiv preprint arXiv:2212.10496 (2022). Ma, Kaixin, et al. "Open-domain Question Answering via Chain of Reasoning over Heterogeneous Knowledge." arXiv preprint arXiv:2210.12338 (2022).

Lewis, Patrick, et al. "Retrieval-augmented generation for knowledge-intensive nlp tasks." Advances in Neural Information Processing Systems 33 (2020): 9459-9474.

Hu, Ziniu, et al. "REVEAL: Retrieval-Augmented Visual-Language Pre-Training with Multi-Source Multimodal Knowledge Memory." arXiv preprint arXiv:2212.05221 (2022).

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

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

相关文章

新学期第一篇博客

文章目录 一、加入QQ群(一)QQ群号(二)加群要求 二、加入云班课三、使用思维导图(一)下载XMind软件(二)安装XMind软件(三)创建思维导图1、选择模板&#xff08…

【C++】拷贝对象时,编译器的偷偷优化

你知道吗?对于连续的”构造拷贝构造“,编译器其实是会默默做出优化的。👻 如果你不知道这个知识点的话,那下面这道笔试题就要失分了😵。 本篇分享一个关于编译器优化的小知识,看完本篇,你就能…

阿里云服务器退款规则_退款政策全解析

阿里云退款政策全解析,阿里云退款分为五天无理由全额退和非全额退订两种,阿里云百科以云服务器为例,阿里云服务器包年包月支持五天无理由全额退订,可申请无理由全额退款,如果是按量付费的云服务器直接释放资源即可。阿…

C++ Primer Plus 第六章笔记

目录 if 语句 if else语句 if else if else结构 逻辑运算符--&&,||和! cctype字符函数库 条件运算符(三目运算符) switch语句 continue和break语句 基本文件输入/输出 总结:本文主要介绍了分支语句和if判断语句,运算符和简…

vue 浏览器记住密码后,自动填充账号密码错位

亲测有效!!! 遇到的场景: 浏览器记住密码后,登录时自动填充账号密码,由于登录时只需要这两个字段所以没问题,见图一,但注册时,账号密码不在一处,见图二 原本账号应该在…

浅谈JVM内存模型与GC垃圾回收

目录 1. 摘要 2. JVM 简单介绍 3. 线程私有的有哪些? 4. 线程共享的有哪些? 5. JVM 栈中程序是如何操作数据的? 6. 内存泄露是什么意思? 7. 堆内存的分配规则 8. 垃圾回收算法 8.1 垃圾回收机制简单概括 8.2 标记清理算法…

UNIAPP之js/nvue混淆探索

因项目需要对UNIAPP的js混淆做了一些调研 混淆教程: https://uniapp.dcloud.net.cn/tutorial/app-sec-confusion.html 按照教程配置进行打包正式包进行混淆 下载正式包将 .ipa改为.zip 解压获取到HBuilder.app 右键显示包内容 获取到混淆的key 不同时间进行打包混淆同一文…

谷器数据被认证为全国信标委软工分委会全权成员单位

8月23日,全国信息技术标准化技术委员会软件与系统工程分技术委员会(简称:全国信标委软工分委会,SAC/TC28/SC7)批准通过新一批成员单位,北京谷器数据科技有限公司被成功授牌为全权成员单位。 全国信标委软件…

高校消防安全存在的问题与解决方案介绍 安科瑞 许敏

摘要 :本文分析了当前高校消防安全存在的问题,现有消防系统突出问题表现形式,提出高校智慧消防安全预警防控体系构建,并对智慧消防安全预警平台主要功能进行了简介,对高校智慧消防安全预警系统功能设计具有一定的指导意…

0基础学习VR全景平台篇 第96篇:VR电子楼书

大家好,欢迎观看蛙色VR官方系列课程——VR电子楼书! 作为2021年底全新上线的行业解决方案,是专门针对地产、园区数字化营销的一站式VR解决方案,为行业潜在客户提供优质的7x24小时线上看房体验。 本期教程将通过功能介绍后台操作&…

koa2快速2分钟搭建web服务器

koa简介: Koa是一个基于Node的web服务web服务器开发框架。类似于Express。 Koa1它的主要特点是,使用了ES6的Generator函数。 koa2依赖Node.js 7.6.0或者更高版本。 koa不在内核方法中绑定任何中间件,它仅仅是一个轻量级的函数库,几…

【QT】QMessageBox消息框的使用(16)

在实际项目中,弹出消息框是一个很常见的操作,包含错误信息提示、警告信息提示、关于信息提示、还包括判断信息选择等操作,那么今天通过这一节来好好了解下消息框的使用方法。 一.环境配置 1.python 3.7.8 可直接进入官网下载安装&#xf…

图:关键路径

1. AOE网 与AOV网不同,AOE是用边表示活动的图或者网。 1.AOE网的概念 在带权有向图中,以顶点表示事件,以有向边表示活动, 以边上的权值表示完成该活动的开销(如完成活动所需的时间), 称之为用边表示活动的网络&…

如何尽快了解企业文化并融入团队

点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~ 每个公司都有自己独特的企业文化,企业文化分为两个部分,一个部分是对外的企业文化,一个部分是企业内部的文化。对外的是公司的形象&…

并行计算之计算平台体系结构(流水线,异构处理器与异构并行)

并行计算粒度 分布式并行(多主机,多进程) : MPI 共享存储式并行 (多线程) :OpenMP OpenCL OpenACC 指令级并行 CPU流水线 CPU流水线 指将一条指令的执行过程划分为多个阶段,使得在每个时钟周期内能够并行执行多条指令&#…

前端开源代码

vue大屏: PublicbigScreenPage–Vue3tsWindcssEchartThree.js大屏案例 PublicbigScreenPage—基于 Vue3、TypeScript、DataV、ECharts 框架的 " 数据大屏项目 介绍:https://blog.csdn.net/qq_40282732/article/details/105656848 Vue3.2 Echar…

AutoDock Vina 对接计算(大批量)

AutoDock Vina 1.2.0 对接计算(大批量) AutoDockVina 1.2.0 的示例应用:A) 对接多个配体 (PDB 5x72);B) 使用 AutoDock4 (PDB 4ykq) 的水合对接方案与水分子对接;C)在锌存在的情况下使用 AutoDock4Zn 力场 (PDB 1s63)&…

ChatGLM2 源码解析:`ChatGLMModel`

# 完整的 GLM 模型,包括嵌入层、编码器、输出层 class ChatGLMModel(ChatGLMPreTrainedModel):def __init__(self, config: ChatGLMConfig, deviceNone, empty_initTrue):super().__init__(config)# 如果设置了empty_init,创建任何 PyTorch 模块时&#…

【软件测试】单元测试、集成测试、系统测试有什么区别?

单元测试、集成测试、系统测试有什么区别 1、粒度不同 集成测试bai粒度居中,单元测试粒度最小,系统du测试粒度最大。 2、测试方式不同 集成测试一般由开发zhi小组采用白盒加黑盒的方式来测试,单元测试一般由开发小组采用白盒方式来测试&a…

第六章:中华民族的抗日战争

1.日本发动灭亡中国的侵略斗争 关键字: 中国抗日战争的起点与全民族抗战阶段 2.中国人民奋起抗击日本侵略者 关键字: 1 国共第二次统一战线初步建立的标志:国民党五届三中全会 2 扭转时局的枢纽,国内和平初步实现:…