减少 LLM 幻觉方法--CoVe

​来自于 Meta AI,原文链接:https://arxiv.org/abs/2309.11495

LLM 经常遇到的主要问题就是幻觉,减少幻觉的方法大致可分为三类:训练时校正、生成时校正和通过增强(使用工具)进行校正。

  • 在训练时校正的方法中,一种常见的方法是试图通过训练或调整模型权重来降低幻觉生成的概率,从而增强 encoder-decoder 或者 decoder-only 语言模型的生成结果。例如利用强化学习,对比学习方法等。

  • 在生成时校正的方法中,一个常见的方法是在基本 LLM 的概率最高的结果中做出推理决策,以使其结果更加可靠。本文也是属于这个类别。

  • 在通过增强(使用工具)进行校正的方法中,比较经典的方法就是 RAG。简单来说就是检索外部资料作为输入,传入到最后的生成器(LLM)中得到最终结果。因为有相关辅助资料的帮助,LLM 会很大程度上减少幻觉的出现。

Chain-of-Verification(CoVe)

在这里插入图片描述

本文提出的方法中一个关键假设是,当使用合适的 prompt 时,大语言模型(LLM)可以做到生成并且执行如何验证自己结果的计划,以检查自己的工作,并最终将该分析纳入改进的响应中。(简单来说就是可以产生一个自我检查的方法判断自己的产出是否正确,最终会将所有结果输入 LLM 中得到最终输出)关键步骤如下:
在这里插入图片描述

这些步骤中的每一个都是对同一个 LLM 中执行不同的 prompt 获得所需的响应。

Baseline Response

对于一个给定的查询,作者使用正常的 LLM 生成,没有特殊的技巧。

Plan Verifications

以原始查询和基线响应为条件,通过 prompt 生成一系列验证问题,以检测原始基线中的内容是否属实。

例如,对于一个 longform 模型的返回结果包含“墨西哥-美国战争是1846年至1848年间,美国和墨西哥之间的武装冲突”,那么检查这些日期的一个可能的验证问题可能是“墨西哥-美洲战争何时开始和结束”。

Execute Verifications

PS. 在这个过程中可以使用 RAG 或者检索验证的方法来判断回答内容是否存在幻觉。作者在 CoVe 的所有步骤中不打算使用任何工具只使用 LLM 本身。

作者提出了 4 种检查的方法:

Joint

通过使用一个 LLM prompt 得到第二步和第三步(即 Plan Verifications 和 execute verification )的结果。LLM 的 prompt 包含 few-shot 样例,包括验证问题及其答案。在这个方法中不需要单独的 prompt。

其中一个潜在的问题是,由于验证问题必须以 LLM 上下文中的基线响应为条件,并且该方法是将两个内容联合在一起查询到。因此验证问题的答案也必须以初始响应为条件,可能会增加重复的可能性。这意味着验证问题可能会产生与原始基线响应类似的幻觉。

2-Step

为解决 Joint 方法中提到的问题,作者提出将第二步和第三步分开,分别用不同的 prompt 得到最后的结果。具体步骤如下:

  • 通过第一步中的基线响应构建第二步的 prompt, 从而生成验证问题。

  • 对验证问题进行回答的 prompt 中只包含问题,而不包含原始基线响应。这里会用同一个 prompt 回答所有的问题。

Factored

为解决 Joint 方法提到的问题,另一种更复杂的方法是所有问题都生成不同的 prompt 来回答。其特点在于:

  • 消除基线反应中的任何潜在干扰

  • 消除答案上下文之间的任何潜在影响

  • 可以潜在地处理更多的验证问题,因为它们不必都符合同一个上下文

  • 虽然这可能在计算上更昂贵,并且需要执行更多的LLM提示,但它们可以并行运行,因此可以进行批处理

Factor+Revise

在回答验证问题后,必须隐式或显式交叉检查这些答案是否与原始响应一致。

此方法中,作者新增了一个额外的 LLM prompt 执行交叉验证。与回答验证问题不同,交叉验证阶段需要以基线响应和验证问答为条件。

因此每个问题都有一个交叉检查 prompt,其中包含 few-shot 样例显示所需的输出。例如,如果最初的基线回复包含短语“1845年美国吞并德克萨斯州之后……”,会产生了一个验证问题,即德克萨斯州何时脱离墨西哥?如果答案是1836,则应通过该步骤检测到不一致。

