Skip to content

rag参考资料: https://datawhalechina.github.io/all-in-rag/#/chapter5/16_formatted_generation

RAG的优化方案

1. RAG优化的三大阶段

1. 提问阶段

2. 检索阶段

1.RAG高效召回方法

  1. 合理的设置token_k
    一般比较优的文档个数是5个左右,但是要根据实际的文档数量进行调整。
  2. 改进索引算法
    知识图谱: 利用知识图谱中的语义信息和实体关系,增强对查询和文档的理解,提升召回的相关性

基于知识图谱的RAG检索方法: GraphRAG
LightRAG

  1. 引入重排序(Reranking)
    重排序模型: 对召回结果进行重排,提升问题和文档的相关性。常见的重排序模型有 BGE-RerankCohere Rerank
  • 场景:用户查询“如何提高深度学习模型的训练效率?”

  • 召回结果:初步召回10篇文档,其中包含与“深度学习”、“训练效率”相关的文章。

  • 重排序:BGE-Rerank对召回的10篇文档进行重新排序,将与“训练效率”最相关的文档(如“优化深度学习训练的技巧”)排在最前面,而将相关性较低的文档(如“深度学习基础理论”)排在后面。

混合检索: 结合向量检索和关键词检索的优势,通过重排序模型对结果进行归一化处理,提升召回质量。

  1. 优化查询扩展
    相似语义改写: 使用大模型将用户查询改写成多个语义相近的查询,提升召回多样性
    === 例如,LangChain的MultiQueryRetriever 支持多查询召回,再进行回答问题。

3. 生成阶段