论文解读:Investigating the Factual Knowledge Boundary of Large Language Models with Retrieval Augmentati

2023-10-26

论文解读:Investigating the Factual Knowledge Boundary of Large Language Models with Retrieval Augmentation

image.png

一、动机

  • Knowledge-intensive任务通常需要借助外部的资源来回答问题,此时需要有一个retrieve模型来完成外部知识的检索;
  • 最近大模型(例如ChatGPT)可以解决此类问题,其在大量的文档数据上进行过预训练,并将大量的知识学习在参数里;
  • 然而现有的大模型依然存在一个未知的问题,即大模型是否有能力察觉到他们事实知识认知边界;
  • 本文则致力于研究检索式增强对于大模型生成能力的影响进行分析。主要关注三个问题:大模型察觉到它的事实知识边界程度、检索增强对大模型生成有什么影响、具有不同特征的辅助文档如何影响LLM。

二、问题定义

开放域问答中,给定一个问题 q q q以及一个文档库 D = { d i } i = 1 m \mathcal{D}=\{d_i\}_{i=1}^m D={di}i=1m,目标是给定一个回答 a a a
先前的方法是通过一个retriever检索文档库,并获得与问题相关的文档,随后使用机器阅读理解的方式回答问题。大模型可以直接利用模型本身的知识来回答问题,免于使用外部知识,即有: a = f L L M ( p , q ) a=f_{LLM}(p, q) a=fLLM(p,q),其中 p p p表示prompt。
如果使用检索增强的方式,则为 a = f L L M ( p , q , L ) a=f_{LLM}(p, q, \mathcal{L}) a=fLLM(p,q,L),其中 L \mathcal{L} L表示检索得到的support document。

为了能够探测大模型的知识,需要先设计指令来让大模型完成相应的测试任务。

Instruction设计

(1)QA模式
提出两种类型:

  • Normal Setting:即知让大模型根据参数知识来回答问题。指令如下所示:

Answer the following question based on your internal knowledge with one or few words. · · ·

  • 检索式:让大模型结合参数内的知识和检索到的外部知识一起进行回答。指令如下所示:

Given the following information: · · · Answer the following question based on the given information or your internal knowledge with one or few words without the source. · · ·

(2)判别模式
另一种方法则是让大模型去做判定。也存在两种模式:

  • Priori judgement:在大模型做出回答之前,先让其判断是否能够回答该问题。指令如下所示:

Are you sure to accurately answer the following question based on your internal knowledge, if yes, you should give a short answer with one or few words, if no, you should answer ‘Unknown’. · · · ”

  • Posterior judgement:在大模型回答之后,再让大模型来判断自己生成的结果是否准确。指令如下所示:

Can you judge if the following answer about the question is correct based on your internal knowl-edge, if yes, you should answer True or False, if no, you should answer ‘Unknown’. · · · ”

三、实验

数据集

Natural Question、TriviaQA、HotpotQA

评价指标

QA模式:EM、F1
判别模式:

  • Give-up:大模型放弃回答的问题的占比,可以估算为大模型回答的置信度;
  • Right/G:大模型放弃回答,但实际上能够正确回答的概率;
  • Right/NotG:大模型没有放弃回答,且实际上能够正确回答的概率;
  • Eval-Right:大模型评估其回答是正确的问题的比例;
  • Eval-ACC:大模型对答案的评估(正确或错误)与事实相符的问题的百分比。

检索器

采用下面三种进行检索:
image.png
ChatGPT表示使用ChatGPT插件来检索相关的文档。

模型

对比text-davinci-003和gpt3.5-turbo

实验与结论

(1)大模型本身很难知道自己的知识边界,且会过度自信。
image.png
(2)LLM无法充分利用自己所拥有的知识,而检索增强可以作为LLM的宝贵知识补充。
image.png
可以知道当用高质量的文档检索器后,大模型的放弃回答的比例下降了很多,说明给定外部知识大模型是可以有效回答问题的。
(3)检索增强提高了大模型感知事实知识边界的能力。
如上表可知给定检索的知识,大模型priori judgement的准确率很高。
(4)更多的文档可以进一步提高检索增强大模型的性能。
image.png
当检索的文档越多时,EM指标会呈现上升趋势,Given Up率也会下降很多。
(5)检索增强可以改变大模型对不同查询类别的偏好。
image.png
(6)当提供更高质量的检索文档时,大模型可以表现出很强的质量保证能力和知识边界感知能力。
image.png
当检索的文档是准确时(Golden),其不论是EM、F1指标,还是Eval-Acc、Eval-Right都很高,说明高质量的检索文档可以提升模型的知识边界感知能力的。
7)大模型会依赖于检索到的文档。
(8)大模型对检索到的文档的置信度和依赖程度取决于问题和文档之间的相关性。
上表中的几个检索方式的对应Question与检索文档的相关性排序为:golden doc- uments > retrieved documents > highly-related incorrect documents > weakly-related incorrect documents > random incorrect documents.
可知EM、F1等指标也几乎呈现此顺序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

