【RAG 论文】UPR:使用 LLM 来做检索后的 re-rank

论文:Improving Passage Retrieval with Zero-Shot Question Generation

⭐⭐⭐⭐

EMNLP 2022, arXiv:2204.07496

Code: github.com/DevSinghSachan/unsupervised-passage-reranking


论文:Open-source Large Language Models are Strong Zero-shot Query Likelihood Models for Document Ranking

⭐⭐⭐⭐

EMNLP 2023, arXiv:2310.13243

Code: github.com/ielab/llm-qlm


一、UPR 论文速读

关于 Improving Passage Retrieval with Zero-Shot Question Generation 这篇论文

论文提出了一个基于 LLM 的 re-ranker:UPRUnsupervised Passage Re-ranker),它不需要任何标注数据用于训练,只需要一个通用的 PLM(pretrained LM),并且可以用在多种类型的检索思路上。

给定一个 corpus 包含所有的 evidence documents,给定一个 question,由 Retriever 来从 corpus 中检索出 top-K passages,re-ranker 的任务就是把这 K 个 passages 做重新排序,期待重排后再交给 LLM 做 RAG 能提升效果。

20240514214210

本论文的工作中,使用 LLM 来为每一个 passage 计算一个 relevance score,然后按照 relevance scores 来对这些 passages 做排序。passages z i z_i zi 的 relevance score 的计算方式是:以 passage z i z_i zi 为条件,计算 LLM 生成 question q q q 的 log-likelihood log ⁡ p ( q ∣ z i ) \log p(q|z_i) logp(qzi)

20240514211839

关于为什么使用 p ( q ∣ z ) p(q|z) p(qz) 来计算 relevance score 而非用 p ( z ∣ q ) p(z|q) p(zq),原因在于在假设 log ⁡ p ( z i ) \log p(z_i) logp(zi) 是都一样的话,按照 Bayes 公式来算的话, p ( q ∣ z ) p(q|z) p(qz) p ( z ∣ q ) p(z|q) p(zq) 呈正相关的关系。此外,使用 p(q|z) 允许模型利用交叉注意力机制(cross-attention)在问题和段落之间建立联系。而且实验发现使用 p ( q ∣ z ) p(q|z) p(qz) 效果更好。

20240514212620

其实从感性上想一想,也是通过 prompt 让 LLM 去计算 p ( q ∣ z ) p(q|z) p(qz) 来建模 question 和 passage 更合理。

二、开源 LLM 本身就是强 zero-shot 的 QLM re-ranker

QLMQuery Likelihood Model) 是指,通过计算特定 question 下 document 的概率来理解 docs 和 queries 的语义关系。QLM re-ranker 就是借助这个概率得出相关性分数从而做出排名,进而实现 re-rank。前面介绍的 UPR 就是一种 QLM re-ranker。

在前面介绍的 UPR 中,使用了 T0 LLM 模型作为 QLM 从而实现了有效的 re-rank,但是由于 T0 在许多 QG(Question Generation) 数据集上做了微调,所以该工作不能完全反映通用的 zero-shot 的 QLM ranking 场景。

本工作研究了使用 LLaMA 和 Falcon 这两个 decoder-only 的模型作为 QLM 来做 re-rank 任务的表现,这两个 LLM 都没有在 QG 数据集上做训练。

2.1 多种 QLM re-ranker

本文工作设计了多种 QLM re-ranker,下面分别做一个介绍。

1)Zero-shot QLM re-ranker

类似于前面 UPR 的做法,借助于 QLM 计算出一个 relevance score,计算方法也一样(以 retrieved doc 为条件的 question 的概率):

20240514214509
2)BM25 插值的 re-ranker

除了使用 QLM 计算出来的分数 S Q L M S_{QLM} SQLM,还融入第一阶段的检索器 BM25 给出的相关性分数,两者通过权重共同计算最终的 relevance score:

20240514214721
3)Few-shot QLM re-ranker

在前面 zero-shot 的基础上,使用 LLM 时,设计一个 prompt template 并加入一些 few-shot exemplars。

2.2 实验

