【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,一经查实,立即删除!

相关文章

数据结构-线性表-链表-2.3-7

设在一个带头结点的单链表中所有元素的数据值无序,试编写一个函数,删除表中所有介于给定的两个值(作为函数参数给出)之间的元素的元素(若存在)。 无序链表,逐个结点进行检查,执行删…

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语言的时候我想大家应该都听说过杨辉三角吧。虽然我们把其中的规律找到那么这个代码就简单很多了。那么接下里我们就来讲讲杨辉三角。 首先我们先…

UltralSO制作启动盘时报错:磁盘/映像容量太小解决办法

UltralSO制作启动盘时报错:磁盘/映像容量太小解决办法 发现网上随便下载的UltralSO制作启动盘时报错:磁盘/映像容量太小,导致制作启动盘出错 解决方案: 去这个地址下载:https://cn.ultraiso.net/xiazai.html 下载正版…

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),代理可能会被环境转换到这些状…

教学目标的四个维度

记不住一点,每次要用都得百度,现在做个在线笔记hhhhhhh 教学目标的四个维度: 1.认知维度:目标应该涉及学生需要掌握的知识、概念、原则和理论等方面。 ⒉.技能维度:目标应该涉及学生需要掌握的各种技能,如阅读、写作、演讲、计算等。 3.情感…

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

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

ENVI拓展工具资源去哪里找

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

Linux系统编程--网络编程

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

代码随想录刷题 数组篇

讲解来源&#xff1a; 代码随想录 704. 二分查找 力扣链接 思路&#xff1a; 遵循循环不变量原则&#xff0c;区间的定义就是不变量&#xff0c;比如一直遵循左闭右闭原则。 class Solution { public:int search(vector<int>& nums, int target) {int left 0;int…

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

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

QT设计模式:代理模式

基本概念 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你提供一个代理对象&#xff0c;以控制对其他对象的访问。 代理通常在客户端和实际对象之间充当中介&#xff0c;用于控制对实际对象的访问&#xff08;如登录控制&#xff09;…

【大模型】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 (骆驼&#xff0c;Chinese)4.6 其他 参考资料 LLaMA&#xff08…