这块主要是提一下最近看到的一些RAG技术中,针对问答全面性做的一些优化:
Shifting from Ranking to Set Selection for Retrieval Augmented Generation
这里是做的instruction turning,所以就不扣技术了,主要就是他的idea:
* 不是去关注单个文档/chunk和问答的相关性,而是看整体的覆盖率。
* 避免召回了很多语意相似得分很高的chunk,反而无法全面的回答问题
Knowledge-Aware Diverse Reranking for Cross-Source Question Answering
LiveRAG的得奖算法:
多样性重排
AWS GraphRAG
在aws graphrag中也看到了类似的手段,召回文档后,会根据语意相似度过滤掉一些非常相似的chunk,提高召回内容的多样性。
大概感觉就是,选择新的chunk的时候,不只是选择得分高的,也要选和已选择的chunk集合中语意差距大的。
上面提到的,根据相似度选择chunk集合,以及根据第一轮召回的文档重新生成问题做第二轮的rerank都可以尝试一下。
* 其中这个两轮的操作,感觉是可以融入到Agentic的框架里的。第一轮search之后生成答案,然后做reflection,生成新的query,再分别RAG一下。
* 然后在单一的RAG pipeline里,可以去根据相似性去重
文章评论