零资源的大语言模型幻觉预防

零资源的大语言模型幻觉预防

  • 摘要
  • 1 引言
  • 2 相关工作
    • 2.1 幻觉检测和纠正方法
    • 2.2 幻觉检测数据集
  • 3 方法论
    • 3.1 概念提取
    • 3.2 概念猜测
      • 3.2.1 概念解释
      • 3.2.2 概念推理
    • 3.3 聚合
      • 3.3.1 概念频率分数
      • 3.3.2 加权聚合
  • 4 实验
  • 5 总结

在这里插入图片描述

摘要

大语言模型(LLMs)在各个领域的广泛应用引起了人们对“幻觉”问题的关注,即LLMs生成事实不准确或无依据的信息。现有的语言助手中的幻觉检测技术依赖于复杂的不确定性、特定的自由语言思维链(CoT)技术或 基于参数的方法,存在解释性问题。此外,针对生成后识别幻觉的方法无法防止其发生,并且由于指令格式和模型风格的影响,性能不一致。本文介绍了一种新颖的 预检测自我评估技术 ,称为SELF-FAMILIARITY,重点评估模型对输入指令中存在的概念的熟悉程度,并在遇到不熟悉的概念时不生成响应。这种方法模拟了人类在面对不熟悉的话题时避免回应的能力,从而减少幻觉。

基于参数的方法是指在幻觉检测中使用参数化模型或算法的技术。这些方法通常会将语言助手的行为、输出或其他相关特征表示为参数,并使用这些参数来进行幻觉检测。

预检测的自我评估技术是指在自然语言处理任务中,通过对模型输出进行评估和分析来评估模型性能的技术。模型生成翻译结果后,并不立即输出给用户或系统。相反,生成的结果会经过一系列评估步骤来估计其质量和准确性。

在四个不同的大语言模型上验证了SELF-FAMILIARITY,并表现出与现有技术相比始终优越的性能。研究结果为LLM助手中的幻觉缓解提供了重要的先发性策略转变,有望提高可靠性、适用性和解释性。

1 引言

大语言模型(LLMs)的广泛应用引发了人们对其在各种用例中的应用的兴趣,例如医疗和药学。然而,阻碍它们充分发挥潜力的一个主要挑战是幻觉问题,即模型产生不准确或编造的信息,导致其可靠性和可信度存在重大差距。图6展示了一个示例,演示了当用户向ChatGPT查询有关治疗由内源性生长激素分泌不足引起的矮小症的药物“Skytrofa”时,幻觉问题的存在。可以观察到ChatGPT在这种药物的关键因素上生成了不准确的回答。
在这里插入图片描述
最近,已提出了几种方法来检测(甚至纠正)LLMs在开放对话中生成的幻觉回答,这些方法可以大致分为两类:

  • 第一类方法依赖第三方知识库,结合思维链(CoT)技术,识别和纠正潜在的幻觉回答。
  • 另一个研究方向侧重于设计基于参数的方法,主要利用困惑度等特定指标评估回答的正确性。

在这种方法中,模型会根据输入的问题或任务,生成一个回答。然后,通过计算回答的困惑度或其他特定指标来评估回答的正确性。困惑度是一种衡量语言模型预测能力和不确定性的指标,它表示模型在选择正确答案时的困惑程度,即模型对不同答案的选择难度。
通过使用困惑度等特定指标,可以量化回答的质量和准确性。较低的困惑度通常表示回答更准确和可靠。这些指标可以用于评估模型在特定任务或数据集上的表现,并进行模型选择、调优或比较。

所有上述方法主要集中在 幻觉回应的后检测 上。这些方法只能确定回答是否为幻觉,无法阻止未来产生此类回答,从而降低可靠性。此外,现有方法的性能深受指令和模型风格的影响,在维持开放对话场景的鲁棒性方面存在挑战。这种复杂性使得很难建立一个明确的阈值来区分幻觉回答。例如,二进制查询通常会导致简短的响应序列,使得与更长的响应序列导出的指标相比,指标差异显著。因此,对于人工智能(AI)语言助手的实际和高效应用,一种积极的、预防性的幻觉回答策略是必不可少的。

