Chain-of-Verification Reduces Hallucination in Lagrge Language Models阅读笔记

news/2024/9/11 4:02:10/ 标签: 语言模型, 人工智能

来来来,继续读文章了,今天这个是meta的研究员们做的一个关于如何减少LLM得出幻觉信息的工作,23年底发表。文章链接:https://arxiv.org/abs/2309.11495

首先,这个工作所面向的LLM的问答任务,是list-based questions或者a longform generation of multiple freeform sentences,可以简单看成所得答案应该是一个列表答案来组成,看这种情境下的问答,咱们该怎么去减少幻觉的情况。

作者是这么说的:

The benchmarks we use range from list-based questions where the required answer is a set of entities, to where the answer is a longform generation of multiple freeform sentences.

文章使用的实验数据有:WikiData,Wiki-Category List,MULTISPANQA和LONGFORM GENERATION OF BIOGRAPHIES。

WikiData,作者的问题是这么设计的:Who are some [Profession]s who were born in [City]? 比如,Who are some politicians who were born in Boston?这些问题的答案是一列实体能够通过wikidata获取得到。

Wiki-Category List,用的是2023年一篇paper给出的QUEST dataset(Chaitanya Malaviya, Peter Shaw, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. Quest: A retrieval dataset of entity-seeking queries with implicit set operations. arXiv preprint arXiv:2305.11694, 2023.),这个数据集里包含了一些维基百科的类目列表,因此,作者将这些类目名字转化为对应的问题,即Name some XXXXX,比如Name some Mexican animated horror films or Name some Endemic orchids of Vietnam。

MULTISPANQA,用的是2022年一篇paper给出的MultiSpanQA dataset(Chaitanya Malaviya, Peter Shaw, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. Quest: A retrieval dataset of entity-seeking queries with implicit set operations. arXiv preprint arXiv:2305.11694, 2023.),一个问题里包括多个独立答案,比如Q:Who invented the first printing press and in what year?, A: Johannes Gutenberg, 1450.

LONGFORM GENERATION OF BIOGRAPHIES,即利用LLM给出一个人的简介,prompt本身很简单: Tell me a bio of <entity>.

这篇文章的算法机制示例图非常给力,因此我们可以直接看图:

首先,举个🌰,作者让LLM回答:请列举几个出生在纽约的政治家。LLM确实像模像样得给出一个答案列表:希拉里克林顿、川普等等等。然后论文作者根据给出的答案,生成一批需要再次确认的问题,即希拉里克林顿在哪里出生?川普在哪里出生?等等。这个时候LLM就会给出更加正确以及贴近事实的答案了。通过这些确认问题,相当于把LLM最初的答案列表确认了一遍,以返回最终答案。

作者把Chain of Verification的主要步骤分成了四步:

首先,就是利用LLM根据所给query生成答案。

然后,确认咱的verification plan,根据这个问题答案,需要生成一些需要确认的问题(which could help to self-analyze)。

接着,执行确认问题,然后看确认问题得到的答案和最开始的答案是否连贯或者有不一样的地方。

最后,根据确认问题的答案和初始答案之间的关系,给出最终的response。

其中,1、2、4步都是可以通过single prompt实现的,第3步则是需要两步,先execute verification,然后再判断两次的答案之间的关系,prompt格式如下(文章的prompt示例都给出来了哈,在附录部分,大家可以去看看,拿来用用) :

最后的最后,相比于直接让LLM给出多个选项,感觉这个工作就相当于是,让LLM给出多个选项+让LLM单独确认每个选项,最后得到答案的准确率确实能够更高哈。


http://www.ppmy.cn/news/1474714.html

相关文章

使用Nginx实现高效负载均衡

概述 Nginx是一款高性能的HTTP和反向代理服务器&#xff0c;广泛用于Web服务的负载均衡。它能有效分发流量至多个后端服务器&#xff0c;提高网站的可用性和响应速度&#xff0c;同时增强系统的可扩展性和安全性。本文将介绍如何配置Nginx进行负载均衡&#xff0c;并提供具体的…

服务发现与注册:Eureka与Consul

在微服务架构中&#xff0c;服务发现与注册是一个非常重要的部分。通过服务发现机制&#xff0c;微服务能够相互找到并进行通信&#xff0c;而不需要了解彼此的具体地址。本文将详细介绍两种主流的服务发现与注册框架&#xff1a;Eureka和Consul&#xff0c;并提供相应的代码示…

Web开发 —— 放大镜效果(HTML、CSS、JavaScript)

目录 一、需求描述 二、实现效果 三、完整代码 四、实现过程 1、HTML 页面结构 2、CSS 元素样式 3、JavaScript动态控制 &#xff08;1&#xff09;获取元素 &#xff08;2&#xff09;控制大图和遮罩层的显隐性 &#xff08;3&#xff09;遮罩层跟随鼠标移动 &…

C# Winform 系统方案目录的管理开发

在做一个中等复杂程度项目时&#xff0c;我们通常有系统全局配置&#xff0c;还要有对应的方案目录的管理和更新。 比如我们有如下需求&#xff1a;开发一个方案管理&#xff0c;可以新建、打开和保存方案&#xff0c;同时还需要保存方案中的各种文件。我设计的采用目录管理和…

【YashanDB知识库】表收集统计信息默认阈值引起SQL执行效率差

【问题分类】性能优化 【关键字】统计信息&#xff0c;阈值&#xff0c;执行计划 【问题描述】表新增87w数据自动收集统计信息任务没有启动导致SQL执行计划变差 【问题原因分析】 CUS_REGISTER_READ 数据总量是18374074&#xff0c;插入81万&#xff0c;统计信息失效的阈值是…

流程图怎么做?有三种制作方法

