上一篇文章我们探讨了如何利用 Chunking 与 Embedding 技术来优化 RAG 系统,今天换个视角,聚焦于如何科学评估该系统的性能。毕竟,再出色的系统,若缺乏衡量好坏的标准,优化过程也会显得盲目。本文将重点解析大模型输出质量的评估指标。
在优化基于检索增强生成(RAG)的系统时,明确性能评估方法是关键步骤。这就好比组装完一台机器,必须配备仪表盘来监控各项数据是否正常。本文围绕 RAG 系统的评估指标展开,重点阐述如何通过科学评估,有针对性地优化系统性能。
1. RAG 的基本组成部分
RAG 系统通常由两个主要阶段构成,理解这两个阶段是评估的基础。
1.1 数据摄取(Data Ingestion):
- 将结构化或非结构化的原始数据,处理成向量数据库能够识别的格式。
- 典型步骤包括数据清洗、分词、生成嵌入向量等。
- 例如:将大量新闻文章拆分成合适的文本块,再为每个文本块计算嵌入向量,存入库中,以便后续检索。
1.2 数据查询(Data Querying):
- 检索(Retrieval):从向量数据库中提取与用户问题最相关的内容片段。
- 合成(Synthesis):将检索到的内容与用户问题一同输入大模型,生成最终回答。
- 应用场景:常见的有智能客服、企业内部知识问答系统等。

2. 如何评估 RAG 的性能
优化 RAG 系统的第一步,是明确“好”的标准。这需要借助合适的评估指标来指引方向。
2.1 确定指标 评估 RAG 系统时,通常使用两类指标:
基于 LLM 的指标:
- 让大语言模型(LLM)充当裁判,评估回答的质量、相关性等。
- 优势:与人类评价的相关度较高,特别适合判断复杂、微妙的语言任务。
- 不足:LLM 本身的输出存在随机性,结果可能具有一定的不确定性。
非 LLM 的指标:
- 使用传统方法,如计算字符串相似度、BLEU 分数等。
- 优势:结果确定,可重复,适合系统开发和早期调试。
- 不足:面对复杂语言任务时,与人类评价的相关性较差。

2.2 准备评估数据集 要评估系统,需要一套高质量的测试数据,其中包含用户查询和对应的标准答案。构建数据集时,需注意以下几点:
- 来源:可从真实用户交互日志中提取,也可通过人工标注或 LLM 辅助生成。
- 多样性:确保问题类型、难度和领域足够丰富,以全面检验系统能力。
- 规模:样本量需足够大,以保证评估结果的统计意义和可靠性。
- 验证:自动生成的数据,最好引入人工或其他模型进行验证,确保答案质量。
例如,构建企业知识问答数据集时,可从实际客服记录中提取常见问题,再手动或自动地为其匹配答案。
3. 评估大模型输出结果的四大类指标
评估 RAG 系统时,为何要特别关注大模型输出的指标?因为这些指标直接关系到最终用户的体验。与前述基于 LLM 和非 LLM 的指标相比,这些指标更能捕捉语言任务中的细微差异,例如回答是否有根有据、与问题是否贴切。传统指标则更多提供确定性的基准评估。上文已讨论过这两类指标的优缺点,本节将结合实际,通过四个维度具体分析如何优化输出质量。
3.1 Groundedness(依托性/真实性)
- 定义:检查生成的回答是否基于检索到的上下文,而非模型自行编造(即幻觉)。
- 方法:
- 通过计算生成回答与检索上下文的嵌入相似度来衡量。
- 直接让 LLM 打分,判断回答是否引用了检索内容。
- 重要性:在知识密集型场景,如医学、法律问答中,回答的真实性直接决定可靠性,不容有误。
- 优化建议:提升检索内容的质量,同时优化提示词,引导模型严格基于材料作答。
3.2 Completeness(完整性)
- 定义:回答是否全面覆盖了用户查询中的所有需求。
- 方法:
- 计算检索内容与生成回答的信息覆盖率。
- 让 LLM 逐条检查问题中的每个子问题是否得到解答。
- 重要性:处理复杂、多步骤问题时尤为关键,若回答遗漏关键点,用户体验将大打折扣。
- 优化建议:增强检索阶段对多样化内容的覆盖能力,或调整生成策略,使模型能够综合回答问题的多个维度。
3.3 Utilization(利用率)
- 定义:衡量每个检索到的片段对最终回答的实际贡献。
- 方法:
- 逐一评估每个检索片段在最终回答中的体现程度。
- 计算检索内容与生成回答的匹配比例。
- 重要性:利用率高,表明检索与生成环节配合良好,计算资源未被浪费。
- 优化建议:若发现利用率低,分析未使用的片段,判断是检索策略有问题,还是嵌入生成方法需要调整。
| 高利用率 | 低利用率 | |
|---|---|---|
| 高完整性 | 无需操作 | 返回的数据能解答问题,但混入了不相关的数据块。考虑降低 top-k 值,使结果更聚焦。 |
| 低完整性 | 数据块被使用,但问题未完全解答。可尝试: • 检查分块策略,增加数据块内的上下文 • 增加数据块数量 • 评估是否有未返回的数据块能提升完整性,并调查未返回的原因 • 参考完整性部分的建议 | 问题未答全,提供的数据块也未充分利用。可尝试: • 检查分块策略,增加上下文。若使用固定大小分块,考虑加大分块尺寸。 • 调整提示词以改善回复质量 |
3.4 Relevance(相关性)
- 定义:回答内容是否与用户问题直接相关。
- 方法:
- 基于嵌入向量计算回答与问题的相似度。
- 让 LLM 判断回答是否聚焦于问题,未跑偏。
- 重要性:当用户问题模糊或检索信息噪音较大时,相关性尤为重要。
- 优化建议:优化向量数据库的构建与检索算法,确保返回内容高度相关,尽量排除无关信息。
4. 案例分析:如何用评估指标改进 RAG 系统
假设我们正在优化一个企业知识问答系统:
- 背景:用户主要用来查询公司政策。
- 问题:系统生成的回答偶尔出现虚假信息,或遗漏关键内容。
通过四个指标,我们可以这样分析并改进:
- Groundedness(依托性):检查发现部分回答未引用检索内容。于是调整提示词,明确要求回答必须基于给定材料,减少幻觉。
- Completeness(完整性):分析未答上的子问题,发现检索阶段遗漏了相关内容。于是优化检索策略,提升检索内容的多样性。
- Utilization(利用率):发现部分检索片段在回答中几乎未被使用。于是重新生成这些片段的嵌入向量,或改进分块策略,使其更有用。
- Relevance(相关性):检索出的内容噪音较大。于是优化检索算法,提高精准度,减少无关信息干扰。
5. 结论
在 RAG 系统的优化过程中,一套科学合理的评估指标体系如同方向盘。通过 Groundedness(真实性)、Completeness(完整性)、Utilization(利用率)和 Relevance(相关性)四个维度,开发者可以多角度了解系统实际表现,精准定位问题,进行针对性改进。
可以预见,随着评估工具不断完善和指标日益精细,RAG 系统的优化将越来越高效和精准。这不仅有助于提升系统性能,也为实际应用的落地打下更坚实的基础。
