【IR 论文】HyDE:让 LLM 对 query 做查询改写来改进 Dense Retrieval

2024-04-30 21:12

本文主要是介绍【IR 论文】HyDE:让 LLM 对 query 做查询改写来改进 Dense Retrieval,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文:Precise Zero-Shot Dense Retrieval without Relevance Labels
⭐⭐⭐⭐
CMU, ACL 2023, arXiv:2212.10496
Code: github.com/texttron/hyde

文章目录

    • 论文速读
    • 总结

论文速读

在以往的 dense retrieval 思路中,需要对 input query 做 encode 来得到 vector,并于 passages 的 vector 做相似度计算实现检索。这里面的 dense encoder 需要把有相关性的 query 和 docs 映射到相近的位置,这就存在两个缺点:

  • dense encoder 需要大量的数据去 learn
  • Hard to generalize when definition of relevance changes

但在现实世界中:

  • 可以用于 train 的具有相关性关联的 data 并不多
  • 检索的需求是多种多样的:
    • 不同的企业或机构有不同的需求
    • 用户的需求也在随着时间发生改变

这就导致了以往的 dense retrieval 的思路并不好用。


本文提出的 HyDE思路如下

HyDE 框架中,没有训练或微调任何 LLM

  1. 给定一个 user query,通过 LLM 的 instruction-following 的能力,让 LLM 先生成一个对于这个 query 的杜撰的 document:“Hypothetical Document
  2. 使用一个 dense encoder 将这个 Hypothetical Document 编码为 vector:“Hypothetical Document Embedding
  3. 在 document embedding space 中进行检索

其中,denser encoder 可以是一个非常 weak 的模型,仅仅通过无监督的对比学习就可以完成训练。

HyDE 的特点是,不再需要做 query - document 的 mapping,而是让 LLM 先生成一个伪文档,然后通过这个伪文档来完成检索。从而弥补了 input query 与 corpus 之间的 gap。

HyDE 的整体示例如下图所示:
HyDE 框架

总结

HyDE 提供了一种以完全无监督的方式来构建有效的 dense retriever 的新思路,他的训练不需要任何相关联的 query-doc pair 作为训练资料。

论文指出,HyDE 主要用于搜索系统的部署前期,这时候缺少可用的训练素材,HyDE 可以提供与微调模型相当的表现。随着搜索系统的使用,搜索日志和相关性数据逐渐积累, 就可以逐步训练并推出有监督的 dense retriever 来提供其 in-domain 的专业能力。

这篇关于【IR 论文】HyDE:让 LLM 对 query 做查询改写来改进 Dense Retrieval的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/949924

相关文章

房产证 不动产查询

陕西政务服务网(便民服务)陕西政务服务网(手机版?更直观)不动产权证书|不动产登记证明(电子证照)商品房合同备案查询权利人查询

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

(超详细)YOLOV7改进-Soft-NMS(支持多种IoU变种选择)

1.在until/general.py文件最后加上下面代码 2.在general.py里面找到这代码,修改这两个地方 3.之后直接运行即可

YOLOv8改进 | SPPF | 具有多尺度带孔卷积层的ASPP【CVPR2018】

💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效涨点》专栏介绍 & 专栏目录 | 目前已有40+篇内容,内含各种Head检测头、损失函数Loss、Backbone、Neck、NMS等创新点改进——点击即可跳转 Atrous Spatial Pyramid Pooling (ASPP) 是一种在深度学习框架中用于语义分割的网络结构,它旨

通过高德api查询所有店铺地址信息

通过高德api查询所有店铺地址电话信息 需求:通过高德api查询所有店铺地址信息需求分析具体实现1、申请高德appkey2、下载types city 字典值3、具体代码调用 需求:通过高德api查询所有店铺地址信息 需求分析 查询现有高德api发现现有接口关键字搜索API服务地址: https://developer.amap.com/api/webservice/gui

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

Java中如何优化数据库查询性能?

Java中如何优化数据库查询性能? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨在Java中如何优化数据库查询性能,这是提升应用程序响应速度和用户体验的关键技术。 优化数据库查询性能的重要性 在现代应用开发中,数据库查询是最常见的操作之一。随着数据量的增加和业务复杂度的提升,数据库查询的性能优化显得尤为重

BD错误集锦9——查询hive表格时出错:Wrong FS: hdfs://s233/user/../warehouse expected: hdfs://mycluster

集群环境描述:HDFS集群处于HA模式下,同时启动了YARN\JN\KAFKA\ZK。 现象: FAILED: SemanticException Unable to determine if hdfs://s233/user/hive/warehouse/mydb.db/ext_calllogs_in_hbase is encrypted: java.lang.IllegalArgument

MybatisPlus指定字段查询

一,上代码 QueryWrapper<Device> queryWrapper = Wrappers.query();queryWrapper.select("project_id as projectId,count(device_id) as total").in("project_id",projectIds).isNotNull("project_id").eq("del_flag",B

ORACLE 、达梦 数据库查询指定库指定表的索引信息

在Oracle数据库中,索引是一种关键的性能优化工具,通过它可以加快数据检索速度。在本文中,我们将深入探讨如何详细查询指定表的索引信息,以及如何利用系统视图和SQL查询来获取这些信息。 索引在数据库中的重要性 索引是一种数据结构,用于加快数据库表中数据的检索速度。它类似于书籍的目录,可以帮助数据库引擎快速定位数据行,特别是在大型数据集合下,其作用尤为显著。 查询指定表的索引信息 在Orac