query2doc:用大模型做query检索拓展

原文: 前沿重器[38] | 微软新文query2doc:用大模型做query检索拓展


比较主流的检索方案:

  • 字面检索(sparse,稀疏)
  • 向量检索(dense,稠密)

query文档文段的召回,一直是存在困难的,因为两者无论是信息还是语义,其实都有很大的鸿沟。一般地,大家常用的方式有诸如“将qa匹配转化为qq匹配”、query改写同义词通过用户反馈构造匹配模型等手段。


论文:Query2doc: Query Expansion with Large Language Models 通过大模型的手段来进行改写。

1,拓展方法

文章思想:

  • 在开始检索之前,先用query让模型生成一次答案,然后把query和答案合并送给模型

在这里插入图片描述

举个例子,例如用户输入的是“儿童防沉迷”,原来是直接把“儿童防沉迷”直接用于检索,输入检索库中进行召回,然而现在,我们会结合prompt,先输入给大模型,并得到大模型的结果:

输入:
什么是儿童防沉迷。
要求,用大约100字回复。
------------------
输出:(结果来自chatglm2-int8)
儿童防沉迷是指避免儿童沉迷于网络、游戏、电子书等电子娱乐活动,保护儿童身心健康和防止未成年人受到网络游戏沉迷、网络信息诈骗等问题的影响。为了实现这一目标,家长和社会应该共同努力,对儿童进行网络安全教育,限制儿童使用电子产品的时间和内容,并营造良好的家庭氛围,鼓励儿童积极参与有益身心的活动,如运动、阅读、艺术等。

可以看到,相比原始query儿童防沉迷,还拓展了大量的相关信息,例如游戏、网络、未成年人等,这些词汇很直观地,能扩展更多概念解释,对提升召回肯定是有好处的。

改写是改写玩了,但是要放进去检索,更好地进行召回,还是有些技巧的,按照论文,对字面检索和向量检索,都有一些特定的设计。

1.1 字面检索

因为模型的生成多半会很长,所以在相似度计算的过程中,会稀释,所以在拼接过程中,需要对原始query复制几份再来拼接,用公式来描述,就是这样,其中d‘是大模型生成的内容,n是复制的次数:
在这里插入图片描述

1.2 向量检索

因为向量召回的泛化能力是比较强的,因此不需要复制,直接拼接起来就好了:
在这里插入图片描述
然而相比字面检索,最大的困难并不在拼接,而在于训练,因为输入和文档仍旧不是一个分布(两者语义并不相同甚至完全不相同,只是匹配),所以仍旧离不开训练,不过为了体现拓展的部分的效果,此处还是使用比较朴素的训练方案,即根据用户点击之类的行为构造数据集,并使用BM25等的方式获得难负例。

2、实验结果和分析

从实验结果看,收益无疑是巨大的,作者的分析其实更加有收获:

  • 模型大小的提升对最终的召回效果是有收益的,随着模型变大,生成的文本对预测效果有提升。
  • 该方案本身对向量表征模型(embedding)的训练,也是有明显收益的。
  • 字面检索而言,原始query和大模型生成的回复之间,是互补关系,两者组合才能真正达到提升。

然后是作者用两个案例做了分析,来探索本方案生效的机理和可能的缺陷。

  • 首先,大模型直接生成一个答案,很大程度拉近了检索词和文档之间在语义空间上的相似,因为本质上两者都是回复问题
  • 其次,大模型的生成可能并不正确(幻觉问题),尤其是关键部位(例如时间、关键名词之类的),这个关键部位的错误可能会导致最终的检索错误。

3、在现实中,仍旧有很多细节问题还需要进一步考虑(可以作为优化点)

  • 现实场景下的召回相似度应该如何计算,尤其是向量相似度,这里需要很多的数据支撑。
  • 召回后的下一步,仍旧依赖相对完善的精排模块,也需要考虑类似的匹配机制,否则即使召回层有了召回,排序层面也会被排到后面去。
  • 大模型本身的幻觉问题,会对召回带来很大的影响,该问题对召回还是有影响的,需要考虑如何尽可能剔除或者缓解。
  • 性能问题,依赖大模型是能够有所提升,但是多一次的大模型的请求,无疑让整体耗时有了很大的影响。(这点在论文中也有提及)

