如何利用验证链技术减少大型语言模型中的幻觉

news2024/11/24 2:09:18

一、前言

随着大型语言模型在自然语言处理领域取得了惊人的进步。相信深度使用过大模型产品的朋友都会发现一个问题,就是有时候在上下文内容比较多,对话比较长,或者是模型本身知识不了解的情况下与GPT模型对话,模型反馈出来的结果都是看似合理却不是我们需要的答案,实际上就是大模型出现了“幻觉”,即生成不真实的信息或虚构的回答。这对模型的可信度产生了负面影响。

验证链技术为减少模型中的幻觉提供了一种有效方法。它要求模型在生成每个断言时,同时提供一个证据链以支持该断言。这强制模型生成更加符合事实和逻辑的输出,减少臆造信息的概率。

在本文中,我将详细介绍验证链技术的工作原理,以及如何应用这一技术来减少大型语言模型生成的虚假信息。我们将探讨验证链的不同构建方法,以及它们对模型生成结果的影响。最后,我将讨论验证链技术在提高模型可信度方面的优势、存在的 LIMIT、以及未来的发展方向。

二、幻觉频繁发生的几种场景

在大型语言模型(LLM)中,幻觉频繁发生的几种典型场景包括:

2.1、开放域问答

在开放域问答中,LLM可能会自信地生成错误或虚构的答案。例如,当被问及一些模型不了解的专业知识问题时,LLM可能会自造信息来回答问题。

2.2、长文本生成

让LLM进行长文本的自由生成时,它可能会逻辑混乱,产生大量不真实的内容。例如让其编故事或创作文章时,就容易出现脱离事实的虚构内容。

2.3、将个人价值判断作为事实

LLM可能会将自己的个人观点、偏见作为客观事实来生成文本,从而产生与真实情况明显不符的输出。

2.4、数值预估

在进行数值预估时,LLM可能给出完全不合理的数字,比如被问及一座山的高度时却给出明显不准确的估算。

2.5、推理和多步触发

在需要进行多步推理时,LLM容易在逻辑上出现断层,导致最后的输出存在诸多幻觉。

这些都是LLM目前容易产生幻觉的场景。我们需要通过验证链等技术来约束模型,减少这种虚假信息的生成。

三、什么是验证链 (Cove)?

验证链是一项新技术,由Meta AI的研究人员 Shehzaad Dhuliawala 等人在论文《验证链减少大型语言模型中的幻觉》中提出。它结合了模型的提示和一致性检查。验证链(CoVe)背后的概念是,由大型语言模型(LLM)生成的回答可以用来验证自身。这种自我验证过程用于评估初始回答的准确性,并对其进行精炼以提高精度。要实现这一点,需要巧妙地构建和排序LLM提示。

该研究旨在解决大型语言模型产生可信但不正确信息的问题,即幻觉。研究人员提出了一种名为验证链(CoVe)的方法,首先模型生成初稿回答,然后创建问题来检查初稿中的事实,以无偏见地回答这些问题,并最终生成经过验证的最终回答。研究发现,验证链在各种任务中减少了幻觉的发生。

四、验证链 (CoVe) 减少幻觉的4个步骤

  1. 生成基准回答:从大型语言模型中获得一个简单的输出作为起点,无需任何其他特殊提示,以获得初始回答。这一初始步骤不仅作为验证链的起点,还作为通过验证链提升的基准。然而,由于这样的基准回答通常容易出现幻觉,CoVe方法旨在在后续阶段检测和纠正这些不准确之处。

  2. 计划验证问题:在给定原始查询和基准回答的条件下,模型被指示生成一组验证问题,旨在评估初始基准回答中所做的事实断言的准确性。重要的是强调,这些验证问题不是预定义的模板;相反,语言模型可以根据需要以任何适当的方式来表达它们。然而,这些验证问题应该以一种有助于改进基准回答的方式构建。

  3. 回答验证问题:大型语言模型通过多种变体(如联合、两步、分解和分解+修订)回答计划的验证问题,每种变体都有其独特的方法和复杂程度。这个验证过程可以包括通过网络搜索进行验证等工程技术/外部工具。同时,您可以在验证链的所有阶段依赖LLM本身,LLM将验证自己的回答。

  4. 生成最终验证的回答:利用这些答案,模型对初始草稿进行了改进,并生成了一个更准确的最终回答。

