Query2doc——Query改写

【搜索排序】召回综述Semantic Models for the First-Stage Retrieval: A Comprehensive Review 信息检索,召回 阅读详情
AI摘要

本文介绍了一种名为Query2doc的方法,通过大语言模型生成伪文档扩展查询,显著提高了稀疏和密集检索系统的性能。实验显示在MSMARCO和TRECDL数据集上,Query2doc提高了BM25的性能,并对密集检索器也有积极影响,尽管存在效率局限性。

大模型LLM最近一年比较火,但是可能由于数据量较大,存在一些矛盾的数据或者质量差的数据,就会导致大模型存在幻视情况,即存在严重不符合事实的情况。随着之而来,RAG(Retrieval Augmented Generation),作为补充缓解LLM的幻视的情况。更加高效的检索尤为重要,Query2doc一种通过LLM改写Query,提高检索的能力。

论文:

Query2doc: Query Expansion with Large Language Models

概述:

本文介绍了一种简单但有效的查询扩展方法,称为 query2doc,旨在提升稀疏(如BM25)和密集检索(如E5,bge-m3等 )系统的性能。该方法首先通过少量样本提示大型语言模型(LLMs)生成伪文档,然后使用生成的伪文档来扩展查询。LLMs 是训练于网络规模的文本语料库,并擅长于知识记忆。来自 LLMs 的伪文档通常包含高度相关的信息,有助于查询消歧并引导检索器。实验结果表明,query2doc 在 MS MARCO 和 TREC DL 等信息检索 数据集上,将 BM25 的性能提升了 3% 至 15%,且无需对模型进行微调。此外,我们的方法无论是在领域内还是领域外的结果上,都对最先进的密集检索器有所裨益。

为什么需要改写或者需要query2doc?

搜索查询往往简短、模糊或缺乏必要的背景信息,LLMs 能够提供相关信息来引导检索系统,因为它们通过预训练在万亿量级的标记上,记住了大量的知识和语言模式。

方法:

简单理解,就是用LLM根绝Query,生成回答doc,然后利用Query融合doc进行检索。

如何生成答案?

在这里插入图片描述
Prompt为:Write a passage that answers the given query:
论文结合k=4个样例作为few-shot使LLM能够参考样例,生成我们需要的回答,其中样例源于训练集,进行随机采样获取。
生成的回答展示:
在这里插入图片描述

如何利用生成的结果doc?

稀疏检索:BM25

由于查询q通常比生成的文档(doc即伪文档)短得多,为了平衡查询和doc伪文档之间的相对权重,我们在与伪文档doc连接之前,将查询重复n次,以提高查询词的权重。
q u e r y = c o n c a t ( { q } × n + doc ) query=concat( \{q\} \times n + \text{doc}) query=concat({q}×n+doc)
其中n设置5效果比较好,并且不需要进行微调。

密集检索

对于密集检索,其结果仅仅需要通过[SEP]拼接,LLM生成的doc。我理解,模型应该需要重新进行训练。
q u e r y = c o n c a t ( q + [ S E P ] + doc ) query =concat( q+ [SEP]+\text{doc}) query=concat(q+[SEP]+doc)

实验结果

在这里插入图片描述

分析

模型规模的影响

在这里插入图片描述
随着从13亿参数的模型过渡到1750亿参数的模型,性能稳步提升。由较小的语言模型生成的文本往往更短,并且包含更多的事实性错误。此外,使用更好的训练数据和改进后的指令调优,“davinci-003”模型的表现超过了其早期版本“davinci-001”。最近发布的GPT-4(OpenAI,2023)取得了最佳结果。

怎么使用query 和生成的doc

二者一起使用效果更好,如下图所示:
在这里插入图片描述

局限性

一个明显的局限是检索的效率。我们的方法需要在大型语言模型(LLMs)上运行推理,但由于逐个符号的自回归解码,这可能会显著降低速度。此外,在使用query2doc时,随着扩展后查询术语数量的增加,搜索倒排索引的速度也会变慢。
在这里插入图片描述