论文解读:Investigating the Factual Knowledge Boundary of Large Language Models with Retrieval Augmentati 的相关文章

  • 如何在 XAML 中自动调整列表视图的高度

    我的列表视图对象接收图像 ID 号和概要 概要的大小各不相同 因为有些有空格返回 我注意到 ListView 有一个可以设置的行高 我现在设置为 250 但它只能是一个固定值 那么会发生什么 我的网格对于 ListView 来说变得太大 导
  • 判断一个点是否在多面体内部

    我试图确定某个特定点是否位于多面体内部 在我当前的实现中 我正在研究的方法采用我们正在寻找多面体面的数组 在本例中为三角形 但稍后可能是其他多边形 的点 我一直在尝试根据这里找到的信息进行工作 http softsurfer com Arc
  • 使用 lodash 按值(整数)对数组进行排序

    我真的很挣扎 但我找不到解决方案 我有一个数组 我想按值 所有整数 对其进行排序 我想 好吧 让我们使用 lodash 肯定有一个方便的功能 不知怎的 我不知道该怎么做 到目前为止我得到了这个 myArray 3 4 2 9 4 2 如果我
  • 非通用接口是通用接口的同义词

    我在 C 中有一个通用接口 并且几乎总是将它与其中一种类型一起使用 我想为该类型创建一个非通用接口并使用它 假设我有以下代码 public interface IMyGenericList
  • jquery:卸载还是卸载之前?

    当用户从当前页面导航时 我想向服务器发布一条消息 我现在正在使用 unload 但结果不可靠 即使在其文档中也是如此 卸载事件的准确处理 各个版本都有所不同 浏览器 例如 某些版本 Firefox 的触发事件当 链接已被跟踪 但当 窗口已关
  • 是 F# 映射上的迭代还是集合中序遍历?

    AFAIK F Map 和 set 被实现为红黑树 所以我猜这些的迭代将是有序遍历 我做了一些测试 迭代结果总是排序的 但我想确定一下 是按顺序遍历吗 MSDN 上的文档非常适合解决这个问题 例如 返回值Set toSeq http msd
  • 为什么/何时将运算符指定为显式很重要?

    我借用了下面的代码另一个问题 https stackoverflow com a 7305947 93394 稍作修改 在我的代码中使用 internal class PositiveDouble private double value
  • 预期的 catch() 或返回(promise/catch-or-return)

    我是 JavaScript 新手 这是我在 javascript 中第一个在 firebase 上部署函数的函数 得到这个错误 eslint Unexpected function expression prefer arrow callb
  • 奇怪的 Atomikos 异常 - init() 中的错误:日志已在使用中?

    我们尝试在多个本地环境上运行相同的 Web 应用程序 该应用程序使用 Atomikos 作为事务管理器 每个环境都使用相同版本的 spring atomikos tomact 等 并具有相同的配置文件 其中一些工作正常 但其中之一 当我们尝
  • 使用 Python 2.7 解析 msg/eml 文件

    有没有可以解析msg或eml文件的库 我编写了一个脚本 一旦将电子邮件转换为 txt 文件 就会对其进行解析 但是我找不到一个电子邮件客户端 可以让我轻松地将电子邮件从 gui 拖放到文件夹中作为 txt 文件 如果有人知道这一点 我会很高
  • 如何仅在表格内应用边框?

    我想弄清楚如何仅在表格内添加边框 当我做 table border 0 table td table th border 1px solid black 边框围绕整个表格以及表格单元格之间 我想要实现的是仅在表格单元格周围的表格内部有边框
  • Flutter Image 对象到 ImageProvider

    我必须从 base64 读取图像源才能进行 flutterImage https api flutter dev flutter widgets Image class html object Image img Image memory
  • 与 ng-include 一起使用时自动对焦不起作用

    我想将焦点设置到部分视图中的输入框之一 喜欢 并包括这一点 当页面第一次加载时 这工作正常 但是当我更改部分时 自动对焦不起作用 我相信这是因为页面加载时的自动对焦工作 它如何在这里工作 我不确定如何解决页面重新加载的问题 但我认为我们可以
  • 哪个信号被传递到信号处理程序中死锁的进程

    我有一个来自调用信号处理程序后死锁的进程的核心转储 如何确定传送了哪个信号以及是谁发送的 GDB 为接收信号的线程生成的回溯如下 信号处理程序在第 15 帧中被调用 gdb bt 0 0x00007fa9c204654b in sys fu
  • 如何在没有 root 访问权限的情况下在 Ubuntu 上安装 Google Test?

    我正在尝试根据以下方式安装 Google Test这个答案 https stackoverflow com a 21314020 6560773在没有 root 访问权限的 Ubuntu 上 因为我需要在工作中学习和使用它 设法在我自己的用
  • 列出所有会话信息

    我想在页面中显示我的asp net页面 aspx 的所有会话信息 我怎样才能做到这一点 编程语言是C 这两种方法对我有用 稍微改进和纠正了大卫的答案 第一种方法 for int i 0 i lt Session Count i var cr
  • 获取后台进程的退出代码

    我有一个从我的主 bourne shell 脚本中调用的命令 CMD 该命令需要很长时间 我想修改脚本如下 作为后台进程并行运行命令 CMD CMD 在主脚本中 有一个循环每隔几秒监视生成的命令 该循环还向标准输出回显一些消息 指示脚本的进
  • Java 中的无符号字节

    Java 中的字节默认是有符号的 我在其他帖子中看到 具有无符号字节的解决方法类似于 int num int bite 0xFF 有人可以向我解释一下为什么它会起作用并将有符号字节转换为无符号字节 然后将其转换为相应的整数吗 ANDing一
  • 无法将 event.target 转换为字符串

    为了识别用户单击的元素 我尝试使用事件对象target document click function e var str e target toString console log str if str indexOf some clas
  • 为什么表上主键的存在可以显着提高列存储索引的性能?

    我试图了解列存储索引可以在表上提供什么样的性能提升 该表大约有 370 万行 11 列 并存储为堆 即没有主键 我在表上创建列存储索引并运行以下查询 SELECT Area Family AVG Global Sales Value AS