Final Verified Response

最后的 prompt 会包含 few-shot 样例,其中上下文考虑了之前的所有推理步骤、基线响应和验证问答对,以便进行更正。

实验结果

作者使用 Llama 65B 作为基础模型,对比了 Zero-shot,Zero-shot with Chain-of-thought 以及 few-shot 的方法。

PS. 在 zero-shot with CoT 的实验中,作者发现指令微调模型在被查询时往往会生成无关的内容。因此作者在提示中增加了一行:“List only the answers separated by a comma” 来限制输出。

实验结果如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

通过实验可以发现:

  • CoVe 在三个任务的准确性上都有明显提高
  • CoVe 的表现优于 ChatGPT 等模型
  • 指令调整和 CoT 不能减少幻觉
  • 进一步的明确推理有助于消除幻觉
  • 与长格式查询相比,短格式验证问题的回答更准确
  • 基于 LLM 的验证问题优于启发式方法(Table 4)
  • 开放式验证问题优于基于是/否的问题 (Table 4)

限制

  • 虽然 CoVe 方法试图减少幻觉,但并没有完全消除幻觉。这意味着 CoVe 仍然可以为给定的查询生成不正确或误导性的信息,即使它比基线有所改进。

  • 实验中作者用直接陈述事实的形式来处理幻觉。然而,幻觉也可能以其他形式出现,例如在不正确的推理步骤中,作为观点的一部分等。

  • CoVe 都带有验证,如果人工查看,这些验证会为其决策增加更多的可解释性,但由于在输出中生成更多的 token,计算费用会增加,这与思维链等其他推理方法类似。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

burp靶场--文件上传

burp靶场–文件上传 https://portswigger.net/web-security/file-upload/lab-file-upload-remote-code-execution-via-web-shell-upload 1.文件上传 1、原理:文件上传漏洞是指Web服务器允许用户将文件上传到其文件系统,而不充分验证文件的名称、类型、…

SpringMVC环境搭配

概述 Spring MVC是Spring Framework提供的Web组件,全称是Spring Web MVC,是目前主流的实现MVC设计模式的框架,提供前端路由映射、视图解析等功能 mvc是什么 MVC是一种软件架构思想,把软件按照模型,视图,控制器来划分…

linux基础学习(5):yum

yum是为了解决rpm包安装依赖性而产生的一种安装工具 1.yum源 1.1配置文件位置 yum源的配置文件在/etc/yum.repos.d/中 *Base源是网络yum源,也就是需要联网才能使用的yum源。默认情况下,系统会使用Base源 *Media源是光盘yum源,是本地yum源…

如何防止你的 Goroutine 泄露 Part2

文章目录 简述NumGoroutine演示案例pprofruntime/pprofhttp/net/pprof gopsLeak Test总结参考资料 上篇 文章说到,防止 goroutine 泄露可从两个角度出发,分别是代码层面的预防与运行层面的监控检测。今天,我们来谈第二点。 简述 前文已经介…

GPT应用开发:编写插件获取实时天气信息

欢迎阅读本系列文章!我将带你一起探索如何利用OpenAI API开发GPT应用。无论你是编程新手还是资深开发者,都能在这里获得灵感和收获。 本文,我们将继续展示聊天API中插件的使用方法,让你能够轻松驾驭这个强大的工具。 插件运行效…

【计算机网络】2、传输介质、通信方向、通信方式、交换方式、IP地址表示、子网划分

文章目录 传输介质双绞线无屏蔽双绞线UTP屏蔽双绞线STP 网线光纤多模光纤MMF单模光纤SMF 无线信道无线电波红外光波 通信方向单工半双工全双工 通信方式异步传输同步传输串行传输并行传输 交换方式电路交换报文交换分组交换 IP地址表示IP地址的定义IP地址的分类无分类编址特殊I…

6.STEP格式模型的AP214和AP203格式有什么区别?

STEP:(Standard for the Exchange of Product Model Data-产品模型数据交互规范),是一个比较全面的ISO标准 (ISO10303),该标准描述了如何表示和交换数字产品信息。 其实就是3D文件的一个通用格式,每个3D设计软件都支持…

