Chain of Verification-CoVe减少LLM中的幻觉现象

Chain-Of-Verification Reduces Hallucination In Large Language Models

在大型语言模型中,产生看似合理但实际上错误的事实信息,即幻觉,是一个未解决的问题。我们研究了语言模型在给出回答时进行深思以纠正错误的能力。我们开发了Chain-of-Verification(COVE)方法,该方法首先(i)起草一个初始回答;然后(ii)计划验证问题以对草稿进行事实核查;(iii)独立回答这些问题,以便答案不受其他回答的影响;最后(iv)生成其最终经过验证的回答。在实验中,我们展示了COVE在各种任务中减少了幻觉,包括来自Wikidata的基于列表的问题、封闭书籍的多跨度QA和长篇文本生成。

我们的方法假设能够访问一个基础的大型语言模型(LLM),尽管这个模型可能容易产生幻觉,但它能够以少量样本或零样本的方式接受一般性指令的提示。我们方法的一个关键假设是,当得到适当的提示时,这个语言模型能够生成并执行一个计划,以验证自己的工作,并检查是否存在错误,最后将这种分析整合到改进后的回答中。
我们的整体过程,我们称之为验证链(CoVe),因此执行四个核心步骤:
1. 生成基线响应:给定一个查询,使用LLM生成响应。


2. 规划验证:给定查询和基线响应,生成一系列验证问题,这些问题有助于自我分析原始响应中是否存在任何错误。


3. 执行验证:依次回答每个验证问题,从而检查答案与原始响应之间是否存在不一致或错误。


4. 生成最终验证响应:给定发现的不一致性(如果有的话),生成一个经过修订的响应,其中包含验证结果。


这些步骤通过以不同的方式提示同一个LLM来获得所需的响应。虽然步骤(1)、(2)和(4)都可以通过单个提示来调用,但我们对步骤(3)的变体进行了研究,包括联合、两步和分解版本。这些变体要么涉及单个提示,要么涉及两个提示,要么每个问题独立提示,其中更复杂的分解可能会导致改进的结果。

我们介绍了验证链(CoVe)方法,这是一种通过对其自己的响应进行深思熟虑并进行自我纠正来减少大型语言模型中幻觉的方法。特别是,我们展示了模型在将验证分解为一系列更简单的问题时,回答验证问题的准确性高于回答原始查询。其次,在回答验证问题集时,我们展示了控制模型的注意力,使其无法关注其之前的答案(分解CoVe)有助于减轻复制相同的幻觉。总的来说,我们的方法通过让同一个模型对(验证)其答案进行深思熟虑,大大提高了原始语言模型响应的性能。我们工作的一个明显扩展是将CoVe与工具使用相结合,例如在验证执行步骤中使用检索增强,这可能会带来进一步的收益。

尽管我们的验证链(CoVe)方法旨在减少幻觉,但它并没有完全从生成中移除幻觉。这意味着,即使CoVe改进了基线,它仍然可以为给定查询生成不正确或误导性的信息。我们还注意到,在我们的实验中,我们只解决了以直接陈述的事实不准确形式出现的幻觉。然而,幻觉可能以其他形式出现,例如在推理步骤中出错,作为观点的一部分等。我们还注意到,CoVe生成的内容附带验证,如果用户查看,会增加其决策的可解释性,但代价是输出中生成更多令牌,从而增加计算成本,与其他推理方法(如思维链)类似。

我们的方法旨在通过花费更多时间来识别自己的错误,使大型语言模型产生改进的响应。虽然我们已经证明了这确实有所改进,但改进的上限显然受到模型整体能力的影响,例如在识别和知道它知道什么方面。在这方面,正如第2节讨论的,一个与我们的工作平行的研究方向是语言模型使用外部工具,以获取超出其权重存储范围的信息。虽然我们在这项工作中没有探索这一领域,但这些技术很可能与这里的发现相结合。

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

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

相关文章

深度解析 Android 系统属性

