Query Transformations有五种方法:1、Multi Query Retriever
2、RAG-Fusion
3、Decomposition
4、Step Back
5、HyDE
主要目的将输入的query变为一种便于检索的形式。
1、Multi Query Retriever
利用LLM将query生成多个与query相似的问题,然后每个问题根据向量数据库检索出相关上下文,并去除重复上下文,构建背景知识,进行RAG问答。
2、RAG-Fusion
与Multi Query Retriever比较相似,区别在于将每个检索出来的文档进行一个互惠排名融合算法RRF,原理是对每个文档的排名进行加权融合,得到所有问题检索出来文档的排名,保留前n个。
3、Decomposition
顺序解决
将问题拆分为多个子问题,然后再进行vector DB检索,递进式回答问题,上个问题答案和下一个问题一起输入LLM中进行回答。
独立回答最后汇总结果
4、Step Back
基于思维链推理,从一个具体的问题,通过一个few-shot的方式,生成一个更层次更抽象的问题,以便检索出相关文档。
5、HyDE
hypothetical document embedding ,根据query生成一个假设的doc,然后根据doc去检索相关的doc出来。
代码:rag-from-scratch/rag_from_scratch_5_to_9.ipynb at main · langchain-ai/rag-from-scratch · GitHub