补充

1,检索–>reranker 后任然有个别合适的 ’块‘ 排在最后面位置?

这个时候就可以分析bad case 。继续优化重拍模块了,看看是什么原因被排到了最后,一般:

  • 找回链路不信任
  • 关键链路漏召回
  • 相似度计算
  • 有问题的规则

都有可能出现问题,base case 分析推荐:

心法利器[37] | bad case治疗术:认知篇
心法利器[38] | bad case治疗术:现状篇
心法利器[39] | bad case治疗术:分析篇
心法利器[40] | bad case治疗术:解决篇
心法利器[32] | 一些印象深刻的bad case
ML&DEV[13] | bad case分析
NLP.TM[22] | 如何修正NLP问题的bad case
心法利器[103] | 大模型bad case修复方案思考

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在Ubuntu上安装WordPress

如何在Ubuntu上安装WordPress 执行系统更新 apt update && apt upgrade第一步 安装 Apache apt install apache2确认 Apache 安装是否成功. systemctl status apache2安装成功后 打开浏览器输入 http://server-ip-address 第二步 安装 MySQL apt install mariad…

大模型揭秘:AI与CatGPT在实体识别中的创新应用

摘要 尽管大规模语言模型 (LLM) 在各种 NLP 任务上已经取得了 SOTA 性能,但它在 NER 上的性能仍然明显低于监督基线。这是由于 NER 和 LLMs 这两个任务之间的差距:前者本质上是序列标记任务,而后者是文本生成模型。在本文中,我们…

劳易测应用案例:包装机械设备风险评估

提起机器风险评估,客户经常会问 “机器存在哪些风险?”、“如何识别并防止风险?”、“如何依据安全标准对机器进行改造与升级?”以及“如何确保机器符合安全要求?等等。 机器风险评估是什么? 机器风险评估是…

鸿蒙HarmonyOS服务卡片实战

引言 在现代开发中,服务卡片是不可或缺的一部分,比如音乐,天气类等应用,官网的介绍中写道:卡片让您便捷地预览服务信息,例如查看天气或日历日程等内容。您可将卡片添加到屏幕上,让这类信息触手…

【大数据】Hadoop学习笔记

基本概念 Hadoop组成 HDFS: Hadoop分布式文件存储系统, 在Haddop中处于底层/核心地位YARN: 分布式通用的集群资源管理系统和任务调度平台, 支撑各种计算引擎执行MapReduce: 第一代分布式计算引擎, 但因为部分原因, 许多企业都不直接使用MapReduce, 但许多底层软件仍然在使用Ma…

SQL Server - ROLLUP、GROUPING、CUBE、GROUPING SET

文章目录 SQL Server - ROLLUP、GROUPING、CUBE、GROUPING SETROLLUP函数GROUPING函数GROUPING SET函数CUBE函数网上例子 写在前面:如果我们想要对分组之后的数据进行类似小计的计算,那么就需要使用到下面的函数 SQL Server - ROLLUP、GROUPING、CUBE、G…

PR模板 | RGB特效视频标题模板Titles | MOGRT

RGB特效视频标题模板mogrt免费下载 4K分辨率(38402160) 支持任何语言 友好的界面 输入和输出动画 快速渲染 视频教程 免费下载:https://prmuban.com/39055.html 更多pr模板视频素材下载地址:https://prmuban.com

【网络协议】精讲TCP通信原理!图解超赞超详细!!!

亲爱的用户,打开微信,搜索公众号:“风云说通信”,即可免费阅读该文章~~ 目录 1. 建立连接 2. 数据传输 3. 断开连接 4. 抓包分析 前言 TCP 把连接作为最基本的对象,每一条 TCP 连接都有两个端点,这种端…

【Day02】0基础微信小程序入门-学习笔记