QP:Query改写 综上,Query改写链路可以看做为一个小型搜索系统,所以搜索系统中的方法或多或少可以作为Query改写实现中的方案参考。Query改写的核心目标是通过增强查询的准确性、表达的丰富性和意图的清晰度,让系统在更大范围内捕捉和满足用户的搜索意图,从而提升整体的用户体验和检索效果。所以,在设计改写方案时,需要明确改写目标和应用场景。在评估和迭代优化中通过A/B测试和用户反馈收集以优化改写规则和模型,确保改写系统不断学习和改善。 阅读详情

相关推荐

RAG之query改写优化

RAG系统涉及到对用户query做检索召回,好的query更有利于召回正确的结果。所以query analysis要做的就是对输入query做一个改写,让其语义更完善或格式更清晰。基于query改写好的文档如下,然后我们可以分别基于query和文档做检索。

qq_30921029的博客 3725

【 双向改写】让检索更聪明的秘密武器(Query2Doc & Doc2Query)

双向改写技术,包括Query2Doc和Doc2Query,是解决智能问答系统中查询与文档匹配问题的有效方法。Query2Doc通过扩展短查询语句,使其更接近文档的语义,从而提高匹配效率。例如,将“如何提高模型训练效率?”扩展为包含具体技术方法的详细说明。Doc2Query则从文档中生成可能的用户查询,帮助构建查询与文档的映射,适用于文档内容庞大或结构不统一的场景。这两种技术通过丰富语义和增加查询入口,优化了向量匹配和检索模型的训练数据,广泛应用于RAG问答系统、搜索引擎优化和文档预处理等领域。实现上,可以利

qq_62223405的博客 1881

医学影像处理实战:如何用Python+SimpleITK搞定DICOM/NIfTI重采样(附完整代码)

本文详细介绍了如何使用Python和SimpleITK库实现医学影像(DICOM/NIfTI格式)的智能重采样技术。通过实战代码演示,帮助读者掌握医学图像处理中的关键步骤,包括环境搭建、数据准备、核心算法实现和质量验证,解决医学AI领域中的影像标准化难题。

linux的博客 981

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

这个时候就可以分析bad case。找回链路不信任关键链路漏召回相似度计算有问题的规则心法利器[37] | bad case治疗术:认知篇心法利器[38] | bad case治疗术:现状篇心法利器[39] | bad case治疗术:分析篇心法利器[40] | bad case治疗术:解决篇心法利器[32] | 一些印象深刻的bad caseML&DEV[13] | bad case分析NLP.TM[22] | 如何修正NLP问题的bad case。

消极的人永远是对的,积极的人选择勇往直前 1768

嘉立创EDA报错:元件引脚与焊盘未对应报错解决记录

原件引脚与焊盘未对应报错解决方法,一文总结!

2303_77013775的博客 1万+

【翼型】基于Matlab的NACA翼型气动性能仿真与优化【附源码】

本文详细介绍了如何使用Matlab进行NACA翼型的气动性能仿真与优化。内容涵盖从生成NACA翼型坐标、利用面板法快速估算升阻力,到进阶的粘性流模拟与优化设计入门。通过清晰的代码示例和分步指南,帮助读者掌握基于Matlab的翼型分析与优化流程,为飞行器或叶片设计提供实用工具和方法。

weixin_29032489的博客 408

【IR 论文】Query2doc — 使用 LLM 做 Query Expansion 来提高信息检索能力

Query2doc —— 使用 LLM 做 Query Expansion 来提高信息检索能力

VLyb 3782

OpenHarmony实战开发-如何实现文件分布式同步编辑

在分布式文件场景中,分布式设备管理包含了分布式设备搜索、分布式设备列表弹窗、远端设备拉起三部分。首先在分布式组网内搜索设备,然后把设备展示到分布式设备列表弹窗中,最后根据用户的选择拉起远端设备。两台设备组网的分布式场景是工作中常常需要的。这样的分布式场景有助于加快工作效率,减少工作中的冗余,本例将为大家介绍如何实现上述功能。​ (2)订阅分布式数据变化:通过this.distributedObject.on(‘status’, this.statusCallback)监听分布式数据对象的变更。

2401_82546228的博客 750

Ai入门系列之 - RAG高效召回新技巧:双向改写(Query2Doc与Doc2Query)详解