五、基于 LangChain 来测试验证链

作者引入的验证过程通过一系列的问题进行基准测试。这些问题被分为三个主要类别(尽管作者最初将它们分为四个类别):

  1. 维基数据与维基类别列表:这个类别涉及到期望以实体列表形式回答的问题。例如,像“哪些政治家出生在波士顿?”或者“能举出一些越南特有的兰花吗?”这样的问题,应该得到提供特定实体列表的答案。

  2. 多跨度 QA:这个类别的问题寻求多个独立的答案,每个答案都来自文本中不相邻的不同部分。一个例子是:“谁发明了第一台机械化印刷机,是在哪一年?”答案是“约翰内斯·古腾堡,1450年”。

  3. 长篇生成:这个类别主要包括作者基准测试中强调的传记性问题,但并不仅限于传记。任何需要详细或长篇回答的问题都属于此类别。

我已经按照原始论文中概述的四个阶段实施了 CoVe 管道测试。基于前面提到的问题类型,我建立了三个不同的 CoVe 链。此外,我还加入了一个路由机制,将原始查询引导到适当的链条。

路由器机制:当用户输入他们的查询或问题时,这个机制就开始运作。它将用户的问题分类为之前提到的三个类别之一:维基列表问题、多跨度问题或长篇问题。根据这种分类,路由器然后将问题引导到适当的链条,每个链条都专门设计来处理三种问题类型中的一种。这种分类是通过一个简单的少量提示设计实现的。你可以在这里获取更多关于提示的想法。

基线响应:这个阶段很直接,不需要任何提示制作。此时,用户的查询被 LLM 处理,得到我们称之为“基线响应”的结果。这个初始响应将随后被评估和精炼,以产生最终答案。你可以在这里获取更多关于所有类型问题的提示。

验证问题生成:这个阶段至关重要,需要精心制作和优化提示,以确保验证问题与原始查询无缝对接。如果这些验证问题偏离了主要意图,整个链条的目的可能会受到损害。为了更好地理解这一点,我们举一个例子。

基线响应:1. 萨蒂亚·纳德拉 (Microsoft 的 CEO),2. 桑达尔·皮查伊 (Google 的 CEO)3. 马克·扎克伯格 (Meta 的 CEO)

验证问题(第一套):1. 萨蒂亚·纳德拉是 Microsoft 的 CEO 吗?2. 桑达尔·皮查伊是 Google 的 CEO 吗?3. 马克·扎克伯格是 Meta 的 CEO 吗?

验证问题(第二套):1. 萨蒂亚·纳德拉是 Microsoft 的 CEO,他是印度裔吗?2. 桑达尔·皮查伊是 Google 的 CEO,他是印度裔吗?3. 马克·扎克伯格是 Meta 的 CEO,他是印度裔吗?

仔细观察两套验证问题,我们可以发现以下情况:

在第一套中,所有三个问题都会得到“是”的验证答案。最终精炼后的答案将包括基线响应中提供的三个名字。这并不是我们希望的结果,因为问题的主要目标是识别出印度裔的 CEO。第一套问题没有捕捉到这个特定的意图。

相反,第二套更符合我们的目标。例如,第三个验证问题将正确地排除马克·扎克伯格,因为虽然他是 Meta 的 CEO,但他并非印度裔。

因此,在此阶段,精确的提示工程和彻底的实验至关重要。关于各种问题类型的提示结构的进一步了解,你可以参考这里。

执行验证问题:这个阶段与前一个阶段同样重要。即使有高度准确的验证问题与主要目标对齐,最终精炼答案的质量也很大程度上取决于这个阶段。虽然完全依赖 LLM 来处理生成的验证问题,但一个人可以灵活地利用各种概念或外部工具来达到这个目的。在我的方法中,我使用了一个免费的搜索工具,“duckduckgo-search”,来获取答案。这些搜索结果然后作为 LLM 处理每个验证问题的参考上下文。替代方案包括更复杂的搜索工具,基于 RAG 的系统,数据库,或其他检索工具和机制来回答早期制定的验证问题。