文章目录 模板与配置学习目标WXML 模板语法1.数据绑定(类似于 Vue2 )2. 事件绑定3. 条件渲染4.列表渲染 WXSS模板样式1. rpx尺寸单位2.样式导入3. 全局样式和局部样式 全局配置1. window2. tabBar 页面配置网络数据请求总结 持续更新~ 模板与配置 学习目…

《第一行代码 第3版》学习笔记——第十一章 网络技术

1 webview用法 class MainActivity : ComponentActivity() {SuppressLint("SetJavaScriptEnabled")override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContent {NetWorkDemoTheme {// A surface container using the bac…

GandCrab5.2勒索病毒复现

GandCrab第一代勒索病毒首次出现于2018年1月,后面经历了五个大版本的更新迭代,该系列病毒特征是采用RSAAES加密算法,从算法上分析解密难度较大,会将系统中的大部分文件加密为随机后缀名的文件,然后对用户进行勒索。本实…

国内邮件推送如何避免拦截?内容优化技巧?

国内邮件推送的平台怎么选择?如何提高邮件推送效果? 邮件营销是企业与客户沟通的重要方式,但在国内邮件推送过程中,邮件被拦截的问题屡见不鲜。为了确保邮件能够顺利送达目标用户,AokSend将探讨一些有效的策略&#x…

【亲测好用】神级PSAI插件大揭秘:三款创成式修图神器,让你解放双手

PsBeta被停用后,小编一直想找到能够平替PsBeta创成式填充功能的插件。 功夫不负有心,终于被我找到啦,现在就给大家揭秘这三款宝藏修图神器,希望能够帮到大家。 1.插件名称:Starai 无需科学上网,还自带提示…

wireshark常用过滤命令

wireshark常用过滤命令 wireshark抓包介绍单机单点:单机多点:双机并行: wireshark界面认识默认布局调整布局(常用)显示FCS错误 wireshark常见列Time回包数据报对应网络模型 wireshark基本操作结束抓包再次开始抓包 **wireshark常用过滤命令**…

乐鑫云方案研讨会回顾|ESP RainMaker® 引领创业潮,赋能科创企业

近日,乐鑫信息科技 (688018.SH) ESP RainMaker 云生态方案线下研讨会和技术沙龙在深圳成功举办,吸引了众多来自照明电工、新能源、安防、宠物等垂类领域的客户与合作伙伴。活动现场,与会嘉宾围绕产品研发、测试认证、品牌构建、跨境电商等多维…

揭秘循环购:消费即收益,如何助力商家月销百万?

大家好,我是吴军,今天要和大家分享一种颠覆性的商业模式——循环购。你是否听说过“消费1000送2000”这样的促销活动?是不是觉得太不可思议,商家岂不是在“送钱”?别急,让我为你揭开这背后的秘密。 循环购&…

路由器ARP和ARP-proxy(华为)

#交换设备 路由器ARP和ARP-proxy(华为) 当一个广播域中的主机想要访问另外一个广播域的主机时,会广播ARP报文,询问目标IP地址所对应的MAC地址,默认情况下,arp记录是设备自动生成的,但是这样会容易受到ARP欺骗攻击&am…

基础入门篇 | YOLOv10 项目【训练】【验证】【推理】最简单教程 | YOLOv10必看 | 最新更新,直接打印 FPS,mAP50,75,95

文章目录 训练 --train.py推理 --detect.py验证 --val.py不训练,只查看模型结构/参数量/计算量 --test.pyYOLOv10 是基于 YOLOv8 项目的改进版本,目前已经被 YOLOv8 项目合并,所以两个算法使用方法完全一致~ 今天我给大家展示一种非常方便的使用过程,包含【训练】【验证】…

盘立方期货Kdj幅图指标公式源码

盘立方期货Kdj幅图指标公式源码&#xff1a; N:250; WR1:100-100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N)),DOT,COLORLIGHTGREEN; EW:EMA(WR1,5); STICKLINE(WR1<20,WR1,20,1,0),COLORYELLOW; STICKLINE(WR1>80,WR1,80,1,0),COLORYELLOW; RSV:(CLOSE-LLV(LOW…