论文详细介绍了多个实验,感兴趣可以参考原论文,这里列出几个结论:

  • 在 QG 数据集(NS NARCO 数据集)上微调的 retriever 和 re-ranker 在所有数据集上表现都由于 zero-shot 的 retriever 和 QLM re-ranker,这是意料之中的,因为这些方法会受益于大量人工判断的 QA 训练数据,其知识可以有效地迁移到测试数据集中。
  • zero-shot 的 QLM 和经过 QG 指令微调的 QLM 表现出相似的竞争力,这一发现时令人惊讶的,这说明 pretrained-only 的 LLM 就具有强大的 zero-shot QLM 排名的能力。
  • 如果 QG 任务没有出现在指令微调的数据中,那么指令微调反而会阻碍 LLM 的 QLM re-rank 能力。猜测原因在于,指令微调的模型往往更关注任务指令,而较少关注输入内容本身,但是评估 Query Likelihood 的最重要信息都在文档内容中,所以指令调优不利用 LLM 的 Query Likelihood 的估计。
  • BM25 插值策略的改进究竟有没有用,取决于具体的 LLM 模型。

2.3 一个有效的 ranking pipeline

这篇论文工作(原文 4.3 节)还提出了一个有效的 ranking pipeline。

在第一阶段的 retriever 中,将 BM25 和 HyDE 结合作为 zero-shot first-stage hybird retriever,然后再使用 QLM 做 re-rank。

经过实验发现,这种方法可以与当前 SOTA 模型表现相当,重要的这种方法不需要任何训练。

总结

这两篇论文给了我们使用 LLM 来做 QLM re-rank 的思路,展现了通用的 LLM 本身具备强大的 QLM re-rank 的能力。

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

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

相关文章

【HR】阿里三板斧--20240514

参考https://blog.csdn.net/haydenwang8287/article/details/113541512 头部三板斧 战略能不能落地、文化能不能得到传承、人才能不能得到保障。 头部三板斧适用的核心场景有三个:一是战略不靠谱;二是组织效率低、不聚心;三是人才跟不上。对…

c++ 各版本特性介绍

c C是一种高级编程语言,以其强大的功能、灵活性和高效性而闻名。它是由Bjarne Stroustrup在20世纪80年代初期在贝尔实验室开发的,作为C语言的一个扩展。C不仅包含了C语言的所有特性,还引入了面向对象编程(OOP)的概念&…

基于Vue3+ElementPlus项目,复制文字到剪贴板功能实践指南,揭秘使用js-tool-big-box工具库的核心优势

在前端开发项目中,很多时候有那么一个场景,就是要求将一段文案复制下来,这段文案可能是一串很长的id,可能是一条命令语句,可能是一小段文案,复制到剪贴板上。这样有利于用户复制到其他地方去,使…

自然资源-城乡规划行业未来二十年将何去何从?

自然资源-城乡规划行业未来二十年将何去何从? 城乡规划行业未来风口在以下几个方向,看好啦!紧跟国家发展战略和政策背景。 1.大数据的城市规划应用。 包含:公共数据平台的搭建CIM,数据赋能治理,城市规划中大数据应用的研究 等…

微软必应bing国内官方代理商,广告账户如何开户?

微软必应Bing作为全球知名的搜索引擎之一,其广告平台为众多企业提供了广阔的市场空间和精准的推广机会。对于中国内地的企业而言,通过必应Bing开展国内广告推广不仅能够触及更广泛的潜在客户群体,还能有效提升品牌影响力。通过微软必应Bing国…

【算法作业】均分卡牌,购买股票