最终精炼答案:这一步相对简单。它涉及利用所有的前面的数据(原始查询,基线响应,验证问题,及其各自的答案)来制定一个提供最终精炼答案的提示。参见示例提示以供参考。

六、CoVe 的实践结果

CoVe 的有效性在各种任务中进行了测试,包括Wikidata、Wikipedia分类列表、MultiSpanQA和长篇传记。结果还是很不错的:

  • 在基于列表的任务中显著提高了准确性。

  • 在闭卷问答中表现出色,F1分数提高了23%(这表示准确率和召回率都有所提高)。

  • 长篇生成中事实得分提高了28%。

  • 值得注意的是,通过CoVe,Llama 65B在长篇生成任务中超过了ChatGPT、InstructGPT和PerplexityAI等领先模型,标志着开源大型语言模型领域的重大成就。

七、CoVe 的改进方法

1️. 提示工程:改进任何LLM驱动的应用性能的主要方法之一是通过提示工程和优化。您可以查看我在GitHub上实现的所有提示。尝试进行自己的提示工程,在您的具体用例中进行实验。

2️. 外部工具:由于最终输出高度依赖于验证问题的答案,根据不同的用例,您可以尝试不同的工具。对于事实问答,您可以使用高级搜索工具,如Google搜索或serp API等。对于自定义用例,您可以使用RAG方法或其他检索技术来回答验证问题。

3️. 更多链条:我已经根据作者在研究中使用的三种问题类型(Wiki Data、多段问答和长篇问答)实现了三个链条。根据您的用例,您可以创建其他链条,以处理其他类型的问答方法,增加多样性。

4️. 人机交互(HIL):在许多LLM驱动的应用中,人在环(HIL)是一个重要的步骤。在您的特定应用中,可以将整个流程设计为将HIL纳入其中,无论是为了生成适当的验证问题还是回答验证问题,以进一步改进整体的CoVe流程。

八、Cove 方法的局限性

尽管CoVe采用了开创性的方法,但它并非没有限制。虽然它显著减少了幻觉,但并不能完全消除。模型仍有可能生成误导性信息。此外,幻觉可能以其他形式出现,例如在错误的推理过程中或在长篇回答中表达观点时。

幻觉的不完全消除:CoVe并不能完全消除生成内容中的幻觉,这意味着它仍然可能产生不正确或误导性的信息。

幻觉缓解的范围有限:CoVe主要解决直接陈述的事实不准确性形式的幻觉,但可能无法有效处理其他形式的幻觉,如推理错误或观点错误。

计算开销增加:在CoVe中生成和执行验证问题会增加计算成本,类似于其他推理方法(如思维链)。

改进的上限:CoVe的有效性受限于底层语言模型的整体能力,特别是其识别和纠正自身错误的能力。

九、总结

验证链(CoVe)方法在减少大型语言模型中的幻觉方面迈出了重要的一步,提高了它们在各种任务中的可靠性和准确性。通过使模型能够验证自己的回答,CoVe将我们带向了更可靠和无误的人工智能的目标,尽管仍然存在一些限制和挑战需要解决。

对于单个问题的答案包含的错误明显减少,从而使 CoVe 能够显着改进提示的最终输出。对于基于列表的问题,例如政治家的例子,Cove 可以将准确率提高一倍以上,从而显着降低错误率。

对于更复杂的问答场景,该方法仍然可以提高 23%,即使对于长格式内容,Cove 也可以将事实准确性提高 28%。然而,对于较长的内容,团队还需要检查验证答案是否不一致。

在他们的测试中,Meta 团队还可以证明指令调整和思维链提示不会减少幻觉,因此带有 CoVe 的 Llama 65B 击败了更新的指令调整模型 Llama 2。在较长的内容中,带有 CoVe 的模型也优于 ChatGPT 和 PerplexityAI,后者甚至可以收集其世代的外部事实。 Cove 完全利用模型中存储的知识来工作。