“Post-detection of hallucination responses”(幻觉回应的后检测)是指在生成型模型或对话系统中,对于生成的回答或响应进行后续的幻觉检测。为了解决幻觉回应的问题,可以采用后检测的方法。后检测是指在生成结果之后,对其进行进一步的分析和评估,以确定其中是否存在幻觉回应。

设计这样一种有效的预防方法面临着几个挑战。

  1. 首先,所提出的方法必须在零资源的环境中进行导航,不能依赖于从搜索引擎中获取的外部知识。忽视这一要求会损害方法的通用性和适用性,使其不适用于预算有限或无法访问外部环境的情况。因此,深入了解语言模型的内在知识变得至关重要。
  2. 此外,确保鲁棒性的任务非常重要。设想的系统必须对不同类型的指令、上下文变化和模型风格表现出韧性。鉴于人类语言的开放性和动态性质,要在各种场景中实现一致的性能和坚定的韧性,面临着无疑的巨大挑战。

为了同时应对这些挑战,本文提出了一种新颖的零资源预检测方法,称为SELF-FAMILIARITY,如图2所示。该方法通过避免讨论模型不熟悉的概念来模拟人类的自我评估能力,从而减少产生幻觉信息的风险。这种方法使其与传统的后检测技术有所区别。
在这里插入图片描述
首先,本方法在概念提取阶段从指令中提取和处理概念实体。
然后,在概念猜测阶段,通过提示工程分别检查提取的概念,以获得每个概念的熟悉程度分数。
最后,在聚合阶段,将不同概念的熟悉程度分数组合起来生成最终的指令级熟悉程度分数。

与现有方法相比,本文的算法具有以下优点。

  1. 首先,SELF-FAMILIARITY集成了思维链技术和基于参数的方法的优势。与思维链方法类似,本文的算法可以通过识别模型不熟悉的概念提供有建设性的回答。然而,本文的算法仅使用提示工程,不需要模型具备强大的推理能力,并避免了它们的缺点,同时结合了它们的优点。
  2. 此外,本文的算法不受指令风格和类型的影响,具有积极性和预防性,从而提高了其可靠性和鲁棒性。
  3. 最后,它不需要任何外部知识。

使用一种新提出的预检测幻觉指令分类数据集Concept-7,在四个大语言模型上评估了我们的方法。实验结果表明,所提出的SELF-FAMILIARITY方法在所有模型上始终优于其他方法,显示出其巨大的应用价值。

2 相关工作

目前,没有现有的工作专注于在零资源环境下通过分析指令本身来防止开放对话中的幻觉回答。因此,所讨论的上下文与先前研究的上下文有所不同。

2.1 幻觉检测和纠正方法

以前的幻觉检测和纠正研究主要集中在特定任务的条件文本生成上,例如摘要概括、图像字幕、对话生成、机器翻译和表格到文本生成。由于这些工作非常特定于任务,它们无法解决开放对话中的幻觉问题。

对于开放对话设置,根据采用的策略,方法通常分为两组。

  • 第一类利用思维链(CoT)或提示编程来评估和修正回答。一个值得注意的例子是CRITIC,其中使用思维链过程,并从外部搜索引擎获得补充输入,以提高响应质量。某些方法不需要外部知识,通常直接要求模型评估输出的准确性。然而,这些方法在特定回答方面有一定的局限性,并且在很大程度上依赖于模型的内在推理能力。另一个挑战在于算法输出通常是自由文本,这可能使得实际的分类阈值模糊不清。

  • 第二类方法强调使用语言模型参数(例如token概率序列)来确定幻觉程度。这些方法通常具有出色的泛化能力,并且可以提供精确的输出分数。Self-check GPT是使用基于参数的方法进行开放式文本生成的先驱。Self-check GPT使用困惑度、采样和无条件概率共同估计幻觉程度。然而,该工作仅评估与传记相关的问题,并且与思维链技术相比,模型的可解释性显著降低。

