AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Speculative RAG:采用投机生成多个草稿方式来增强RAG任务
发布日期:2024-09-25 20:37:11 浏览次数: 1667 来源:自然语言处理算法与实践


本次介绍一篇来自Google的paper:<Speculative RAG: Enhancing Retrieval Augmented Generation through Drafting>,提出一个Speculative RAG方法,其核心思路是采用投机生成多个草稿方式来增强RAG任务。对比其他RAG框架,其流程图如下:

核心思路:

1)先用比较小的模型作为the RAG drafter,其目的是用召回的部分片段并行来为query(Q)生成多个草稿结果(由答案+理由构成);

2)接着用比较大的模型作为the RAG verifier,其目的是对上步生成的多个草稿结果进行评估,选择一个分数最高的结果作为最终的生成的结果,完成RAG整体流程。

核心模块:

(1)RAG drafter的训练

为了训练RAG drafter模型,论文中先利用一个更强的大模型(Gemini-Ultra)生成关于answer对应的理由,

将原始数据集triplet (Q, A, D)变成(Q,A,D,E),其中Q为query,A为answer,D为检索的相关document,E为生成的理由rationale。基于新的数据,通过指令微调方式,训练一个P(A,E|Q,A)模型,即为M_drafter。下面为生成理由的指令形式。

(2)Multi-Perspective Sampling

对于一个query,召回n个相关的文档,文中是将这n个文档先聚类,然后从每个簇中选一个文档,来组成一个小集合(m个)来输入到M_drafter来生成对应的答案与理由。为了达到这个目的,提出了多样化的采样方式,具体为:

下图为在生成多个文档小集合后,利用M_drafter生成对应的答案(reponse)和理由(rationale)对应的指令。

(3)Generalist RAG Verifier

文中是选择一个通用大模型,不需要做为微调训练,作为一个打分的模型(RAG Verifier)。打分涉及三个评分函数:

 代表第j个结果由M_drafter生成的的概率,即为:

该分数可以由M_drafter在生成理由+答案时计算出来。

代表生成的理由+答案与query一致性的分数,简单理解在Q下,生成的理由+答案是否合适同时出现,即为:

代表生成的理由对答案的支撑性分数,即:

其中R代表一个反问句(“Do you think the rationale supports the answer, yes or no?),表示生成的理由支撑答案的分数(也为回答yes的概率)。

后面两种评估分数,是由RAG Verifier(M_verifier)模型来计算,计算逻辑是,将这些信息构成一个指令,然后输入到M_verifier,然后按递归的方式来计算概率,具体如下:

以上就是Speculative RAG整理思路,因为在生成的过程中,采用一个小些模型来并行去生成草稿答案,然后再用一个大模型对草稿进行选择,这跟投机解码(Speculative decode)有点类似。

看下主要实验效果:

显示:

1)文中提出Speculative RAG方法,在4个数据集上,对比其他RAG方法(self-RAG,corrective-RAG,standard RAG)取得最佳结果;

2)对比其他最好结果,Speculative RAG在PubHealth数据集有近4个点提升,在ARC-C数据集上诱超过5个点的提升;

3)Speculative RAG框架中,M_drafter、M_verifier两个模型结合起来使用效果更好,且M_drafter的mode size更大,效果也更好。

4)当Speculative RAG只有M_drafter模块时,效果也是接近其他最好结果;当两个模块共用一个7b模型时,也是取此佳的效果。


上图是Speculative RAG框架中各个环节消融实验,显示:1)多样化采样文档是有效的,大约有1-2个点提升;2)验证模型打分时很重要,能带来5个点的提升;

总结一下:分享了一个类似投机解码方式的RAG框架:Speculative RAG。核心想法是:先用一个小些模型并行为query生成多个答案,然后再用一大模型选择一个最佳答案最为最终结果。个人觉得有点类似投票方式的集成算法。其中有几个问题:1)在利用Q+A+D数据来生成理由数据时,存在有些噪声,因为不能保证召回的文档D就存在可以支撑A的理由信息;2)在Speculative RAG过程,M_drafter生成的多个草稿的质量很重要的,因为如果里面没有正确答案,后续怎么打分都是错的,这是打分选择机制决定的。针对这个问题,是不是可以利用之前的信息,让M_drafter重新生成下结果,这样起到修复的作用。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询