目录 Android系统属性 1.属性在哪里? 2.属性长什么样? 3.如何读写属性: 4.属性的作用 属性文件生成过程 如何添加系统属性 1.添加系统属性到 /system/build.prop 2.添加系统属性到 /vendor/build.prop 3.添加系统属性到 /product/b…

未来教育趋势:AI个性化培训如何推动企业与员工共赢

AI定制学习:重新定义个性化员工培训的未来 随着人工智能(AI)技术的迅猛发展,我们正目睹并亲历了AI在培训领域所引发的根本性变革。AI技术的整合不仅革新了知识传递的模式,而且重新塑造了个性化学习的内涵。依托于尖端算…

《深入Linux内核架构》第2章 进程管理和调度 (4)

目录 2.6 CFS调度类 2.6.1 数据结构 2.6.2 CFS操作 2.6.3 队列操作 2.6.4 选择下一个进程 2.6.5 处理周期性调度器 2.6.6 唤醒抢占 2.6 CFS调度类 即完全公平调度类,用于调度普通进程。 2.6.1 数据结构 struct sched_class fair_sched_class {.next &am…

Restormer: Efficient Transformer for High-Resolution Image Restoration

Abstract 由于卷积神经网络(CNN)在从大规模数据中学习可概括的图像先验方面表现良好,因此这些模型已广泛应用于图像恢复和相关任务。最近,另一类神经架构 Transformer 在自然语言和高级视觉任务上表现出了显着的性能提升。虽然 T…

【安全类书籍-2】Web渗透测试:使用Kali Linux

目录 内容简介 作用 下载地址 内容简介 书籍的主要内容是指导读者如何运用Kali Linux这一专业的渗透测试平台对Web应用程序进行全面的安全测试。作者们从攻击者的视角出发,详细阐述了渗透测试的基本概念和技术,以及如何配置Kali Linux以适应渗透测试需求。书中不仅教授读者…

vulnhub-----SickOS靶机

文章目录 1.信息收集2.curl命令反弹shell提权利用POC 1.信息收集 ┌──(root㉿kali)-[~/kali/vulnhub/sockos] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:10:3c:9b, IPv4: 10.10.10.10 Starting arp-scan 1.9.8 with 256…

邮件客户端 Thunderbird 简单配置

1. 基本情况介绍 原来使用的邮箱客户端是 Office 365 自带的 Outlook 365切换原因:新装电脑,发现原 Outlook 中的账号信息无法迁移,需要耗费大量时间手动配置邮箱使用的邮箱:微软 O365 邮箱、qq 邮箱、163 邮箱、公司私有邮箱 …

clickhouse介绍

ClickHouse 是一个开源的分布式列式数据库管理系统(DBMS),是专门针对 OLAP(联机分析处理)场景设计的。它由俄罗斯的 Yandex 公司开发,具有高性能、可扩展性强、支持 SQL 查询等特点。 ClickHouse 的主要特点包括: 列…

北斗卫星引领农机春耕新时代

北斗卫星引领农机春耕新时代 随着现代科技的快速发展,北斗卫星成为了农业领域不可或缺的利器。在农机自动驾驶系统的引领下,农机正逐渐实现自主操作,为农民节省了大量的时间和精力,并最大限度地提高了农作物的产量和质量。 北斗…

GEE高阶案例——利用eemont实现 GEE STAC 中任意栅格数据RASTER 的 STAC 信息

教程中主要是利用eemont包实现检查 GEE STAC 中任意 RASTER 数据集的 STAC 信息 简介 遥感影像是利用航空飞机、卫星等远距离无人机获取地球表面信息的技术,可以提供丰富的波段和属性信息。下面将详细介绍如何查看遥感影像的波段和属性信息。 1. 查看波段信息: 遥感影像通…

python之bootstrap样式

BootStrap <!DOCTYPE html> <html lang"en"> <head><!--注释--><meta charset"UTF-8"><title>Title</title><link rel"stylesheet" href"static/plugins/bootstrap-3.4.1/css/bootstrap.css…

MySQL | 内置函数

目录 1. 日期函数 2. 字符串函数 3. 数学函数 4. 其他函数 4.1. USER()查询当前用户 4.2. MD5(STR)对一个字符串进行md5摘要 4.3. DATABASE()显示当前正在使用的数据库 4.4. PASSWORD()函数&#xff0c;MySQL使用该函数对用户进行加密 4.5. IFNULL(VAL1, VAL2)如果VAL1…

window下安装并使用nvm(含卸载node、卸载nvm、全局安装npm)

window下安装并使用nvm&#xff08;含卸载node、卸载nvm、全局安装npm&#xff09; 一、卸载node二、安装nvm三、配置路径和下载源四、使用nvm安装node五、nvm常用命令六、卸载nvm七、全局安装npm、cnpm八、遇到的问题 nvm 全名 node.js version management&#xff0c;顾名思义…

Vivado中的五种仿真模式比较

Vivado中的五种仿真模式 在数字电路设计过程中&#xff0c;通常涵盖三个主要阶段&#xff1a;源代码编写、综合处理以及电路的实现&#xff0c;相应地&#xff0c;电路仿真的应用也与这些阶段紧密相关。根据不同设计阶段的需求&#xff0c;仿真可以被划分为RTL行为级仿真、综合…

练习4-权重衰减(李沐函数简要解析)

环境:练习1的环境 代码详解 0.导入库 import torch from torch import nn from d2l import torch as d2l1.初始化数据 这里初始化出train_iter test_iter 可以查一下之前的获取Fashion数据集后的数据格式与此对应 n_train, n_test, num_inputs, batch_size 20, 100, 200, …

Redis的安全配置有哪些建议?如何防止未授权访问?Redis的监控与告警策略是怎样的?如何及时发现并解决潜在问题?

Redis的安全配置有哪些建议&#xff1f;如何防止未授权访问&#xff1f; Redis的安全配置对于保护系统免受未授权访问和其他潜在风险至关重要。以下是一些建议的安全配置措施&#xff1a; 设置密码并禁用不安全的命令&#xff1a; 为Redis实例设置一个强密码&#xff0c;确保密…

鸿蒙原生应用开发-ArkTS语言基础类库多线程CPU密集型任务TaskPool

CPU密集型任务是指需要占用系统资源处理大量计算能力的任务&#xff0c;需要长时间运行&#xff0c;这段时间会阻塞线程其它事件的处理&#xff0c;不适宜放在主线程进行。例如图像处理、视频编码、数据分析等。 基于多线程并发机制处理CPU密集型任务可以提高CPU利用率&#xf…

三款.NET代码混淆工具比较分析:ConfuserEx、Obfuscar和Ipa Guard

随着.NET应用程序的广泛应用&#xff0c;保护知识产权和防止逆向工程的需求逐渐增长。本文将详细介绍三款知名的.NET代码混淆工具&#xff1a;ConfuserEx、Obfuscar和Ipa Guard&#xff0c;帮助读者全面了解其功能特点和应用场景。 一、ConfuserEx ConfuserEx是一个.NET代码混…

文件太大无法拷贝到u盘怎么办?可能是这个隐藏原因~

有时候我们新买的U盘&#xff0c;明明有64G的存储空间&#xff0c;怎么一个4.5G的视频想保存到U盘里会提示“文件太大”无法保存呢&#xff1f; 常见的U盘格式有FAT、FAT32、NTFS等&#xff0c;其中FAT32不支持存储单个文件体积大于4G的文件。下面教大家如何对U盘格式进行检测呢…

二开飞机机器人群发,实现自动给多个频道发送消息

频道1 频道2 二开代码部分&#xff1a; const CChatIdListprocess.env.CHANNEL_CHAT_ID_LIST; var channelChatIdArray CChatIdList.split(,);channelChatIdArray.forEach(function(item) {console.log(item); // 这里可以替换为您需要对数组中每个值进行的操作bot.sendM…