在RAG(检索增强生成)系统中,召回效果直接决定了生成内容的准确性与可靠性。传统检索(如向量检索、BM25)常因用户查询与文档的语义鸿沟(如短查询 vs 长文档、口语化 vs 专业化)导致召回率低下。双向改写(Bidirectional Rewriting)作为RAG高效召回的前沿技巧,通过**Query2Doc(查询→伪文档)与Doc2Query(文档→伪查询)**的双向转换,弥合语义鸿沟,显著提升召回率与召回多样性。

沛哥儿的专栏 1203

BRAM在图像处理缓存中的实现:完整示例解析

深入讲解如何利用BRAM高效实现图像处理中的数据缓存,结合实际案例解析BRAM的应用优势与设计细节,提升系统性能。

weixin_29443363的博客 332

从零开始掌握Python机器学习:七步教程 基础篇

前言 「开始」往往是最难的,尤其是当选择太多的时候,一个人往往很难下定决定做出选择。本教程的目的是帮助几乎没有 Python 机器学习背景的新手成长为知识渊博的实践者,而且这个过程中仅需要使用免费的材料和资源即可。 第一步:基本 Python 技能 如果我们打算利用 Python 来执行机器学习,那么对 Python 有一些基本的了解就是至关重要的。 首先,你需要安装 Python。因为我们后...

hcgx2018的博客 1613

RAG 查询改写方法:HyDE、LLM4CS、Query2doc、rewrite-retrieve-read、Iter-RetGen、STEP-BACK Prompting

RAG 查询改写方法:HyDE、LLM4CS、Query2doc、rewrite-retrieve-read、Iter-RetGen、STEP-BACK Prompting思路介绍

beingstrong的博客 7718

SAP Gateway OData V4 大数据集合分页机制详解,$skiptoken、Next Link 与服务端分页

更关键的是确定稳定排序方式,选择可靠的分页游标,限制单次 Response Size,正确生成 Next Link,让 Consumer 把 Next Link 当成不可解释的协议结果,并明确区分 Pagination、Delta Synchronization 和 Snapshot Consistency。从协议表达来看,请求没有问题。假设系统内部配置为每次最多返回 100 条,而数据库里一共存在 12580 条符合条件的销售订单,那么第一次响应只包含前 100 条,同时附带一个 Next Link。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 50

RAG查询改写方法概述

在RAG系统中,用户的查询是丰富多样的,可能存在措辞不准确和缺乏语义信息的问题。这导致使用原始的查询可能无法有效检索到目标文档。因此,将用户查询的语义空间与文档的语义空间对齐至关重要,目前主要有查询改写和嵌入转换两种方法。查询改写的方法包括Query2Doc,Doc2Query,HyDE,Step-Back Prompting,Rewrite-Retrieve-Read,ITER-RETGEN,Multi-query。

qq_43814415的博客 4060

SAP_FICO模块-资产减值功能对折旧和残值的影响

SAP_FICO模块-资产减值操作对资产历史折旧以及后续折旧的影响,包括减值操作的配置前提

风沙的博客 2802

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

AI Agent开发实战⑯|Query改写与扩展:让检索更懂用户意图

本文介绍了提升检索效果的Query改写与扩展技术,主要解决用户查询与文档表述不一致导致的召回率问题。文章分析了三类常见问题:表达不准确、意图模糊和长尾词缺失,并提出了四种改写策略:1)基于领域词典的同义词扩展;2)利用大模型生成语义相同的不同表述;3)HyDE技术通过生成假设答案进行检索;4)Query2Doc方法将查询扩展为文档描述。最后介绍了多版本查询结果的融合算法RRF(Reciprocal Rank Fusion),通过加权排序综合各查询版本的检索结果。这些技术能有效提升语义检索的召回精度,使系统更

chreehero的博客 246

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LLM Agent之再谈RAG的召回多样性优化

在微软提出的rewrite-retrieve-read框架中,使用大模型作为rewriter,Bing搜索作为Retriever,chatgpt作为Reader,在QA任务上,尝试使用PPO微调改写模型,Reward模型的目标是不同改写query召回后推理内容和真实答案的Exact Match和F1。谷歌也做了类似的尝试。朴素模式:不同的Embedding模型,常见的就是OpenAI的Ada,智源的BGE,还有Text2vec系列,使用多路embedding模型同时召回,或者加权召回的方案,取长补短。