2.2 幻觉检测数据集

目前在开放对话中的幻觉检测数据集主要集中在后检测情景中。在这些数据集中,任务涉及选择正确的回答或确定回答是否不正确。然而,这些数据集受到一定限制。首先,这些数据集通常源自单个任务,如传记撰写,没有考虑不同语言模型之间的差异。每个模型可能具有不同的背景知识,使得一个模型可以识别另一个模型可能忽略的幻觉回答。此外,即使模型能够准确地对特定的幻觉回答进行分类,也不能保证模型将在将来避免生成不同的幻觉回答。因此,重要的是创建一个新的数据集,用于验证预检测设置。

3 方法论

在这里插入图片描述
本算法的目标是通过检查语言模型对指令 P T P_T PT中存在的概念的熟悉程度,评估目标指令 P T P_T PT是否是潜在的幻觉指令,这在零资源环境下进行。方法如图2所示,包括三个主要步骤:
(1)概念提取,
(2)概念猜测,
(3)聚合。
每个步骤的详细信息将在下面的章节中阐述。

3.1 概念提取

为了评估熟悉程度,首先需要从自由文本指令中提取概念实体,否则评分将受到指令中的“噪音”的很大影响,即指令的风格和格式化元素,这些元素对其理解没有贡献。例如,将问题“声音能在真空中传播吗?”转化为陈述句“声音能在真空中传播。请判断该陈述的真实性。”不会改变所需的知识,但会大幅修改后续回答的风格。此外,如果指令中包含多个概念,将会极大增加后续提示工程的难度。通过独立评估这些概念,可以减少这种风格影响,从而增强后续程序的鲁棒性。通过使用命名实体识别(NER)模型对给定指令进行概念提取来实现这一点:
在这里插入图片描述
这些提取的实体 [c1, · · · , cN ] 是指令的关键概念。N代表提取的概念数。然而,NER模型经常产生额外的噪音并且无法完全捕捉到一些概念。因此,引入后续的处理步骤来改进这些提取的概念,如下所述。

概念分组 提取的概念经常具有一定的不完整性。例如,“2023年美国债务上限危机”这个术语可能被无意地分割成[“2023年”, “美国”, “债务上限危机”]。为了解决这个问题,提出按照它们在 P T ( 语言模型对指令 ) P_T(语言模型对指令) PT(语言模型对指令)中的位置 对概念进行排序,并尝试将一个概念与相邻的概念合并,如果新合并的概念在原始 P T P_T PT中找到,就将合并的概念对合并为一个扩展的、统一的概念。

概念过滤 在合并概念之后,下一步是排除不需要检查的简单概念,以提高效率。这些包括常见的概念,如“年份”和“年龄”,通常被模型很好地理解。为了解决这个问题,识别Wiktionary4中使用频率最高的单词,并将其指定为“常见概念”。任何包含在这些常见词汇中的概念都将被排除。

3.2 概念猜测

下一个任务是在零资源环境中检查语言模型对提取的概念的熟悉程度。在零资源环境中进行这项任务会增加其复杂性,因为它不能依赖外部概念知识。因此,将模型的理解能力与已建立的金标准定义进行比较以得出结果的方法变得不可行。同时,引入了一种新颖的自我评估技术,称为概念猜测。本方法开始时,提示模型为给定的概念生成一个解释。随后,通过提示工程,要求模型基于这个解释重新创建原始概念。如果模型成功生成了初始概念,响应序列的概率分数可以解释为概念与解释之间的连接强度,作为熟悉度分数。整个过程可以类比为专门的Charades或Pictionary游戏。如果语言模型能够从生成的解释中熟练地推导出原始概念,这不仅表明解释的充分性,也反映了模型对概念的熟练程度。重要的是,这一方法不需要获得概念的金标准定义。概述以下步骤,将这个概念方法转化为一个标准化的度量方式:

3.2.1 概念解释

