【RAG】Dense X Retrivel:合适的检索粒度对RAG的重要性(浅看命题粒度的定义及分解方法)

news2024/10/5 22:24:06

前言

在传统的密集检索中,常见的检索单元包括文档、段落或句子。然而,这些单元的选择可能会影响检索性能和下游任务的效果。例如,段落可能包含与问题无关的额外细节,而句子可能过于复杂或缺乏必要的上下文信息。为了解决这些问题,提出了使用“命题”作为新的检索单元。

一、命题的定义

命题在文中被定义为文本中的原子表达,每个命题都包含一个独特的事实片段,并以简洁、自包含的自然语言格式呈现。例如,在讨论比萨斜塔的倾斜角度时,可以提取出以下命题:“比萨斜塔现在大约倾斜3.99度。”这个命题简洁地回答了问题,并且包含了必要的上下文信息。

命题的定义原则:

  • 对应独特语义:每个命题应该对应文本中一个独特的语义片段。所有命题的组合应该能够代表整个文本的语义。

  • 最小化(minimal):命题应该是最小的,即它不能再被分割成更小的命题单元。

  • 自包含和上下文化(contextualized and self-contained):命题应该被上下文化并且是自包含的。这意味着命题应该包含所有从文本中必要的上下文(例如,指代关系)来独立解释其含义。

总结就是:每个命题对应文本中的一个独立的意义单元,所有命题的组合代表了整个文本的语义。

二、命题分解方法

如图中A部分:
步骤

数据处理流程

  • 数据集:FACTOIDWIKI,已经去除了图表、表格和列表,组织成了段落形式。

  • 分割粒度:

    • 100单词段落:使用贪婪方法将段落分割成100字的段落块,仅在句子结束时分割,确保每个段落块包含完整的句子。
    • 句子:使用Python的SpaCy库en_core_web_lg模型进一步将每个段落分割成句子。
    • 命题:使用“Propositionizer”的文本生成模型将每个段落分解成命题。

Propositionizer 模型

  • 训练Propositionizer:使用GPT-4生成提示,通过两步蒸馏过程训练Propositionizer。首先,使用GPT-4生成段落到命题对的种子集,然后使用这个种子集来微调FlanT5-large模型。
  • 评估Propositionizer:通过F1分数评估Propositionizer生成命题的质量,F1分数基于两个命题集合之间的相似度,使用了BertScore和roberta-large配置作为相似度度量。

段落到命题的提示词

英文:

