RAG-Fusion是最近新发布的一个RAG项目,这个项目的目标是为了增强现有RAG的检索能力,提升RAG场景中对问题的回复质量。
RAG-Fusion有两个特点
一个是问题增强,它会生成多个和原始问题类似的相关问题,提升检索的覆盖范围。举个例子,比如我想查询的是环境问题对我们的生活都会有什么影响,它可能就会帮你生成环境问题对我们的健康会有什么影响,环境问题对我们的经济会有什么,类似这样的相关问题。这样在向量搜索的时候,检索结果的覆盖面和多样性就更好了
另外一个是RAG-Fusion使用了RRF-倒数排序融合作为排序方法,相比普通排序,RRF更依赖于每个排序中的相对排名,更擅长组合来自不同策略的查询结果,比如使用BM25和Embedding做多路召回,RRF提供的重排质量确实要更好一点
当然,RAG-Fusion在使用上也是存在一些不足的
一个是问题的增强可能会带来过度的泛化,例如回答可能会偏离主旨,而且也容易给大模型带来更多的噪声,干扰生成结果
另外一个就是问题的增强增加了大模型的调用次数,也会推高生成的成本,生成的时间也会更长
大家知道,RAG生成效果其实是比较依赖于检索的质量的,所以检索的质量提升了,生成也会效果更好。最近类似RAG-Fusion的项目这样关注检索增强的,还有不少,比如Self-RAG,之后我也会给大家再介绍下我们在这些项目上的一些经验