基于深度学习的车牌识别(YOLOv5和CNN)

基于深度学习的车牌识别(YOLOv5和CNN) 目录 一、综述 二、车牌检测 一、综述 本篇文章是面向的是小白,想要学习深度学习上的应用,本文中目前应用了YOLO v5和CNN来对车牌进行处理,最终形成一个完整的车牌信息记录,…

强网杯2023 crypto

speed up 当时看到这个题目 也是觉得易懂 并且可以解出来的 但是数字实在是过大了兄弟 题目意思是计算2^27的阶乘,并获取得到每一位数的数字之和,flag即为该数字的sha256编码 2^27为134217728 gmpy2包是支持大数运算的,故利用其fac方法进行尝试,在等待一段时间后可以得到对…

第二次作业

1.基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab!!! 创建文件 编辑文件 创建目录 添加内容 重启系统 更改host文件 在host追加域名 最后在网页查看及可 2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网…

flutter获取地理定位:geolocator依赖详细用法

本文使用geolocator插件实现app物理定位功能。 该插件的主要功能有: 获取最后已知位置;获取设备当前位置;获取连续的位置更新;检查设备是否启用了定位服务;计算两个地理坐标之间的距离(米)&am…

数据结构——排序

前言:哈喽小伙伴们好久不见,也是顺利的考完试迎来了寒假。众所周知,不怕同学是学霸,就怕学霸放寒假,假期身为弯道超车的最佳时间,我们定然是不能懒散的度过。 今天我们就一起来学习数据结构初阶的终章——…

眼镜用超声波清洗机好不好?洗眼镜比较好用的超声波清洗机推荐

眼镜是我们日常生活中必不可少的用品,它不仅能帮助我们矫正视力,更是我们与外界进行交流的重要工具。然而,随着眼镜的长时间佩戴,眼镜表面容易积累灰尘、污垢和细菌,这不仅影响了我们的视野,也可能对眼睛健…

Docker(一)简介和基本概念:什么是 Docker?用它会带来什么样的好处?

作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! 一、简介 本章将带领你进入 Docker 的世界。 什么是 Docker? 用它会带来什么样的好处? 好吧,让我们带…

Python连接数据库的梳理

我们通常用的数据库类型主要有关系型数据库,非关系型数据库等,其中关系型数据库主要有Microsoft SQL Server ,MySQL,Oracle,SQLite等,常用的非关系型数据库包括Redis、DynamoDB,MongoDB等 ​​​​​​​ 一 关系型…

hdu 3709 Balanced Number

Balanced Number 题意 定义一个非负整数在第 p p p 位为 p i v o t pivot pivot 的权重为:这个数位的值 \times 这个数位到 p i v o t pivot pivot 的距离 之和。如果在 p i v o t pivot pivot 左边的权重等于在 p i v o t pivot pivot 右边的权重&#xf…

uni-app小程序:文件下载打开文件方法苹果安卓都适用

api: const filetype e.substr(e.lastIndexOf(.)1)//获取文件地址的类型 console.log(文档,filetype) uni.downloadFile({url: e,//e是图片地址success(res) {console.log(res)if (res.statusCode 200) {console.log(下载成功,);var filePath encodeURI(res.tempFilePath);…

python开发之远程开发工具对比

前言 除了本地开发外,还有一种常见的开发方式就是远程开发,一般情况是一台Windows或mac笔记本作为日常使用的电脑,另有一台linux服务器作为开发服务器。开发服务器的性能往往较强,这样远程开发的方式一方面可以让我们在习惯的系统…

Python网络爬虫步骤是什么?新手小白必看 !

python网络爬虫步骤:首先准备所需库,编写爬虫调度程序;然后编写url管理器,并编写网页下载器;接着编写网页解析器;最后编写网页输出器即可。 本教程操作环境:windows7系统、python3.9版&#xff…

Spring | Spring中的Bean--下

Spring中的Bean: 4.Bean的生命周期5.Bean的配装配式 ( 添加Bean到IOC容器的方式 依赖注入的方式 )5.1 基于XML的配置5.2 基于Annotation (注解) 的装配 (更常用)5.3 自动装配 4.Bean的生命周期 Spring容器可以管理 singleton作用域的Bean的生命周期,在此…