干货分享:RAG系统的优化和评估策略
RAG 系统优化是提升检索增强生成技术性能的重要环节,Multi-Query Retrieval、RAG-Fusion 和 Decomposition Retrieval 都是其中的关键方法。

一、RAG系统性能优化方法
- Multi-Query Retrieval
- 核心思想:根据用户的一个查询生成多个不同的查询,这些查询可以从不同角度、不同维度或者用不同的表达方式来探讨同一个问题,目的是扩展检索范围,增加找到相关信息的机会。
- 具体实现:系统会生成多个查询并分别发送到检索模块,获取每个查询的结果。例如,用户询问 “如何提高机器学习模型的准确性?” 系统可能生成 “提高机器学习模型准确性的技巧”“机器学习精度优化方法”“如何训练更精确的机器学习模型” 等多个查询。
- RAG-Fusion
- 核心思想:将多个查询的结果进行融合,选择最相关的信息。通过将多个查询结果合并,可以得到更加丰富和精确的答案。
- 具体实现:多个查询的结果会被整合并过滤,以确保最终输出的结果更具相关性和准确性。常用的融合方法如 Reciprocal Rank Fusion(RRF),根据每个结果的排名来加权融合多个查询的结果。例如,将关于 “提高机器学习模型准确性” 的不同查询得到的结果合并,再通过 RRF 等方法重新排序,提取最有价值的信息。
- Decomposition Retrieval
- 核心思想:将复杂问题拆解成多个简单问题,然后分别检索每个子问题的答案,最后合并结果,这样可以避免处理复杂问题时可能遇到的信息检索困难,提升深度与精度。
- 具体实现:例如,对于 “比较 Transformer 和 RNN 在文本摘要任务上的优缺点” 这一复杂问题,可以分解为 “Transformer 在文本摘要任务上的优点”,“Transformer 在文本摘要任务上的缺点,”“RNN 在文本摘要任务上的优点”,“RNN 在文本摘要任务上的缺点” 等子问题,分别检索各子问题的答案后再进行合并。
多路召回(Hybrid Retrieval)
核心是通过组合不同召回策略,弥补单一方法的局限性,兼顾覆盖率与语义多样性。
- 稀疏召回(如 BM25):基于关键词匹配,擅长捕捉文本中的精确语义,对字面相关的内容召回率高,计算成本低。
- 密集召回(Embedding):将文本转为向量后计算相似度,能捕捉深层语义关联,即使没有完全匹配的关键词,也能召回语义相近的内容。
- 自召回(生成相似 Query):由模型自动生成与原问题相似的查询,相当于内置轻量版 Multi-Query,进一步扩大检索范围,提升潜在相关内容的召回概率。
- 融合逻辑:通常先分别通过三种方式获取候选结果,再通过加权投票、排序融合等方式合并,既保证精准匹配的内容不遗漏,又能覆盖语义相关的潜在信息。
查询增强核心技术
通过优化查询形式或动态匹配策略,让检索更精准、更贴合场景需求。
1. Routing(路由机制)
-
核心是 “分类匹配”,先由 LLM 对用户问题进行类型判断,再自动选择对应知识库或检索策略。
-
例如,识别到问题含 “合同条款”“法律责任” 则路由至法务知识库,搭配 BM25 精准匹配法条;识别到 “疾病诊断”“用药建议” 则路由至医学知识库,优先用密集召回捕捉专业语义关联。
2. 结构化查询(Advanced Querying)
-
针对结构化数据(如数据库表、JSON 格式知识库),由 LLM 将自然语言问题转化为标准化查询语句。
-
例如,用户问 “2024 年 Q3 法务部门的合同审核通过率是多少?”,LLM 可将其转为 SQL 查询,直接从结构化数据库中提取精准数据,避免传统文本检索的信息冗余与误差。
智能切片(Chunking Optimization)
核心是摒弃固定长度切分,贴合文档天然结构提升信息完整性。
-
优先按标题层级、段落边界、代码块 / 公式块等自然分隔符切分,避免关键信息被截断。
-
例如,法律文档按 “条款 - 子条款” 切分,技术文档按 “章节 - 代码块 - 注释” 切分,确保每个切片的语义独立性和相关性。
领域专属 Embedding 模型
通过定制化向量生成,提升领域内文本的语义捕捉精度。
-
基于通用模型微调,融入金融(如 “风控”“衍生品”)、法律(如 “判例”“法规”)、医学(如 “病灶”“诊疗指南”)等专属术语和语义逻辑。
-
相比通用模型,能更精准区分领域内近义概念,减少向量空间中的语义混淆,提升检索相关性。
多模态索引(Multimodal Index)
突破纯文本限制,实现多类型数据的统一检索。
-
为图像、表格、公式等非文本数据生成专属向量(如图像用视觉模型、表格用结构解析模型),与文本向量构建统一索引。
-
支持跨模态检索需求,例如用户问 “展示 2024 年 Q3 的营收数据表”,可直接召回对应的表格数据并关联解读文本。
层级索引(Hierarchical Index)
构建 “宏观 - 微观” 的语义树结构,平衡检索速度与精度。
-
上层为文档 / 章节级索引,存储概括性语义向量;下层为段落 / 句子级索引,存储精细化语义向量。
-
检索时先通过上层索引快速定位相关文档范围,再在下层索引中精准提取细节信息,既提升检索效率,又增强结果的层次性。
重排序(Re-ranking)
核心是对召回的候选结果进行二次精准筛选,修正初步检索的偏差。
-
采用 cross-encoder 或大语言模型(LLM)作为判定核心,相比召回阶段的轻量模型,能更深入理解文本语义关联。
-
直接计算用户查询与候选结果的细粒度相似度,而非依赖召回阶段的粗排分数,大幅提升排序准确性,例如过滤字面相关但语义无关的干扰结果。
检索融合(Retrieval Fusion)
核心是整合多通道召回结果,避免单一召回策略的局限性。
-
针对稀疏召回、密集召回、自召回等不同通道的结果,采用加权投票、Reciprocal Rank Fusion(RRF)等方法综合排序。
-
通过动态调整各通道权重(如根据问题类型调整稀疏 / 密集召回的权重占比),平衡覆盖率与精准度,确保多维度相关信息都能进入最终候选集。
生成阶段优化聚焦提升回答质量与可靠性,通过动态调整生成逻辑和强化提示引导,减少偏差与幻觉,以下是具体解析:
基于反馈的重生成
核心是建立 “质量评估 - 二次生成” 的闭环,修正低质量输出。
-
设定明确的质量判定标准,如信息完整性、逻辑连贯性、与检索内容的一致性等。
-
当检测到回答未达标(如关键信息缺失、存在矛盾),自动触发重生成流程,可补充更多检索上下文或调整生成指令,确保输出符合预期。
知识注入 Prompt
核心是通过精细化提示设计,让模型更精准利用检索到的知识,降低幻觉。
-
将检索到的关键信息(如核心条款、数据、结论)结构化嵌入 Prompt,明确要求模型基于这些内容生成回答。
-
补充领域背景、逻辑约束等提示,例如 “严格依据以下检索到的法律条文生成解读,不添加未提及的内容”,引导模型聚焦有效知识,减少无依据的联想。
二、RAG系统的评估
(1)检索环节评估
|
指标 |
含义 |
|
召回率 Recall@K |
检索到的相关文档数 / 实际相关文档数 |
|
平均倒排率 MRR |
相关文档的平均排名倒数 |
|
NDCG(归一化折损累积增益) |
综合考虑文档相关性与排序位置 |
|
Precision@K |
前 K 条结果中相关文档比例 |
|
Coverage / Diversity |
检索结果的主题多样性 |
(2)生成环节评估
|
指标 |
含义 |
|
Rouge-L / BLEU |
文本与参考答案的 n-gram 重叠度 |
|
BERTScore / Embedding Similarity |
基于语义向量的文本相似度 |
|
Factuality |
检查生成内容是否符合检索事实 |
|
Diversity |
语言自然度与生成多样性 |
|
Hallucination Rate |
模型幻觉(编造信息)的比例 |
(3)人类评估(Human Evaluation)
人工标注者通常从以下维度打分:
-
• 准确性(Correctness)
-
• 连贯性(Coherence)
-
• 完整性(Completeness)
-
• 相关性(Relevance)
-
• 流畅性(Fluency
-
)
🌀 幻觉的来源
-
• 检索阶段召回的文档不相关或缺失关键信息
-
• LLM 忽略检索内容、凭语言模式生成
-
• 检索文档存在歧义或事实错误
-
• Prompt 设计不当,边界约束不足
💡 主要解决方案
-
• 增强 Prompt 约束:明确指令“请仅依据提供的文档回答”
-
• 引用标注机制:让模型输出时附带来源引用
-
• Fact-checking 模型:生成后自动事实核查
-
• Confidence Scoring:模型为自身输出打分,低置信度则再生
更多推荐

所有评论(0)