【RAG 论文】Dense X 检索:将“命题”作为检索粒度

论文:Dense X Retrieval: What Retrieval Granularity Should We Use?
⭐⭐⭐⭐
Code: github.com/ct123098/factoid-wiki

文章目录

    • 一、论文速读
    • 二、命题(Proposition)
    • 三、FactoidWiki
    • 四、实验及分析
      • 4.1 Passage Retrieval 任务
      • 4.2 Open-Domain QA 任务

一、论文速读

目前的研究发现,对于检索粒度的选择会显著影响检索任务以及下游任务的表现。目前的检索方法大多以文档或者固定大小的 chunk 作为检索粒度,本论文提出以“命题”(proposition)作为检索粒度来进行检索

命题在本论文中被定义为如下:Propositions are defined as atomic expressions within text, each encapsulating a distinct factoid and presented in a concise, self-contained natural language format.

下图展示了使用 passage、sentence 以及 proposition 作为检索粒度用于 QA 时的区别:

注意,这里 proposition retrieval 的结果中,将原文中的 the tower 做了类似于共指消解的工作,将其转化为了 The Leaning Tower of Pisa,从而使得这个命题可以独立于原文进行理解。

该工作期望每个命题都可以精确地描述一个上下文化地原子事实,因此,命题可以给出更高的与问题相关的信息密度。

如下是整体框架:

  • 首先将 Wikipedia 的文章使用 Propositionizer 分解为多个命题
  • 将这些命题构建为资料库,让 retriever 用“命题”的粒度去完成检索
  • 基于如上方法,使用 RAG 思路去进行 QA

二、命题(Proposition)

这篇论文的核心思路就是将 retrieval 的检索粒度改进为 proposition,论文中给出了 proposition 的详细定义:

简而言之,一个命题描述了一个独立于上下文的原子性的事实

三、FactoidWiki

本工作将 Wikipedia 的 pages 分解为 propositions,形成了 FactoidWiki 这个数据集。

Propositionizer:输入一个 passage,输出一个 propositions 的列表,它使用了两步蒸馏的方法来训练:

  1. 首先使用 in-context learning 的方式来 prompt GPT-4 获得一批 passage-proppositions 的 pairs
  2. 使用上面获得 pairs 来微调 Flan-T5-large 来得到 Propositionizer

prompt GPT-4 的方法如下:

切分的结果如下:

四、实验及分析

本工作使用该方法做了 passage retrieval 和 open-domain QA 两类实验。

4.1 Passage Retrieval 任务

该任务是给定一个 question,寻找与之相关的 passage。

论文证明,命题级别的检索在 5 个数据集上效果最好。

另外,论文分析发现,Retriveal by Proposition 意味着更好的 Cross-Task 泛化性。命题粒度的检索在不太常见的实体(长尾实体)的问题上的 passage retrieval 有更大的优势,能够在多个数据集上有不错的表现。

4.2 Open-Domain QA 任务

直观来说,与 passage 粒度或者句子粒度的检索相比,命题粒度的检索能够查询出更高密度的相关信息,这样能够增强下游 QA 任务的性能。

但是,基于命题的检索面临着涉及长程文本分析的多条推理的挑战,因为检索到的命题很可能无法覆盖全面。

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

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

相关文章

VSCode-vue3.0-安装与配置-export default简单例子

文章目录 1.下载VSCode2.修改语言为中文3.辅助插件列表4.vue3模板文件简单例子5.总结 1.下载VSCode 从官网下载VSCode,并按下一步安装成功。 2.修改语言为中文 点击确认修改,如下图所示: 或者打开命令面板:输入Configure Displ…

党建教育vr虚拟现实展厅真正实现了绿色、低碳的展示方式

在数字化浪潮席卷的今天,传统企业门户官网已难以满足企业日益增长的展示需求。面对这一挑战,北京华锐凭借深厚的行业经验和领先的技术实力,为您提供全新的元宇宙虚拟展厅制作服务,助您轻松打破现实与虚拟的界限,开启企…

如何让vim支持python3

首先删除旧的vim。 sudo apt-get remove vim //输入re按下tab直接显示remove sudo apt-get remove vim-runtime sudo apt-get remove vim -tiny sudo apt-get remove vim-common 然后下载vim8源码: git clone https://github.com/vim/vim.git 进行编译安装…

【NodeMCU实时天气时钟温湿度项目 5】获取关于城市天气实况和天气预报的JSON信息(心知天气版)

| 今天是第五专题内容,主要是介绍如何从心知天气官网,获取包含当前天气实况和未来 3 天天气预报的JSON数据信息。 在学习获取及显示天气信息前,我们务必要对JSON数据格式有个深入的了解。 如您需要了解其它专题的内容&#xf…

C语言----杨辉三角

各位看官们好。学习到这里想必大家应该对C语言的了解也是很深刻的了吧。但是我们也不能忘记我们一起学习的知识啊。在我们以前学习C语言的时候我想大家应该都听说过杨辉三角吧。虽然我们把其中的规律找到那么这个代码就简单很多了。那么接下里我们就来讲讲杨辉三角。 首先我们先…

