RQ-RAG: RAG中的的query改写、分解、消歧 (代码开源)

向量数据库大模型智能语音交互

“ chatglm - rlhf 今天arxiv挂了篇论文,感兴趣的可以瞅瞅。


        
          
https://arxiv.org/abs/2404.00610  
https://github.com/chanchimin/RQ-RAG  

      

picture.image

结论:端到端的方式训练了一个7B Llama2模型,能够通过改写、分解和澄清歧义来动态地 改进搜索query,提高RAG系统整体效果。

  1. 数据集构造

给定原始数据集的输入-输出对(Xorigin, Yorigin),简而言之,数据集构建可以看作如下公式:

picture.image其中为一个特殊标记,,里面的type表示具体操作,例如,改写,分解,消除歧义;[Di1, Di2, . . . , Dik]表示召回的文档。

为了保证效率,这个过程当然交给chatgpt咯。大概流程分为3步:

  • 首先将收集到的池中的任务分为前面提到的三个类别。这一步很简单,因为每个数据集都对应一个特定的数据类型。
  • 对于每种数据集类型,我们首先使用ChatGPT和预定义的提示模板来生成准确的查询。然后,使用这个查询来搜索来自外部数据
  • 然后,ChatGPT根据优化后的查询及其相应的上下文生成更新的响应。通过重复这个过程,总共积累了大约40k个实例。

“ 文章附录提供了构造多轮数据的提示词、问题分解的提示词、问题消歧的提示词

picture.image

  1. 模型训练

没啥说的,跑呗

picture.image

  1. 采样策略

在每个时间步,模型可以选择改写、分解或消除给定查询的歧义,也可以选择直接生成响应。鉴于这种内在特性,设计了一种树解码策略。然而,使用不同的查询来搜索会产生不同的检索上下文,从而导致 不同的最终答案。所以,如何采样最合适的路径是关键部分

picture.image

picture.image

  1. 结果
  • 单跳qa

picture.image

  • 多跳qapicture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
高性能存储虚拟化方案 NVMe over Fabric 在火山引擎的演进
在云计算中,虚拟化存储扮演着重要角色,其中 iSCSI 协议在业界开放、流行多年。近年来,拥有更优性能的 NVMe over Fabrics 协议也得到了发展。本次分享介绍了 NVMe over Fabrics 在云原生和虚拟化方向的演进工作和成果。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论