RAG 评估与优化:命中率、忠实度与幻觉检测
用检索命中率与答案忠实度量化 RAG 质量,建立"检索层 + 生成层"分开诊断的优化方法。
分两层诊断
RAG 回答不好,先判断是没检到还是没答好:
- 检索层指标:Hit Rate(正确片段是否进 Top-K)、MRR(正确片段的排名倒数均值);
- 生成层指标:忠实度(Faithfulness,答案是否只依据检索内容)、答案相关性(是否回应了问题)。
忠实度检测的简化实现
让评估模型逐句判断答案是否被资料支持:
faithfulness_prompt = """以下是资料和回答。逐句判断回答是否完全由资料支持,
输出 JSON:{{"supported": [...], "unsupported": [...]}}
资料:{context}
回答:{answer}"""
unsupported 非空即存在幻觉风险。
优化手段对照表
- Hit Rate 低 → 查询改写 / 换 embedding / 调 chunk 大小与重叠;
- 检到了但答错 → 改提示词(强调只依据资料)、减少片段数量、加引用要求;
- 幻觉多 → 降低 temperature、提示词加"资料没有就说不知道"、上线引用溯源。
持续迭代闭环
线上坏 case → 归因(检索 or 生成)→ 修复 → 加入评测集 → 回归验证。评测集是团队最重要的资产之一。
📝 课后练习
quiz-1 RAG 检索层指标 Hit Rate 衡量的是?