在概念解释步骤中,使用标准的解释提示( P E P_E PE)和目标概念( c i c_i ci)来查询语言模型(LM)。这个查询促使语言模型通过贪婪搜索(Greedy Search)为每个概念生成解释。贪婪搜索选择下一个具有最高概率的单词来生成响应。这个过程会一直持续,直到遇到句子的结束标记,或达到预定义的最大长度(记为 l F l_F lF):
在这里插入图片描述
其中,⊕表示将 c i c_i ci插入到 P E P_E PE的预定义位置。在许多情况下,原始概念可能直接并入生成的解释中,如图2所示。因此,模型可以简单地“复制”原始概念以“作弊”。为了防止这种情况发生,在 R i R_i Ri中对 c i c_i ci的单词进行屏蔽处理:
在这里插入图片描述

3.2.2 概念推理

给定屏蔽的解释 R i ∗ R^∗_i Ri和由 P I P_I PI表示的概念推理提示,可以要求模型生成原始概念 c i c_i ci。然而,模型的响应是以开放式的自由文本形式生成的,这在尝试将其转化为标准分数时会带来挑战。考虑这样一个情况,模型可能以“可口可乐的最大竞争对手”而不是“百事可乐”的形式正确生成原始概念。这种差异使得确定原始概念是否成功重现变得复杂。为了解决这个问题,采用了**约束束搜索(ConsBeamSearch)**的方法,指导模型通过束搜索寻找包含原始概念的响应,并同时提供响应的概率分数:
在这里插入图片描述
其中,每个 < R i j , s i j R^j_i, s^j_i Rij,sij> 对应于包含概念实体 c i c_i ci的响应 R i j R^j_i Rij,其中 s i j s^j_i sij表示相应的响应概率分数。 T B T_B TB是ConsBeamSearch算法的束搜索大小。将停止准则设置为达到句子结束标记或达到最大长度 l B l_B lB。束搜索将返回多个结果,但是模型的理解仅与最高分相关。因此,从[ s i 1 , ⋅ ⋅ ⋅ , s i T B s^1_i, · · · , s^{T_B}_i si1,⋅⋅⋅,siTB]中选择最高的响应分数 s i s_i si作为概念 c i c_i ci的熟悉度分数。
在这里插入图片描述

约束束搜索(ConsBeamSearch)是一种搜索算法,用于在生成式模型中进行序列生成任务,如机器翻译或文本生成。与贪婪搜索(Greedy Search)只选择每个步骤上最可能的单词不同,束搜索考虑了多个备选单词,并根据概率进行排序。
束搜索使用一个参数称为束宽(beam width),该参数指定在每个时间步中要保留的备选单词数量。在每个时间步,束搜索会根据预测的概率选择前K个可能性最高的备选单词(K为束宽),并保留这些备选路径。然后,针对每个备选路径,继续预测下一个单词,并再次选择最有可能的K个备选单词。
这个过程会一直持续,直到生成的序列达到预定的结束标记或达到最大长度。最终,束搜索会返回具有最高总体概率的生成序列作为最终的输出。
在这里插入图片描述

3.3 聚合

在许多情况下,最终提取的概念数量可能大于1。因此,需要对每个概念的重要性进行排名,并根据其重要性合并概念的熟悉度分数,以生成最终的指令级结果。

3.3.1 概念频率分数

为了评估概念的重要性,提出了一种基于概念中包含的单词频率排名计算分数的方法。期望具有更不常见单词的概念对应的分数 f i f_i fi较低。为此,从Wiktionary中获取概念 c i c_i ci的第 j j j个单词的频率排名 p i j p^j_i pij。如果单词不在词典中或者是大写的,则将索引设置为词典的长度。考虑到单词分布往往遵循长尾分布,使用指数函数将频率排名转换回频率分数,并将它们相乘得到概念级别的频率分数:
在这里插入图片描述
在这里, M i M_i Mi是概念 c i c_i ci中的单词数。术语 H H H被引入作为一个归一化因子,以确保结果分数在一个合理的范围内。

3.3.2 加权聚合