sql 注入 1

当前在email表 security库 查到user表 1、第一步,知道对方goods表有几列(email 2 列 good 三列,查的时候列必须得一样才可以查,所以创建个临时表,select 123 ) 但是你无法知道对方goods表有多少列 用order …

场外期权个股怎么对冲?

今天期权懂带你了解场外期权个股怎么对冲?场外个股期权是一种在非交易所市场进行的期权交易,它允许投资者针对特定的股票获得未来买入或卖出的权利。 场外期权个股怎么对冲? 持有相反方向的期权:这是最直接的对冲方法&#xff0c…

Elasticsearch中的三种分页策略深度解析:原理、使用及对比

码到三十五 : 个人主页 在Elasticsearch中,分页是查询操作中不可或缺的一部分。随着数据量的增长,如何高效地分页查询数据急需需要面对的问题。Elasticsearch提供了三种主要的分页方式:from size、scroll和search_after。下面详细…

STM32系统架构

以下是STM32系统架构中的各个重要组件和功能: 组件描述Cortex-M内核ARM Cortex-M系列内核,如M0、M0、M3、M4、M7等Flash存储器存储程序代码和数据SRAM存储程序运行时数据和堆栈外设接口GPIO、SPI、I2C、UART、TIM、ADC、DAC、USB、CAN、Ethernet等时钟和…

大模型微调实战之强化学习 贝尔曼方程及价值函数(五)

大模型微调实战之强化学习 贝尔曼方程及价值函数(五) 现在, 看一下状态-动作值函数的示意图: 这个图表示假设首先采取一些行动(a)。因此,由于动作(a),代理可能会被环境转换到这些状…

源代码烧录场景防泄密的四种方式

在各行各业中,外设烧录是一项常见的操作,涉及到对硬件设备进行固件更新或配置文件的写入。然而,外设烧录过程中的文件管理和安全审计一直是一个挑战,传统的烧录方法往往无法提供足够的安全保障。本文将介绍如何利用沙盒防泄密软件…

ENVI拓展工具资源去哪里找

ENVI拓展工具资源去哪里找? 文章目录 ENVI拓展工具资源去哪里找?前言网站(链接见文末)ENVI应用商店(App Store)ENVI官方提供第三方制作自己制作 总结参考 前言 ENVI 拓展工具是指 ENVI 软件的扩展功能或插…

Linux系统编程--网络编程

一、OSI网络七层模型 OSI模型将整个网络通信过程分解为七个层次,每个层次都为网络通信提供了特定的功能。以下是OSI模型的七个层次,从上到下依次是: 应用层(Application Layer):为应用软件提供网络服务&am…

Python数据可视化------地图

基础地图使用 # 地图基本演示 # 导包 from pyecharts.charts import Map from pyecharts.options import TitleOpts, VisualMapOpts# 准备地图对象 cmap Map() # 准备数据(列表) data [("北京市", 99), ("上海市", 199), ("…

【大模型】LLaMA-1 模型介绍

文章目录 一、背景介绍二、模型介绍2.1 模型结构2.2 模型超参数2.3 SwiGLU 三、代码分析3.1 模型结构代码3.2 FairScale库介绍 四、LLaMA家族模型4.1 Alpaca4.2 Vicuna4.3 Koala(考拉)4.4 Baize (白泽)4.5 Luotuo (骆驼,Chinese)4.6 其他 参考资料 LLaMA&#xff08…

微信小程序16: 组件通信

父子组件之间的通信 父子组件通信一共有三种方式 属性绑定 用于父组件向子组件的指定属性设置数据,仅能设置JSON兼容的数据 事件绑定 用于子组件向父组件传递数据,可以传递任意数据 获取组件实例 父组件还可以通过this.selectComponent()获取子组件的实…

vue 语法2

【5】条件渲染和列表渲染 (1)条件渲染v-if v-else-if v-else 条件渲染根据表达式的真假值来渲染不同的元素或组件。 v-if:当表达式的值为真时,渲染该元素或组件。 v-else-if:当前面的 v-if 或 v-else-if 的表达式为假…

【机器视觉】C# .NET 8 部署yolov9 onnx对象检测

这段代码展示了一个使用YOLOv9进行对象检测的简单测试框架。代码主体以及其功能分为以下几个关键部分: 创建测试图片数组 _testImages,它包含了图片文件名和对应的标签。使用 buildTests 方法来从给定的文件名中加载图片并调整尺寸,准备测试数…

linux数据备份与恢复

目录 前言 1、数据备份和恢复中的两个关键性指标 2、linux系统的定时任务 1)本地定时任务crontab 在实验测试过程中,遇到多次crontab任务不执行问题 ,总结下来主要有几个方面原因: 2)分布式定时任务系统Jenkins 3、备份存储…

如何用二维码实现现代仓库管理?(附详细实现过程)

简道云团队曾参与过近300企业的仓库管理软件的部署,要想知道如何实现用二维码管理仓库,首先要对整体流程有清晰的框架! 1、产品数据的录入2、设计电子库存卡3、库存盘点单4、库存盘点报表 总结一下就是——数卡单表,四步实现&…