然而,在未来,该方法可以通过外部知识来改进,例如通过允许语言模型通过访问外部数据库来回答验证问题。

十、References

[1]. CHAIN-OF-VERIFICATION REDUCES HALLUCINATION IN LARGE LANGUAGE MODELS(https://arxiv.org/pdf/2309.11495v1.pdf)

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

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

相关文章

Linux基础指令(二)

目录 前言 1. which 2. alias 3. cat 3.1 echo指令 3.2 输出重定向 3.3 cat指令 3.4 * cat其他用法 4. more指令 5. less指令 6.head指令 7. tail 指令 8. 时间相关的指令 9. cal指令 总结 前言 Linux环境下的指令本质是一组可执行的命令,它们被编写成可…

商家在哪里可以制作小程序抽奖活动

在当今数字化时代,小程序已经成为一种普及且高效的营销工具。对于商家而言,利用小程序开展抽奖活动是一种极具吸引力的营销策略。本文将详细介绍商家如何创建小程序抽奖活动,并阐述其带来的营销效果。 一、明确活动目的与方案 在开始制作小程…

图纸管理制度《一》

在不断进步的时代,我们都跟制度有着直接或间接的联系,制度一般指要求大家共同遵守的办事规程或行动准则,也指在一定历史条件下形成的法令、礼俗等规范或一定的规格。那么什么样的制度才是有效的呢? 彩虹图纸管理软件_图纸管理系统_图纸文档管…

浅析 C# Console 控制台为什么也会卡死

一:背景 1. 讲故事 在分析旅程中,总会有几例控制台的意外卡死导致的生产事故,有经验的朋友都知道,控制台卡死一般是动了 快速编辑窗口 的缘故,截图如下: 虽然知道缘由,但一直没有时间探究底层…

【C++】不是用new生成的对象调用析构函数

2023年10月23日&#xff0c;周一上午 #include <iostream>class Book{ private:int price; public:~Book(){std::cout<<"调用析构函数"<<std::endl; } };int main(){Book b1;b1.~Book(); } 从运行结果可以看出&#xff1a; 手动调用b1.~Book()时&…

众和策略:题材股什么意思?

题材股是股票商场上的一个术语&#xff0c;许多刚接触股票出资的人可能对它不太熟悉。那么&#xff0c;题材股什么意思呢&#xff1f;在本文中&#xff0c;咱们将从多个角度剖析这个问题&#xff0c;帮忙读者更好地了解。 一、什么是题材股 题材股是指某个工作或主题的股票集结…

redis缓存基本使用和缓存问题解决

一、缓存 1、缓存使用 为了系统性能的提升&#xff0c;我们一般都会将部分数据放入缓存中&#xff0c;加速访问。而 db 承担数据落盘工作。 哪些数据适合放入缓存&#xff1f; &#xff08;1&#xff09;即时性、数据一致性要求不高的 &#xff08;2&#xff09;访问量大且更…

面试官:说说Loader和Plugin的区别?

一、区别 前面两节我们有提到Loader与Plugin对应的概念&#xff0c;先来回顾下 loader 是文件加载器&#xff0c;能够加载资源文件&#xff0c;并对这些文件进行一些处理&#xff0c;诸如编译、压缩等&#xff0c;最终一起打包到指定的文件中plugin 赋予了 webpack 各种灵活的…

抛硬币有连续x次正面的期望

首先来看期望的基本公式 其中x是抛x次&#xff0c;p是在抛第x次后出现连续正面的概率 先来看出现1次正面的期望 按照公式来算是 抛1次 1/2的概率 抛2次 1/4的概率 抛3次 1/8的概率... 我们可以写一个程序试一下 signed main() {ios_base::sync_with_stdio(0); cin.tie(0…

企业需要拓展出海业务?CRM为您保驾护航(下)

2022年企业似乎格外艰难&#xff1a;线上流量看似见顶&#xff0c;线下受疫情影响严重&#xff0c;展会推迟&#xff0c;出差受阻&#xff0c;增长乏力沦为常态。为了寻求增长&#xff0c;一批又一批企业将目光看向海外&#xff0c;那里尚有流量红利和增长空间等待挖掘。CRM客户…

解码Java的垃圾回收:掌握GC机制,提升代码的稳定性与可伸缩性

1. GC是什么 JVM垃圾收集(Java Garbage Collection ) GC采用分代收集算法&#xff1a; 次数上频繁收集Young区次数上较少收集Old区基本不动Perm区 2. GC 算法总体概述 JVM在进行GC时&#xff0c;并非每次都对上面三个内存区域一起回收的&#xff0c;大部分时候回收的都是指…

【milkv】internal codec -- mic

文章目录 一、硬件二、dts三、配置引脚board_initpin 四、makefile五、config六、添加tinyalsa七、测试结果7.1 查看录制device信息7.2 录制音频7.3 pc端获取录制好的设备7.4 使用audacity查看波形 一、硬件 i2s0 —— adc i2s1 —— pdm i2s3 —— dace spk_en存疑 i2s2 ——…

Git常用的命令有哪些?

一、前言 git 的操作可以通过命令的形式如执行&#xff0c;日常使用就如下图6个命令即可 实际上&#xff0c;如果想要熟练使用&#xff0c;超过60多个命令需要了解&#xff0c;下面则介绍下常见的的git 命令 二、有哪些 配置 Git 自带一个 git config 的工具来帮助设置控制…

【Python爬虫】安装requests库解决报错问题

requests 确保pip的安装命令行下安装出现的问题以及解决办法换镜像源安装验证安装为什么使用requests库呢 废话不多说了&#xff0c;直接进入正题 确保pip的安装 首先要想安装requests库&#xff0c;第一点就是要确保pip已经安装。这个pip在Python高级版本中已经默认安装了。…

html+js实现自定义弹窗

哈哈 转载 这个还不错 但是我暂时用不到 htmljs实现自定义弹窗_html自定义弹框-CSDN博客 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>自定义弹窗</title><style>body,P{margin:0;padding:0;}.popup {disp…

IBM Spectrum LSF 作业调度系统,让用户、IT 和业务充分利用 HPC

IBM Spectrum LSF 作业调度系统&#xff0c;让用户、IT 和业务充分利用 HPC 要点   通过隐藏工作负载密集型计算环境的 复杂性&#xff0c;提高用户生产效率&#xff1b; 简化计算集群管理并划分工作负载优先级&#xff0c; 以快速满足竞争激烈的行业瞬息万变的需求&#xf…

华为面试题

一、实习 1、健康险核心 batch 自动查询和一键重启 2、后端如何实现免密登录 Spring Boot与Spring Security&#xff1a; 如果你使用的是Spring框架&#xff0c;Spring Security可以为你提供大量的安全功能。创建一个基于Spring Boot的新项目&#xff0c;并添加Spring Securi…

高效访问数据的关键:解析MySQL主键自增长的运作机制!

文章目录 &#x1f34a; 主键自增长的概念&#x1f34a; 主键自增长的数据类型&#x1f34a; 主键自增长的步长&#x1f34a; 主键自增长的性能优化&#x1f389; 为什么需要主键自增长的性能优化?&#x1f389; 主键自增长的性能优化方案&#x1f4dd; 1. 调整主键自增长的步…

C++类和对象中(构造函数,析构函数,拷贝构造函数)详解

C类和对象中[构造函数,析构函数,拷贝构造函数]详解 一.前言1.类的6个默认成员函数 二.构造函数1.构造函数的引出2.无参构造函数3.缺省参数在构造函数中的应用4.编译器实现的默认构造函数5.广义的默认构造函数6.默认构造函数的形成规则 三.析构函数1.析构函数的语法2.编译器实现…

DALL·E 3怎么用?DALL·E 3如何申请开通 ?DALL·E 3如何免费使用?AI绘画教程来喽~

一、引言 DALLE 3 是 OpenAI 在上个月&#xff08;2023 年 9 月&#xff09;发布的一个文生图模型。 相对于 Midjourney 以及 Stable Diffusion&#xff0c;DALLE 3 最大的便利之处在于&#xff0c;用户不需要掌握 Prompt 的写法了&#xff0c;直接自然语言描述即可。 甚至还…