接下来,通过加权平均值基于频率分数对熟悉度分数进行平均。与仅选择单个分数作为最终值相比,这种方法在多实体情况下提供了稳健性。为了使重要部分比不重要的尾部部分更有贡献,我们建立了一个几何递减的加权方案,比率为1/r。
在这里插入图片描述
在这里,θ(fi)表示 f i f_i fi在按fi的大小排序的[ f 1 , ⋅ ⋅ ⋅ , f N f_1, · · · , f_N f1,⋅⋅⋅,fN]中的排名位置。使用得到的 s f s_f sf来表示指令的臆想程度,并在分数低于预定阈值h时终止响应过程。

4 实验

5 总结

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

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

相关文章

FedGNN: Federated Graph Neural Network for Privacy-Preserving Recommendation

FedGNN&#xff1a;用于隐私保护推荐的联邦图神经网络 参考笔记 ICML-21-workshop 本文的主要创新工作 在具有局部差分隐私的模型训练中保护模型梯度&#xff0c;并提出一种伪交互项目采样技术来保护用户与之交互的项目。提出了一种保护隐私的用户-项目图扩展方法&#xff0…

Go学习第十七章——Gin中间件与路由

Go web框架——Gin中间件与路由 1 单独注册中间件1.1 入门案例1.2 多个中间件1.3 中间件拦截响应1.4 中间件放行 2 全局注册中间件3 自定义参数传递4 路由分组4.1 入门案例4.2 路由分组注册中间件4.3 综合使用 5 使用内置的中间件6 中间件案例权限验证耗时统计 1 单独注册中间件…

【c++|opencv】一、基础操作---3.访问图像元素

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 访问图像元素 1. 访问图像像素 1.1 访问某像素 //灰度图像&#xff1a; image.at<uchar>(j, i) //j为行数&#xff0c;i为列数 //BGR彩色图像 i…

思维训练第三课 反意疑问句

系列文章目录 文章目录 系列文章目录前言一、什么是反意疑问句二、反意疑问句的回答&#x1f49a;主系表/主谓宾&#xff08;肯定&#xff09;&#xff0c;否定提问1、一般现在时2、一般过去时3、一般将来时4、现在完成时 &#x1f49b; 主谓宾1、一般现在2、一般过去3、一般将…

大数据可视化BI分析工具Apache Superset实现公网远程访问

大数据可视化BI分析工具Apache Superset实现公网远程访问 文章目录 大数据可视化BI分析工具Apache Superset实现公网远程访问前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网…

【mfc/VS2022】计图实验:绘图工具设计知识笔记3

实现类对串行化的支持 如果要用CArchive类保存对象的话&#xff0c;那么这个对象的类必须支持串行化。一个可串行化的类通常有一个Serialize成员函数。要想使一个类可串行化&#xff0c;要经历以下5个步骤&#xff1a; 1、从CObject派生类 2、重写Serialize成员函数 3、使用DE…

java基础 集合2

前9点&#xff0c;在另一篇作品中&#xff0c;可以从集合1开始观看 9.List遍历方式&#xff1a; 10.Arraylist底层原理&#xff1a; 11.Linklist底层原理&#xff1a; 1.LinkedList做队列和栈&#xff1a; package day01;import java.util.ArrayList; import java.util.I…

MySQL扩展语句和约束方式

一、扩展语句 复制&#xff0c;通过like这个语法直接复制bbb的表结构。只是复制表结构&#xff0c;不能复制表里面的数据 把bbb表里面的数据&#xff0c;复制到test&#xff0c;两个表数据结构要一致 创建一张表&#xff0c;test1,数据从bbb来&#xff0c;表结构也是bbb delete…

医院室内地图导航技术分析与作用

随着科技的不断发展&#xff0c;医疗行业的服务水平也在逐步提高。为了方便患者和医务人员&#xff0c;医院室内地图导航技术应运而生。这种技术运用了多种元素&#xff0c;包括模型地图、室内3D电子地图、路线指引、对接医院系统、位置分享和寻车导航等&#xff0c;为医院提供…

论文阅读——DistilBERT