流程图怎么做&#xff1f;在日常生活和工作中&#xff0c;流程图作为一种直观展示步骤、流程或决策路径的工具&#xff0c;扮演着不可或缺的角色。它不仅能够帮助我们理清思路、规划任务&#xff0c;还能促进团队协作与沟通。那么&#xff0c;如何高效地绘制流程图呢&#xff1…

Objective-C 自定义渐变色Slider

文章目录 一、前情概要二、具体实现 一、前情概要 系统提供UISlider&#xff0c;但在开发过程中经常需要自定义&#xff0c;本次需求内容是实现一个拥有渐变色的滑动条&#xff0c;且渐变色随着手指touch的位置不同改变区域&#xff0c;类似如下 可以使用CAGradientLayer实现渐…

Web开发:一个可拖拽的模态框(HTML、CSS、JavaScript)

目录 一、需求描述 二、实现效果 三、完整代码 四、实现过程 1、HTML 页面结构 2、CSS 元素样式 3、JavaScript动态控制 &#xff08;1&#xff09;获取元素 &#xff08;2&#xff09;显示\隐藏遮罩层与模态框 &#xff08;3&#xff09;实现模态框拖动效果 一、需求…

VMware安装Ubuntu以及利用vscode远程Ubuntu

一、VMware安装Ubuntu &#xff08;1&#xff09;VMware安装Ubuntu主要参考此文VMware虚拟机安装Ubuntu22.04图文教程&#xff08;超详细&#xff01;&#xff01;&#xff01;&#xff09;。 &#xff08;2&#xff09;VMware密钥参考此文24年VMware 17密钥(附下载链接&#…

《C++并发编程实战》笔记(一、二)

一、简介 抽象损失&#xff1a;对于实现某个功能时&#xff0c;可以使用高级工具&#xff0c;也可以直接使用底层工具。这两种方式运行的开销差异称为抽象损失。 二、线程管控 2.1 线程的基本控制 1. 创建线程 线程相关的管理函数和类在头文件&#xff1a; #include <…

Memcached高并发挑战:性能优化与实战策略

标题&#xff1a;Memcached高并发挑战&#xff1a;性能优化与实战策略 在高并发的网络应用场景中&#xff0c;Memcached作为一项高效的分布式内存缓存系统&#xff0c;其性能表现尤为关键。然而&#xff0c;面对海量的请求和数据&#xff0c;Memcached的性能如何&#xff0c;以…

Spring Boot 框架知识汇总

1、什么是SpringBoot&#xff1f; 通过Spring Boot&#xff0c;可以轻松地创建独立的&#xff0c;基于生产级别的Spring的应用程序&#xff0c;您可以“运行"它们。大多数Spring Boot应用程序需要最少的Spring配置&#xff0c;集成了大量常用的第三方库配置&#xff0c;使…

【力扣C语言】每日一题—第50题,Pow(x,n)

题目 实现x的n次幂。 问题分析&#xff1a; 当n大于零&#xff0c;等于零&#xff0c;小于零时都需要分析 思路&#xff1a;反复迭代&#xff0c;利用通过二进制位进行缩短计算时间。 力扣通过代码&#xff1a; ​ double myPow(double x, int n) {long nnn;double ret1;…

R语言学习笔记3-基本类型篇

R语言学习笔记-基本类型篇 基本类型介绍数值型&#xff08;Numeric&#xff09;整数型&#xff08;Integer&#xff09;浮点数型&#xff08;Double&#xff09;数值运算数值型 NA&#xff08;缺失值&#xff09; 字符型&#xff08;Character&#xff09;字符型的特点和用途基…

C++进阶:继承和多态

文章目录 ❤️继承&#x1fa77;继承与友元&#x1f9e1;继承和静态成员&#x1f49b;菱形继承及菱形虚拟继承&#x1f49a;继承和组合 ❤️多态&#x1fa77;什么是多态&#xff1f;&#x1f9e1;多态的定义以及实现&#x1f49b;虚函数&#x1f49a;虚函数的重写&#x1f499…

鸿蒙开发工程师面试题-架构篇

1. 假如让你负责鸿蒙App架构设计&#xff0c;你会关注哪些方面&#xff1f; 分层架构设计&#xff1a; 将应用划分为产品定制层、基础特性层和公共能力层&#xff0c;以降低层间依赖性&#xff0c;提升代码可维护性。通过分层架构设计&#xff0c;进一步明确每层的职责和层间交…

实现基于Elasticsearch的搜索服务

实现基于Elasticsearch的搜索服务 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. Elasticsearch简介 Elasticsearch是一个开源的分布式搜索引擎&#xff0c;提供强大的全文搜索和分析功能。本文…

快速上手文心一言:让创作更轻松

引言 在当今信息爆炸的时代&#xff0c;如何高效地进行内容创作成为了许多人的关注焦点。百度推出的文心一言&#xff0c;作为一款强大的AI写作工具&#xff0c;为内容创作者提供了全新的解决方案。本文将带您快速上手文心一言&#xff0c;让创作变得更轻松、更高效。 什么是…

FastReport 指定sql,修改数据源 ( 非DataSet修改 )

FastReport 指定sql&#xff0c;修改数据源&#xff0c;非DataSet修改 介绍报告文件&#xff1a; codetest.frx 文件核心代码&#xff1a;&#xff08;扩展&#xff09;小结一下&#xff1a; 介绍 在FastReport中&#xff0c;经常会遇到需要给 sql 加条件的情况。 &#xff0…

LeetCode 445.两数相加||

1.题目要求: 给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外&#xff0c;这两个数字都不会以零开头。示例1&#xff1a;输入&#xff1a;l1 [7,2,4,3], l2 …