2301_81888214的博客 1941

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

解密Prompt系列20. LLM Agent之再谈RAG的召回多样性优化

RAG最关键的一环其实不是LLM而是相关内容的召回,作为大模型推理的上文,优秀的内容召回应该满足以下条件:

Android23333的博客 836

Agent Plan × DeepSeek Harness:面向 DeepSeek 的 Query 改写与多路召回融合策略对比

DeepSeek 系列模型(DeepSeek-V2/V3、DeepSeek-Coder、DeepSeek-R1 等)以稀疏 MoE 架构与高性价比推理著称,在中文通用理解、代码、数学推理上表现突出。然而当面对企业私域知识、最新时讯、长尾专业语料时,单凭模型参数化知识难以保证事实正确性与可追溯性,RAG 仍是事实增强的主流方案。RAG 的瓶颈通常不在生成,而在召回。Query 表达:用户原始提问往往口语化、信息不全、含指代或隐式假设;召回路径。

weixin_65162103的博客 173

五、AI大模型-RAG召回策略

RAG高效召回方法。改进检索算法、引|入重排序(Reranking)、优化查询扩展、双向改写、索引扩展 、Small-to-Big。Query改写和Query+联网搜索说明。

eternal_tc的博客 805

【RAG技术】- RAG系统调优手段之高效召回(通俗易懂附案例)

精准雷达:RAG召回策略解析 本文深入探讨检索增强生成(RAG)系统中的核心召回策略。通过四项关键技术实现精准信息定位:1) Rerank模型对初步结果二次排序,提升相关性;2) 双向改写(Query2Doc/Doc2Query)解决查询与文档语义鸿沟;3) Small-to-Big索引兼顾检索效率与长文处理;4) 拓展方案包括HyDE的假设文档生成、多向量检索和基于图的关联挖掘。文章结合生活案例和示例代码,展示了如何构建高效"信息捕手",并指出未来发展方向。这些策略共同构成RAG系统的

【javatoai17819112191】→Java && python && AI Agent工程师 3427

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

前沿重器栏目主要给大家分享各种大厂、顶会的论文和分享,从中抽取关键精华的部分和大家分享,和大家一起把握前沿技术。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。(算起来,专项启动已经是20年的事了!)2023年文章合集发布了!在这里:又添十万字-CS的陋室2023年文章合集来袭往期回顾前沿重器[33] | 试了试简单的prompt前沿重器[34] | Prompt设计——LLMs落地的版本答案...

baidu_25854831的博客 1465

《LLM+搜索改写》10篇论文一览

整理了10篇较新的LLM应用于搜索改写的文章供大家学习参考

weixin_57384302的博客 3160

大模型应用开发(七):RAG高效召回的有效方法

本文系统阐述了RAG架构中召回环节的核心优化策略。召回质量直接影响系统上限,是抑制幻觉的第一道防线。主要方法包括:合理设置TOP_K参数(推荐K=5);引入知识图谱实现精准推理;采用重排序模型优化结果;通过查询扩展增强语义多样性;实施双向改写(Query2Doc和Doc2Query)提升短文本检索效果;结合离散与连续索引扩展实现混合召回。针对长文档场景,建议采用Small-to-Big机制平衡效率与完整性。落地优先级建议:先调整基础参数,再实施混合索引和重排序,最后考虑知识图谱等进阶优化。核心原则是&quo

zy419547093的专栏 749

2W8000字揭秘RAG:从基础到高级的逆袭,彻底重塑大模型!

在运行时,使用相同的编码器模型将用户的查询向量化,使用这个向量在索引中进行搜索,确定前k个结果,从数据库中检索相应的文本块,并将它们作为大语言模型提示的上下文输入。

Langchain的博客 655
上一篇: 如何修改大模型的位置编码 --以LLama为例
下一篇: DBRX: A New State-of-the-Art Open LLM——基于专家LLM
Re:fused
博客等级 码龄9年 474粉丝 162原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值