ArXiv&#xff1a;https://arxiv.org/abs/1910.01108 Train Loss: DistilBERT&#xff1a; DistilBERT具有与BERT相同的一般结构&#xff0c;层数减少2倍&#xff0c;移除token类型嵌入和pooler。从老师那里取一层来初始化学生。 The token-type embeddings and the pooler a…

Linux的简介和环境搭建

简介 Linux是一套免费使用和自由传播的类Unix操作系统&#xff0c;是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想&#xff0c;是一个…

吃瓜教程3|决策树

ID3算法 假定当前样本集合D中第k类样本所占比例为pk&#xff0c;则样本集合D的信息熵定义为 信息增益 C4.5算法 ID3算法存在一个问题&#xff0c;就是偏向于取值数目较多的属性&#xff0c;因此C4.5算法使用了“增益率”&#xff08;gain ratio&#xff09;来选择划分属性 CA…

计算机网络与技术——数据链路层

&#x1f60a;计算机网络与技术——数据链路层 &#x1f680;前言☃️基本概念&#x1f94f;封装成帧&#x1f94f;透明传输&#x1f94f;差错检测 ☃️点对点协议PPP&#x1f94f;PPP协议的特点&#x1f94f;PPP协议的帧格式&#x1f50d;PPP异步传输时透明传输&#xff08;字…

警惕听力下降的七大因素,一定要当心

随着现代社会的高速发展&#xff0c;工作生活节奏的加快&#xff0c;各种压力增大&#xff0c;再加上熬夜&#xff0c;长期佩戴耳机、饮食油腻辛辣等不良生活习惯的影响&#xff0c;听力损伤人群越来越多&#xff0c;已经不仅仅影响老年人群&#xff0c;近年来&#xff0c;听力…

k8s 资源预留

KUBERNETES资源管理之–资源预留 Kubernetes 的节点可以按照 Capacity 调度。node节点本身除了运行不少驱动 OS 和 Kubernetes 的系统守护进程&#xff0c;默认情况下 pod 能够使用节点全部可用容量&#xff0c; 除非为这些系统守护进程留出资源&#xff0c;否则它们将与 pod 争…

虚拟化的基础知识

目录 虚拟化基础 虚拟化的概念 虚拟化的特征&#xff08;本质&#xff09; 虚拟机的两大派别 VMM讲解 虚拟化中的一些重要概念 VMM的功能以及分类 虚拟化的架构 寄居虚拟化 裸金属虚拟化 操作系统虚拟化 混合虚拟化 虚拟化的三个方向 虚拟化基础 虚拟化的概念 什…

Matlab2022b图文安装保姆级教程

注意&#xff1a;完成安装步骤1和步骤2之后&#xff0c;再去使用Matlab2022b 本次安装后的版本信息如下&#xff0c;64位软件&#xff0c;windows系统 Matlab2022a与2022b的比较 MATLAB主要用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险…

Python 中__name__ == ‘__main__‘使用说明

在学习C语言的时候&#xff0c;程序的运行是从main函数开始的&#xff0c;因此&#xff0c;功能代码一般写到main函数中&#xff0c;子程序如果想要调用&#xff0c;也需要在main函数中进行调用。 然而&#xff0c;Python语言中&#xff0c;程序从第一行就开始执行(定义函数除外…

紧急:发现NGINX Ingress Controller for Kubernetes中的新安全漏洞

导语 大家好&#xff0c;今天我要向大家紧急报告一则消息&#xff1a;我们在NGINX Ingress Controller for Kubernetes中发现了三个新的安全漏洞&#xff01;这些漏洞可能被黑客利用&#xff0c;从集群中窃取机密凭据。在本文中&#xff0c;我们将详细介绍这些漏洞的细节&#…

Jetpack:024-Jetpack中的滚动事件

文章目录 1. 概念介绍2. 使用方法2.1 高级事件2.2 低级事件 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack中事件相关的内容&#xff0c;本章回中主要 介绍事件中的滚动事件。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧&#xff01; 1. 概念介绍 我们在…