Decompose the "Content" into clear and simple propositions, ensuring they are interpretable out of
context.
1. Split compound sentence into simple sentences. Maintain the original phrasing from the input
whenever possible.
2. For any named entity that is accompanied by additional descriptive information, separate this
information into its own distinct proposition.
3. Decontextualize the proposition by adding necessary modifier to nouns or entire sentences
and replacing pronouns (e.g., "it", "he", "she", "they", "this", "that") with the full name of the
entities they refer to.
4. Present the results as a list of strings, formatted in JSON.
Input: Title: ¯Eostre. Section: Theories and interpretations, Connection to Easter Hares. Content:
The earliest evidence for the Easter Hare (Osterhase) was recorded in south-west Germany in
1678 by the professor of medicine Georg Franck von Franckenau, but it remained unknown in
other parts of Germany until the 18th century. Scholar Richard Sermon writes that "hares were
frequently seen in gardens in spring, and thus may have served as a convenient explanation for the
origin of the colored eggs hidden there for children. Alternatively, there is a European tradition
that hares laid eggs, since a hare’s scratch or form and a lapwing’s nest look very similar, and
both occur on grassland and are first seen in the spring. In the nineteenth century the influence
of Easter cards, toys, and books was to make the Easter Hare/Rabbit popular throughout Europe.
German immigrants then exported the custom to Britain and America where it evolved into the
Easter Bunny."
Output: [ "The earliest evidence for the Easter Hare was recorded in south-west Germany in
1678 by Georg Franck von Franckenau.", "Georg Franck von Franckenau was a professor of
medicine.", "The evidence for the Easter Hare remained unknown in other parts of Germany until
the 18th century.", "Richard Sermon was a scholar.", "Richard Sermon writes a hypothesis about
the possible explanation for the connection between hares and the tradition during Easter", "Hares
were frequently seen in gardens in spring.", "Hares may have served as a convenient explanation
for the origin of the colored eggs hidden in gardens for children.", "There is a European tradition
that hares laid eggs.", "A hare’s scratch or form and a lapwing’s nest look very similar.", "Both
hares and lapwing’s nests occur on grassland and are first seen in the spring.", "In the nineteenth
century the influence of Easter cards, toys, and books was to make the Easter Hare/Rabbit popular
throughout Europe.", "German immigrants exported the custom of the Easter Hare/Rabbit to
Britain and America.", "The custom of the Easter Hare/Rabbit evolved into the Easter Bunny in
Britain and America." ]
Input: <a new passage>
Output:

中文:

以下是所提供文本的翻译:

将“内容”分解为清晰简单的命题,确保它们脱离上下文后仍可理解。
1. 将复合句拆分为简单句。尽可能保持输入的原始措辞。
2. 对于任何附带额外描述信息的命名实体,将这些信息分离成自己独特的命题。
3. 通过为名词或整个句子添加必要的修饰语,并将代词(例如,“它”,“他”,“她”,“他们”,“这个”,“那个”)替换为它们所指实体的全名,来使命题脱离上下文。
4. 将结果以字符串列表的形式呈现,格式化为JSON。

输入:标题:Eostre。部分:理论和解释,与复活节兔子的联系。内容:
复活节兔子(Osterhase)的最早证据由医学教授Georg Franck von Franckenau在1678年记录在德国西南部,但在18世纪之前在德国其他地区仍然不为人知。学者Richard Sermon写道,“春天经常在花园里看到野兔,因此可能为隐藏在那里供孩子们寻找的彩色彩蛋的起源提供了一个方便的解释。另外,存在一种欧洲传统,认为野兔会下蛋,因为野兔的爪印或形态和鸻鸟的巢看起来非常相似,而且两者都出现在草地上,并且都是在春天首次见到。19世纪,复活节卡片、玩具和书籍的影响使复活节兔子/野兔在整个欧洲变得流行。德国移民随后将这一习俗传播到英国和美国,那里它演变成了复活节兔子。”

输出:[
  “复活节兔子的最早证据是在1678年由位于德国西南部的Georg Franck von Franckenau记录的。”,
  “Georg Franck von Franckenau是医学教授。”,
  “复活节兔子的证据直到18世纪才在德国其他地区为人所知。”,
  “Richard Sermon是一位学者。”,
  "Richard Sermon提出了一个关于春天野兔和复活节传统之间联系的可能解释的假设", 
  “春天经常在花园里看到野兔。”,
  “野兔可能为隐藏在花园里供孩子们寻找的彩色彩蛋的起源提供了一个方便的解释。”,
  “存在一种欧洲传统,认为野兔会下蛋。”,
  “野兔的爪印或形态和鸻鸟的巢看起来非常相似。”,
  “野兔和鸻鸟的巢都出现在草地上,并且都是在春天首次见到。”,
  “在19世纪,复活节卡片、玩具和书籍的影响使复活节兔子/野兔在整个欧洲变得流行。”,
  “德国移民将复活节兔子/野兔的习俗传播到英国和美国。”,
  “复活节兔子/野兔的习俗在英国和美国演变成了复活节兔子。”
]
输入:<新的段落>(注:文本在此处被截断,因此输入不完整)

三、实验结果

参考文献

Dense X Retrieval: What Retrieval Granularity Should We Use?,https://arxiv.org/pdf/2312.06648

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

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

相关文章

Spring中使用FactoryBean配置注入Bean

spring通过FactoryBean配置可以将第三方框架整合到Spring中来&#xff0c;FactoryBean配置如下&#xff1a; 写一个用于注于的实体类&#xff0c;如User,并对这个类写一个实现FactoryBean的中间类&#xff08;UserFactoryBean&#xff09; User类 /** *Description: *author…

MySQL的下载安装

1.软件的下载 打开官网下载mysql-installer-community-8.0.37.0.msi 2.软件的安装 mysql下载完成后&#xff0c;找到下载文件&#xff0c;双击安装 3.配置环境变量 4.自带客户端登录与退出

【前端VUE】VUE3第一节—vite创建vue3工程

什么是VUE Vue (发音为 /vjuː/&#xff0c;类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。无论是简单还是复杂的界面&#xff0…

使用Python绘制彩虹效果:动态彩虹动画

文章目录 引言准备工作前置条件 代码实现与解析导入必要的库初始化Pygame定义绘制彩虹函数定义颜色列表主循环 完整代码 引言 彩虹是自然界中最美丽的现象之一。通过编程&#xff0c;我们可以将这一奇妙的景象带到屏幕上。在这篇博客中&#xff0c;我们将使用Python来创建一个…

Q-Vision新功能发布 | CANReplay-enable发送

Q-Vision是一款网络分析与ECU测试工具软件&#xff0c;支持CAN&#xff08;FD&#xff09;、LIN、以太网、LVDS等车载网络标准&#xff0c;以及CCP/XCP/UDS/OBD等协议&#xff0c;并能导入DBC/LDF/ARXML/A2L/ODX等格式的数据库。 使用Q-Vision可实现对多种总线网络的在线记录、…

k8s学习--k8s群集ELK日志收集部署最详细的过程与应用(收集k8s群集日志)(图形化界面手把手教学)

文章目录 FilebeatFilebeat主要特点Filebeat使用场景 ELK简介Elasticsearch简介Elasticsearch主要特点Elasticsearch使用场景 Logstash简介Logstash主要特点Logstash使用场景 Kibana简介Kibana主要特点Kibana使用场景 简单理解 环境一、ELK集群部署1.软件安装2.软件配置及启动(…

golang写的自动更新器

文件自动更新器&#xff0c;这个很多端游和软件都有用到的。 golang的rpc通信&#xff0c;是非常好用的一个东西&#xff0c;可以跟调用本地函数一样&#xff0c;调用远程服务端的函数&#xff0c;直接从远程服务端上拉取数据下来&#xff0c;简单便捷。 唯一的遗憾就是&#x…

SQLite 命令行客户端 + Windows 批处理应用

SQLite 命令行客户端 Windows 批处理应用 下载 SQLite 客户端1. Bat 辅助脚本1. 执行SQL.bat执行 2. 导出Excel.bat执行效果 3. 导出HTML.bat执行效果 4. 清空-订单表.bat 2. 测试 SQL1. 创建订单表.sql2. 插入订单表.sql3. 查询订单表.sql4. 清空订单表.sql5. 删除订单表.sql…

html + css 快速实现订单详情的布局demo

突然安排让速写这样的一个布局&#xff0c;重点就是CSS画一条虚线,并且还要灵活设置虚线的宽度和虚线之间的间隔和虚线的颜色。 注&#xff1a;订单里面的金额都是随意写的 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8&…

从零到一:全面掌握模板机部署与虚拟机克隆的实训指南【实训Day01】

一、模板机的部署 1.设置好子网ip和子网掩码以及网关 保证有NAT模式 子网IP着重记住前三段&#xff1a;192.168.222.xxx 2.开始建立虚拟机 注意&#xff1a;路径中不要有中文 3.安排8个内核 4.安排2GB内存 创建初步成功&#xff0c;接着 5.开启此虚拟机 6.选择中文 7.日期&…

Go语言特点、编译及命令

本文主要分为三部分内容分别为&#xff1a;Go语言的特点介绍&#xff1b;编译windows、linux环境文件及Go命令。 目录 Go语言特点 编译文件 编译window文件 编译linux文件 Go命令&#xff08;build/run/install/env&#xff09; 编译文件 直接运行程序 安装程序 配置G…

平衡二叉查找树和多路查找树

平衡二叉查找树 普通平衡二叉查找树 平衡二叉树定义是按照有序排列成树状&#xff0c;左子树数据大于右子树&#xff0c;任意节点的左右子树高度不能大于1 优点&#xff1a;可以保证绝对的平衡 缺点&#xff1a;当进行删除节点和新增节点&#xff0c;树进行自平衡的时候&…

10 docker 安装 mysql详解

目录 一、安装mysql 1. 镜像获取 2. 简单版 2.1. 使用mysql镜像 2.2. 建库建表插入数据 2.3. 外部win 连接并插入中文数据测试 2.4. 简单版本问题 3. 创建容器-实战版 3.1. 新建容器实列并挂载卷 3.2. 新建my.cnf , 解决中文乱码 3.3. 重启容器验证 3.4. 总结 一、…

VScode使用ssh连接服务器

VScode是一款有丰富插件的编译器&#xff0c;非常好用&#xff01;除非你不会用&#xff0c;因为太过繁琐或着频繁出错导致想把电脑砸了&#xff1b; 插件选择 ssh 配置文件 Host myblablaHostName xxx.xx.xxx.xxxUser username用户名一般是服务器上创建有什么用户名&#xf…

开源即正义,3D软件Blender设计指南

在当今数字化时代&#xff0c;开源软件的崛起不仅代表着技术的发展&#xff0c;更象征着一种信息自由和技术民主的理念。其本质是集众人之智&#xff0c;共同去完善一个软件&#xff0c;最终使双方互惠共赢。具体来说&#xff0c;开源的价值&#xff0c;在于打破资源垄断&#…

RealMAN:大规模真实录制且经过注释的麦克风阵列数据集

在深度学习驱动的多通道语音增强和声源定位系统的开发中&#xff0c;由于缺乏大规模的真实录制数据集&#xff0c;这些系统的训练在很大程度上依赖于房间脉冲响应&#xff08;RIR&#xff09;和多通道扩散噪声的模拟。然而&#xff0c;模拟数据和真实世界数据之间存在的声学失配…

【数据分享】《中国建筑业统计年鉴》2005-2022 PDF

而今天要免费分享的数据就是2005-2022年间出版的《中国建筑业统计年鉴》并以多格式提供免费下载。&#xff08;无需分享朋友圈即可获取&#xff09; 需要2023的数据的请添加小编咨询 数据介绍 在过去的十八个年头中&#xff0c;中国建筑业经历了翻天覆地的变化。从《中国建…

【LeetCode】十二、递归:斐波那契 + 反转链表

文章目录 1、递归2、leetcode509&#xff1a;斐波那契数列3、leetcode206&#xff1a;反转链表4、leetcode344&#xff1a;反转字符串 1、递归 函数自己调用自己 递归的4个点&#xff1a; 递归的例子&#xff1a;给一个数n&#xff0c;在斐波那契数列中&#xff0c;找到n对应的…

企业元宇宙3D云端数字化展厅扩大客户触及面

在浩瀚无垠的元宇宙中&#xff0c;一个立体、虚拟的数字空间正在等待您的探索与创造。如何在这片无边界的数字领域中快速搭建起属于您自己的虚拟展馆&#xff0c;已成为当今企业关注的焦点。 元宇宙数字展馆搭建&#xff0c;不仅是对新技术领域的探索&#xff0c;更是品牌创新与…

Gradle学习-5 发布二进制插件

注&#xff1a;以下示例基于Gradle8.0 1、发布插件 复制一分 buildSrc&#xff0c;执行命令行&#xff0c;生成一个新目录 leon-gradle-plugin cp -rf buildSrc leon-gradle-plugin在 leon-gradle-plugin 目录下的 build.gradle 中引入maven plugins{// 引用 Groovy 插件&…