目的:
- 通过结合稀疏检索和稠密检索的混合检索解决基于向量检索RAG方案的暴露问题;
- 通过多路检索召回,提高整体RAG检索准确性和稳定性;
- 支持非结构化文档的知识准确检索;
优点:它同时考虑了查询与存储文档之间的语义相似性和关键字匹配度;
- 文本分片策略(文本特征处理)
文本分片:固定大小分块,内容感知分块,递归分块,专门分块(Markdown, html)
- 总体策略方向:以语义为单位进行切分, 切分策略按数据集进行适配和微调
- 文本切分常用的切割器:NLTK, SpaCy, langchian, llamaIndex;
- 1)文档分块策略:对文档进行大小块切分(检索子块,返回父块)
- 2)对切片文档进行相关问题生成,增强文档检索相关性(检索策略)
- 3) 按chunk大小进行滑动窗口切分:即把文档按照chunk分成有重叠的若干段
- 查询转换(query transformation)策略 (搜索策略)
- 对用户query进行清洗和关键词抽取,由于用户query存在部分口语化的词,如停用词等,直接抽取用户中的关键词做召回是一个有效的方式。
- queries 生成转换策略:对user query生成多个query, 单个query可能无法捕获用户感兴趣的全部范围,或者它可能太窄而无法产生全面的结果。
- 基于规则对user query重写: 补充用户query隐含的先验知识或上下文知识
- 基于LLM的转换(对复杂语句拆分多子句并行查询,对query生成多个query)
- 混合检索的重排与过滤算法策略(搜索策略):
- convex combination (权重加和):
- RRF(倒排融合算法):
- 多轮对话的上下文检索(搜索策略)
:基本方法:检索与用户查询相关的上下文,然后将其与内存缓冲区中的聊天历史记录一起发送给LLM, 让LLM在生成下一个答案时了解先前上下文
:聊天历史记录和最后一条消息都
- 响应合成策略 (回答生成策略):
-基本方法:将所有获取的上下文(>相关阈值)与查询一起连接并立即提供给LLM。
-其他响应合成策略:涉及多个LLM调用,以细化检索到的上下文并生成更好的答案:
- 1. 通过将检索到的上下文逐块发送到LLM来迭代地细化答案
- 2. 总结检索到的上下文以适应提示
- 3. 同的上下文块生成多个答案,然后将它们连接或总结
https%3A//arxiv.org/pdf/2005.11401.pdf
https%3A//arxiv.org/abs/2312.10997