Skip to content

1. 高级RAG技术及其优化方法

高级RAG技术是对基础RAG框架的扩展和优化,旨在解决传统RAG的局限性并提高系统性能。常见方法包括多阶段检索、查询重写、混合检索、自适应检索、Self-RAG、递归检索、上下文压缩、检索增强提示、多模态RAG和对话式RAG。

多阶段检索 (Multi-stage Retrieval)

原理:将检索过程分为多个阶段,逐步细化和提高相关性
实现方式:

  • 粗检索:使用高效但简单的方法(如BM25)快速筛选候选文档

  • 精检索:对初步筛选结果使用复杂语义模型进行排序

  • 重排序:使用交叉编码器等模型进行最终排序
    优势:平衡检索效率与准确性,适合大规模知识库

查询重写 (Query Rewriting)

原理:使用大模型重写原始查询,使其更适合检索系统
实现方式:

  • 扩展查询:添加相关术语和同义词

  • 分解复杂查询:将复杂问题拆成多个简单查询

  • 上下文感知重写:考虑对话历史

  • 多样化重写:生成多个不同角度的查询版本
    优势:提高检索召回率,处理含糊或不完整的用户查询

混合检索 (Hybrid Retrieval)

原理:结合多种检索方法优势
实现方式:

  • 关键词+语义混合:同时使用BM25和向量相似度搜索

  • 多模型融合:使用不同嵌入模型检索并融合结果

  • 加权组合:根据查询类型动态调整方法权重
    优势:提高检索鲁棒性和覆盖面

自适应检索 (Adaptive Retrieval)

原理:根据查询特性和上下文动态调整检索策略
实现方式:

  • 查询分类:识别查询类型并应用相应策略

  • 动态参数调整:根据查询特性调整检索参数

  • 反馈学习:从用户交互中优化检索策略
    优势:提供定制化检索体验,提高整体性能

Self-RAG

原理:模型自我评估检索结果相关性和生成内容质量
实现方式:

  • 检索评估器:评估检索结果有用性

  • 生成评估器:评估生成内容是否需要外部支持

  • 自主决策:模型决定何时检索及使用何种结果

  • 反思机制:生成后自我评估并可能重新生成
    优势:减少不必要检索,提高生成质量和可靠性

递归检索 (Recursive Retrieval)

原理:基于初步生成结果进行多轮检索
实现方式:

  • 生成-检索-生成循环:使用初步结果引导进一步检索

  • 知识图谱遍历:沿关系递归检索相关信息

  • 深度探索:根据初步信息确定深入方向
    优势:处理复杂查询,获取全面深入信息

上下文压缩 (Context Compression)

原理:压缩检索结果以适应模型上下文窗口限制
实现方式:

  • 提取式摘要:提取文档关键句

  • 生成式摘要:生成简洁摘要

  • 信息蒸馏:保留关键信息同时减少冗余
    优势:在有限上下文中包含更多相关信息

检索增强提示 (Retrieval-Augmented Prompting)

原理:使用检索结果动态构建优化提示模板
实现方式:

  • 示例检索:检索相似问答作为少样本示例

  • 模板选择:根据查询类型选择提示模板

  • 动态指令:根据检索内容调整模型指令
    优势:提高模型对检索内容利用效率,增强生成质量

多模态RAG

原理:处理和检索文本以外的模态(图像、视频、音频)
实现方式:

  • 跨模态嵌入:将不同模态内容映射到同一嵌入空间

  • 多模态索引:建立支持多模态的检索索引

  • 模态转换:检索和生成过程中进行必要转换
    优势:处理丰富信息类型,适用于多媒体理解和生成

对话式RAG

原理:为多轮对话场景优化RAG系统
实现方式:

  • 对话历史感知:考虑完整对话历史进行检索

  • 增量检索:对话中动态更新信息

  • 记忆机制:维护对话状态和已检索信息

  • 主动检索:预测用户问题提前检索
    优势:提供连贯上下文相关的对话体验,减少重复检索

举例类比记忆

  • 多阶段检索:像筛选简历,先粗略筛选,再详细面试,最后评分排序

  • 查询重写:像老师把学生的问题改写成更清楚的问法

  • 自适应检索:像导航系统根据实时路况动态调整路线

知识点易错提醒

  • 不要只理解RAG为“检索加生成”,需理解不同高级策略如何优化召回、相关性和效率

  • Self-RAG 和递归检索容易混淆,前者强调模型自评和自主决策,后者强调多轮生成-检索循环

延伸面试提问及应答建议

  • 面试问:高级RAG和基础RAG的主要区别是什么?
    应答:高级RAG引入多阶段检索、查询重写、自适应策略等优化方法,不仅关注生成质量,也兼顾检索效率和相关性,而基础RAG通常只进行单轮检索+生成。

  • 面试问:如何选择多模态RAG还是文本RAG?
    应答:根据任务信息类型决定,多模态RAG适合处理图像、音频、视频等多模态内容,文本RAG适合纯文本任务。

  • 面试问:Self-RAG的优势及应用场景?
    应答:Self-RAG通过自我评估减少不必要检索,提高生成质量,适合实时问答、知识密集型对话系统。

2. 按检索方式划分的RAG类型

RAG可以根据检索方式划分为向量式RAG、关键词式RAG、GraphRAG和混合式RAG,每种方式适用于不同场景和需求。

向量式RAG

原理:利用词嵌入和向量相似度进行文档召回
实现方式:

  • 将查询和文档映射到向量空间

  • 通过向量相似度(如余弦相似度)进行检索
    优势:能够捕捉语义相似性,适合处理表达多样化的查询

关键词式RAG

原理:基于关键词匹配进行检索
实现方式:

  • 统计关键词在文档中的出现频率

  • 使用算法如BM25计算文档相关性
    优势:实现简单,效率高,对短文本或高频词检索表现良好

GraphRAG

原理:基于实体节点间关系进行结构化检索
实现方式:

  • 构建知识图谱,将实体和关系表示为节点和边

  • 根据查询提取相关子图

  • 将子图信息转换为自然语言供生成模型使用
    优势:能够处理复杂关系型查询,适合知识密集型任务

混合式RAG

原理:结合多种检索方法的优势
实现方式:

  • 同时使用向量检索、关键词检索和GraphRAG

  • 通过加权融合结果,如 score = α·cosine_sim + (1-α)·BM25_score
    优势:兼顾语义理解、关键词匹配和关系信息,提高检索覆盖面和鲁棒性

举例类比记忆

  • 向量式RAG:像根据意思找相似话题

  • 关键词式RAG:像找包含特定词的文章

  • GraphRAG:像在家谱或组织架构图中找关联人物

  • 混合式RAG:像同时参考字典、百科和家谱综合判断

知识点易错提醒

  • 容易混淆向量式和关键词式RAG,前者强调语义相似,后者强调词面匹配

  • GraphRAG需要将结构化信息转换为自然语言,否则生成模型难以直接使用

延伸面试提问及应答建议

  • 面试问:什么时候选择GraphRAG而不是向量或关键词RAG?
    应答:当任务涉及复杂实体关系或知识图谱查询时选择GraphRAG,可提供结构化上下文,提升生成精确性。

  • 面试问:混合式RAG的权重α如何设定?
    应答:权重可根据任务需求和检索结果评估动态调整,通常通过实验或验证集调优,以平衡语义相似性和关键词匹配。

  • 面试问:向量检索在处理短查询时可能遇到什么问题?
    应答:短查询向量信息有限,可能导致语义覆盖不足,可结合关键词检索或查询扩展提高召回率。