首页 > 其他分享 >Query Rewriting 优化技术

Query Rewriting 优化技术

时间:2024-08-02 23:24:38浏览次数:6  
标签:rewriting RAG 语义 Rewriting user queries Query 优化

在检索增强生成(Retrieval Augmented Generation,RAG)系统中,经常会出现与 user’s original queries(译者注:用户最开始输入的搜索问题或者其他需求。)有关的问题(例如,词汇不准确或缺乏语义信息),导致 RAG 系统难以理解。比如像 “2020 年 NBA 冠军是洛杉矶湖人队!请告诉我 langchain 框架是什么?” 这样的问题,如果直接搜索这个问题,可能会导致 LLM 给出错误的回答或无法回答的模型响应。

因此,将 user queries 的语义空间(semantic space)与系统中存储的文档的语义空间统一起来十分重要。 Query rewriting(译者注:对 user queries 进行重新构造或改写的过程,尽量修正 user queries 中可能存在的错误的、模糊的或不准确的部分。) 技术可以有效解决一问题。其在 RAG 中的作用如图 1 所示:

图 1: RAG 中的 Query rewriting 技术(由红色虚线框标记)。图片由作者提供。

从其在 RAG 系统中所处位置这一角度来看,Query rewriting 是一种 pre-retrieval 方法(译者注:在进行文档检索之前对 Query rewriting 进行重写或改进。)。该图大致说明了 Query rewriting 在 RAG 系统中的位置,在下文将介绍一些可以改进这一过程的算法。

<

标签:rewriting,RAG,语义,Rewriting,user,queries,Query,优化
From: https://blog.csdn.net/m0_70960708/article/details/140825067

相关文章

  • 寻找PID系统优化参数问题的解决方案
    源代码:1nump=[4];2denp=[1684];3sysGp=tf(nump,denp);4den=[10];5t=0:0.01:8;6forK=3:0.2:57fora=0.1:0.1:38num=[K2*K*aK*a^2];9sysG=tf(num,den);10sysGz=feedback(series(sysG,sysGp),1);11sys......
  • LeetCode | 303 RangeSumQueryImmutable
    https://github.com/dolphinmind/datastructure/tree/datastructure-array-02分析所求解的区间[left,right]具有连续性,执行常规for循环计算,[0,left-1]的区间元素累加和与[0,right]的区间元素累加和,有重复的运算区间[0,left)。累加和与长跑比赛其实一致,求取[left,right]区......
  • ES性能优化:全网最全的一篇
    硬件CPU:选择高性能的CPU,ES依赖CPU处理搜索请求和数据索引。多核CPU有助于提高并行处理能力。内存:内存是关键。确保有足够的内存给操作系统和ES本身。建议分配给ES的JVM堆内存大小是总内存的一半,但不要超过32GB,以避免堆外内存压缩问题。磁盘:使用SSD而不是HDD,SSD能显著提高......
  • [Typescript] Advance query builder example
    typeBaseTable={[colName:string]:string|number|boolean;}typeColumns<Tablesextends{[tableName:string]:BaseTable}>={[KinkeyofTables]:Kextendsstring?(keyofTables[K]extendsstring?`${K}.${keyofTables[K]}`:never):......
  • SpringBoot入门、进阶、强化、扩展、知识体系完善等知识点学习、性能优化、源码分析专
    场景作为一名Java开发者,SpringBoot已经成为日常开发所必须。势必经历过从入门到自学、从基础到进阶、从学习到强化的过程。当经历过几年企业级开发的磨炼,再回头看之前的开发过程、成长阶段发现确实是走了好多的弯路。作为一名终身学习的信奉者,秉承Java体系需持续学习、持续优......
  • [Typescript] Query builder example
    classQueryBuilder{privatefields:string[]=[]privatewheres:Record<string,string>={}privatetable:string=""select(...columns:string[]){this.fields=columnsreturnthis}from(table:string){t......
  • Java入门、进阶、强化、扩展、知识体系完善等知识点学习、性能优化、源码分析专栏分享
    场景作为一名Java开发者,势必经历过从入门到自学、从基础到进阶、从学习到强化的过程。当经历过几年企业级开发的磨炼,再回头看之前的开发过程、成长阶段发现确实是走了好多的弯路。作为一名终身学习的信奉者,秉承Java体系需持续学习、持续优化的信念。不惜耗费无数个日日夜夜,耗......
  • EF Core性能优化技巧
    代码层面的优化1.使用实例池EFCore2.0为DbContext引入新的注册方式:透明地注册了DbContext实例池,使用这种方式可以避免始终创建新的实例,EFCore将重置其状态并将其存储在内部池中;当下次请求新的实例时,将返回该共用实例,而不是设置新的实例使用示例:services.AddDbContext<Han......
  • SourceGenerator 生成db to class代码优化结果记录
    优化上一次实验代码写的较为随意,本次穷尽所学,优化了一把,不过果然还是没比过Dapperaot,虽然没使用Interceptor,但理论上其优化不该有这么大差距知识差距不少呀,都看不懂Dapperaot利用了什么姿势领先,有大神们能教教吗?优化点减少类型判断提前做类型判断,并在生成时利用......
  • HT-018 Div3 能量消耗 题解 [ 绿 ] [ 线性 dp ] [ 前缀和优化 ]
    能量消耗:一个前缀和优化dp的大典题,要是数据水一点\(O(n^3)\)都能硬草过去。思路显然,定义\(dp[i]\)为考虑前\(i\)个塔,并且将前面的精灵全部收集的最小代价。于是转移:\[dp[i]=min(dp[i],dp[j]+w(j,i)+c[i])\]其中\(0\lej<i\lem\),\(w(j,i)\)表示收集从塔\(j\)到......