RAG技术体系问题的系统性总结
一、RAG技术体系核心思路
-
总体流程
数据预处理 → 分块(关键步骤) → 文本向量化 → Query向量化 → 向量检索 → 重排 → Query+上下文输入LLM → 输出生成
• 分块优化:动态分块、语义分块、混合分块策略可提升召回率(网页16)。• 向量检索模型:常用BM25(稀疏检索)、DPR(密集检索)、HyDE(假设性文档嵌入)。
-
外挂知识库的核心价值
• 解决LLM的遗忘问题,提升回答的准确性(基于事实)、时效性(动态更新)、权威性(引用可信源)。• 增强对小众领域知识的覆盖,提高可控性与可解释性。
二、RAG评估方法
-
检索阶段指标
• 召回率(Recall@K):前K结果中相关文档比例(网页9)。• MRR(平均倒数排名):首个正确答案的排名倒数均值。
• NDCG(归一化折扣累积增益):衡量排序质量,结合位置权重。
-
生成阶段指标
• BLEU/ROUGE:评估生成文本与参考答案的相似度。• 答案忠实度(Faithfulness):生成内容是否与检索信息一致。
三、RAG模块优化策略
1. 检索优化
• 混合检索(Hybrid Search):结合语义向量(如BERT嵌入)与关键词匹配(BM25),兼顾语义与精确性(网页7)。
• 重排序(Reranking):用Rank-BERT、monoT5对检索结果二次排序,提升Top-K质量(网页8)。
• 查询转换:LLM重写查询(如HyDE生成假设性文档),增强语义对齐(网页17)。
2. 索引优化
• 动态分块与元数据:添加时间戳、作者等元数据,支持多维度检索(网页16)。
• 知识图谱增强:用KG实体关系优化索引,解决向量空间语义漂移问题(网页3)。
3. 生成优化
• Prompt工程:设计模板引导LLM基于检索内容生成,减少幻觉(例:“仅根据上下文回答”)。
• Self-RAG:
• 创新点:模型自适应决定检索时机,并对结果进行批判性验证(网页12)。
• 训练/推理:通过检索增强的SFT数据训练,推理时动态插入检索与验证步骤。
四、挑战与高阶优化
1. 向量数据库的局限性
• 问题:语义漂移、长文本效率低、多模态支持弱。
• 解决方案:
• 多模态RAG:结合CLIP(图像)、Table-BERT(表格)嵌入,支持跨模态检索(网页13)。
• 模块化架构:分离检索、重排、生成模块,支持灵活替换(例:用Elasticsearch替代FAISS)。
2. 召回率低优化
• 核心策略:
- LLM优化查询与索引:用LLM提取文档关键信息构建结构化索引(网页17)。
- 多粒度分块:结合短块(关键词)与长块(语义)提升覆盖(网页16)。
- 动态检索策略:根据Query复杂度选择检索范围(例:简单问题仅用BM25,复杂问题触发混合检索)。
3. 知识图谱增强
• 应用场景:法律、医疗等需深度推理的领域。
• 实现方式:
• 将文档实体链接到KG,检索时融合实体关系与向量相似度。
• 生成阶段提示LLM引用KG中的逻辑链(例:“根据[实体A]→[关系]→[实体B]生成回答”)。
五、前沿技术拓展
-
RAG Fusion:多Query生成 + 结果聚合,提升长尾Query效果(网页18)。
-
模块化RAG:支持迭代检索(多次检索逐步细化)、自适应检索(动态调整检索量)。
-
RAG+SFT联合优化:
• 用RAG数据微调LLM,增强领域适配性(网页12)。• 示例:医疗问答模型微调后,结合RAG检索最新论文。
六、典型问题解析
-
BERT在RAG中的作用:
• 语义编码:将文本映射为稠密向量(如DPR模型)。• 查询重写:通过NSP(下一句预测)生成扩展Query(网页23)。
-
多模态RAG实现:
• 文本+表格:用PandasAI解析表格,嵌入时保留行列结构。• 文本+图片:CLIP生成跨模态嵌入,联合检索(网页13)。
- 引用来源
- RAG基础概念与流程(网页1, 网页2)
- 知识图谱与检索优化(网页3, 网页16)
- Prompt工程技巧(网页5)
- 向量数据库局限性(网页6)
- 混合检索策略(网页7)
- 模块化架构与重排序(网页8, 网页16)
- 评估指标(网页9, 网页10, 网页11)
- Self-RAG技术(网页12)
- 多模态RAG(网页13, 网页16)
- 分块与索引优化(网页16)
- 召回率优化案例(网页17)
- RAG Fusion(网页18)