随机推荐

  • Python 工匠:编写条件分支代码的技巧

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由鹅厂优文发表于云 社区专栏 作者 朱雷 腾讯IEG高级工程师 Python 工匠 是什么 我一直觉得编程某种意义是一门 手艺 因为优雅而高效的代码 就如同完美的手工艺品一样让人
  • 2017年总结和2018年规划(几年前帖子,私密变公开后时间就变了)

    2017年浑浑噩噩 一直处于摇摆不定的局面 2018年重新找了个工作 必须要努力啦 月薪16000 图形还是要和师兄这边搞搞UE4 图像这边学学计算机视觉 希望能通过试用期 加油
  • 左程云算法笔记025

    map和哈希map的使用 cpp 此文件包含 main 函数 程序执行将在此处开始并结束 include
  • LINUX下查看点云图————point cloud(.ply .vtk .pcd)

    首先 你要确定点云的格式 pcd vtk 还是 ply 如果是 pcd vtk 那么可以用pcl工具查看 1 安装pcl 官网链接点击打开链接 sudo add apt repository ppa v launchpad jochen s
  • python可使用什么退出死循环_碰到python死循环后要怎么退出结束?

    每当编写代码行云流水 却突然碰到代码无限循环 这是非常让人头疼的 难道直接退出程序运行嘛 答案肯定是不行 怎么跳出呢 一起来看下吧 案例 遇到的问题是这样的 如果我定义了一个死循环线程我该如何终止它 我发现用全局变量的方法根本不好使 pys
  • python基础 - networkx 绘图总结

    目录 1 创建方式 2 基本参数 3 DiGraph 有向图 4 Graph 无向图 5 有向图和无向图互转 6 一些精美的图例子 networkx是一个用Python语言开发的图论与复杂网络建模工具 内置了常用的图与复杂网络分析算法 可以
  • 【科普向】LaTeX简介(一篇极简的 LaTeX 介绍文章)

    文章目录 LaTeX诞生背景 TeX和LaTeX LaTeX主要功能 文档结构 数学公式 公式块 我们平时在word里新建一个doc x 文件后 输入内容 调整页边距 字体大小 行间距等待 然后交给打印机打印就可以了 如果你写了一篇关于新疆
  • Qt获取控件位置,坐标总结

    总结的结果是 QMouseEvent中两类坐标系统 一类是窗口坐标 一类是显示器坐标 总结一 经过试验 QMouseEvent globalPos 和 QCursor pos 效果一样 但是Qt帮助文档说不一样 可是我获得值确实相同的 QC
  • 手把手搭建Python量化交易平台-2:量化策略的原理与整体架构

    摘要 探讨量化策略的整体架构 一 量化策略的原理与整体架构 1 输入数据 来自于金融数据共享平台 1 行情或技术面数据 K线数据 MA均线数据 MACD数据 2 财务或基本面数据 国家宏观经济 行业经济 公司财务数据 3 自定义数据 4 投
  • 看懂今天这个!你就是个真正的javaer!

    昨天 猿人君已经教会你搞对象了 听说 由于文字篇幅有限 讲得不明白的地方 大家关注公主号猿人工厂 或者加入qq群765605694 猿人工厂君 手把手的免费教你 恭喜你 从此开始一段新的人生 跨越上和大海 抽象人山人海 在过去的几天里 你已
  • 单词统计

    题目描述 输入一行字符 统计其中有多少个单词 单词之间以空格分隔 输入 一行英文字符 含空格 输出 单词的个数 单独占一行 样例输入 I am a boy 样例输出 4 代码 Java版 import java util Scanner p
  • 毕业后的五年拉开大家差距的原因在哪里?

    有人工作 有人继续上学 大家千万不要错过这篇文章 能看到这篇文章也是一种幸运 真的受益匪浅 对我有很大启迪 这篇文章将会改变我的一生 真的太好了 希望与有缘人分享 也希望对有缘人有所帮助 看完之后有种 相见恨晚 的感觉 特别激动 希望大家好
  • Eclipse环境下通过Cygwin使用NDK编译jni程序

    一 认识Cygwin NDK和jni 首先来认识一下什么是Cygwin NDK和jni Cygwin Cygwin是一个在windows平台上运行的unix模拟环境 它对于学习unix linux操作环境 或者从unix到windows的应
  • java 动态生成 visio----aspose.diagram for java

    最近在鼓捣java 如何生成visio图表 苦于没有API 找到了aspose这个神器 下载试用版本之后 发现最多只能生成10个元素 而且有水印 下面尝试如何去掉水印与元素限制 本文章所涉及的软件均可从网上获取 但是只能用于学习之用 不能用
  • idea使用http客户端上传文件

    controller 文件上传 param file return PostMapping value fileUpload ResponseBody public String uploadSkuImage RequestParam fi
  • 初始C语言——从大到小排序

    三个数的排序 三个数之间两两比较类似于三个数中显示最大值 两两比较 但是有一个问题 最大值问题只需要输出最大值即可而排序问题则还要排序 那么我们是否可以确定三个位置x y z将最大值依次赋值给x y z确保输出时x y z的位置是从左到右输
  • 真二次元!动漫形象风格迁移

    点击上方 机器学习与生成对抗网络 关注星标 获取有趣 好玩的前沿干货 文章 机器之心 一张输入人脸图像 竟能生成多样化风格的动漫形象 伊利诺伊大学香槟分校的研究者做到了 他们提出的全新 GAN 迁移方法实现了 一对多 的生成效果 在 GAN
  • 【JVM】JVM-codecache内存区域介绍

    1 概述 转载 https leokongwq github io 2016 10 12 maven test html 2 JVM codecache内存区域介绍 大家都知道JVM在运行时会将频繁调用方法的字节码编译为本地机器码 这部分代
  • 网络层_数据平面_四(题目完成)

    网络 引入网络层学习 分组交换 虚电路VC 数据报网络 CIDR DHCP 路由器 IP数据报格式 IPv4 IPv6 过渡策略 双栈 隧道 特殊IP地址即内部IP地址 流表中匹配 动作 计算机自顶向下方法 第七版课后习题及答案 正在更新中
  • 论文解读:Investigating the Factual Knowledge Boundary of Large Language Models with Retrieval Augmentati

    论文解读 Investigating the Factual Knowledge Boundary of Large Language Models with Retrieval Augmentation 一 动机 Knowledge in