问题描述 John 有两个孩子,在 John病逝后,留下了一组价值不一定相同的魔卡, 现在要求你设计一种策略,帮John的经管人将John的这些遗产分给他的两个孩子,使得他们获得的遗产差异最小(每张魔卡不能分拆&#…

搜索引擎的设计与实现(三)

目录 5 系统详细实现 5.1实现环境配置 5.2功能实现 5.2.1 建立索引 5.2.2 文件搜索实现 5.2.3 数据库的连接配置 5.2.4 数据库搜索实现 5.2.5 后台数据编辑实现 前面内容请移步 搜索引擎的设计与实现(二) 免费源代码&毕业设计论文 搜索…

git-删除workspace.xml的跟踪

问题描述 .gitignore 文件内容如下: .pyc *.pyc user_files/ .vscode/ __pycache__//.idea/misc.xml /.idea/modules.xml /.idea/inspectionProfiles/profiles_settings.xml /.idea/inspectionProfiles/Project_Default.xml /.idea/batrp_webbackend-server-dev.i…

NARUTO 复现记录

1 环境配置 下载项目,一定要 git 下载全项目,下载完后要检查third_parities 里面的coslam和neural_slam_eval 文件全不全。 git clone --recursive https://github.com/oppo-us-research/NARUTO.git 环境配置 注意 bash scripts/installation/conda…

番外篇 | 利用PyQt5+YOLOv5来搭建目标检测系统(附可视化界面+功能介绍+源代码)

前言:Hello大家好,我是小哥谈。PyQt5是一个Python绑定的Qt库,是用于创建图形用户界面(GUI)和其他应用程序组件的工具包。PyQt5提供了许多GUI元素,如按钮、文本框、标签等,也提供了许多Qt的功能,如网络、数据库、XML等。通过PyQt5可以在Python中使用Qt的丰富功能和强大的工…

克服亏损的负面影响 学学现货白银止损的方法

一个多月以前,现货黄金的上涨还十分强劲,一度还逼近历史的高位30大关。但是我们看近半个月以来,现货白银价格出现了调整。很多在高位买入的投资者都承受了较大的亏损,这时候就凸显出了现货白银止损的作用。如果投资者能够通过近期…

Git 基础使用(2) 分支管理

文章目录 分支概念分支使用查看分支分支创建分支切换分支合并合并冲突分支删除 分支管理快进模式分支策略内容保存错误处理 分支概念 (1)分支概念 Git分支是指在版本控制系统Git中,用来表示项目的不同工作流程或开发路径的一个重要概念。通过…

【cmake】Windows 环境下编译第三方依赖源码(以编译Xerces库为例)

第三方依赖源码的编译分为两种,一种是使用 Configure 脚本编译,另一种是使用 CMakeLists.txt 编译。Xerces 3.2.3 的编译方式是 CMakeLists.txt 脚本编译。 必要软件: CMake (CMake | Download)Visual Studio 2019&a…

前端AJAX讲解

目录 1.AJAX是什么? 2.异步交互和同步交互 3.AJAX常见应用情景和优缺点 4.AJAX的优缺点 5.AJAX发送异步请求(四步操作) 6.经典案例 1.AJAX是什么? AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与…

指针基础实践

文章目录 1.声明指针2.初始化指针3.指针地址和大小,值4.指针解引用,修改值5.指针指向堆内存,修改值6.申请堆内存并释放7.数组释放8.指针运算9.指针递增10.指针递减11.指针常量12.常量指针13.常量指针指向常量 1.声明指针 2.初始化指针 3.指针地址和大小…

【数据结构】二叉树(Binary Tree)

文章目录 一、树的概念及结构二、二叉树的概念及结构1.二叉树的概念2.特殊的二叉树3.二叉树的性质 三、二叉树的存储顺序存储链式存储 四、二叉树的实现1.创建二叉树2.二叉树的遍历前序遍历中序遍历后序遍历层序遍历根据遍历顺序创建二叉树 3.二叉树的基本操作1.总结点个数2.二…

ctfshow之_萌新web9至web10

一、访问在线靶场ctfshow 1、web9 如下图所示,进入_萌新赛的web9问题,题目提醒flag在config.php中: 如上图所示,可以get传参,且传入的参数需要正则匹配system、exec、highlight,且不区分大小写&#xff0…

C++设计模式|创建型 5.原型模式

1.什么是原型模式? 原型模式⼀种创建型设计模式,该模式的核⼼思想是基于现有的对象创建新的对象,⽽不是从头开始创建。 在原型模式中,通常有⼀个原型对象,它被⽤作创建新对象的模板。新对象通过复制原型对象的属性和状…

Mac IDEA 自动补全mybatis sql语句

导航 Mac IDEA 自动补全mybatis sql语句一、点击IDEA 右侧Database选项二、选择添加对应数据库三、输入数据库信息和方案四、输入数据库信息和方案五、成功 Mac IDEA 自动补全mybatis sql语句 背景: 想在Mapper中,能够实现自动检索数据库表和对应的字段…

QT日志类SimpleQtLogger的简单记录

在现代软件开发中,日志记录是必不可少的部分。它不仅帮助开发者在调试和维护软件时了解程序的运行状态,还能提供关键的错误信息。对于使用Qt框架开发应用程序的开发者来说,选择一个合适的日志库至关重要。本文将详细介绍Qt日志库SimpleQtLogg…