知识库评估指南
知识库评估是 RAG 系统开发中的重要环节。通过量化评估,我们可以了解检索和生成的质量,发现问题并持续优化。
为什么需要评估
在构建知识库系统时,你可能会遇到这些问题:
- 检索结果不准确,用户找不到想要的内容
- 生成答案与文档不符,存在幻觉
- 调整了分块策略或模型,效果是变好还是变差了?
评估功能就是为了回答这些问题。它通过预设的测试问题和标准答案,量化系统的表现,帮助你做出数据驱动的优化决策。
评估指标解读
系统提供以下核心指标:
| 指标 | 含义 | 参考值 |
|---|---|---|
| Recall@1 | 第一个检索结果包含正确文档的比例 | > 0.6 为佳 |
| Recall@5 | 前5个检索结果包含正确文档的比例 | > 0.8 为佳 |
| F1@K | 精确率和召回率的调和平均 | 用于横向对比 |
| 答案准确性 | 生成答案与标准答案的一致性 | 越高越好 |
创建评估基准
手动准备数据
准备 JSONL 格式的评估文件,每行一个样本:
json
{"query": "什么是人工智能?", "gold_chunk_ids": ["chunk_001"], "gold_answer": "人工智能是..."}
{"query": "机器学习有哪些类型?", "gold_chunk_ids": ["chunk_005"], "gold_answer": "主要包括监督学习..."}字段说明:
query:测试问题,必需gold_chunk_ids:期望被检索到的文档块 ID,可选gold_answer:标准答案,用于评估生成质量,可选
推荐工具
可以使用 EasyDataset 从文档批量生成问答对。注意导出时将字段名改为 query 和 gold_answer。
自动生成
系统也支持自动生成评估数据:随机采样知识库中的文档块,用嵌入模型查找相似内容,最后用大模型生成问答对。
推荐参数:
- 问题数量:10-50 个
- 相似文档数:2-5 个
运行评估
在知识库详情页点击「评估」标签,选择评估基准后配置:
- 答案生成模型(可选):基于检索到的文档块生成答案
- 评判模型(可选):评估生成答案与标准答案的一致性
点击「开始评估」,系统在后台执行,完成后会显示各项指标结果。
评估结果分析
拿到评估结果后,可以从以下几个角度分析:
- Recall@1 低:说明最相关的内容没有被首先检索到,可能需要调整嵌入模型或分块策略
- Recall@5 低:说明相关文档没有被检索到,可能需要增加检索数量或优化查询
- 答案准确性低:说明生成质量有问题,可能需要调整提示词或更换模型
使用场景
- 上线前验证:知识库建设完成后,评估效果是否满足要求
- 配置对比:调整分块策略、嵌入模型后,对比评估结果
- 定期监控:定期评估,及时发现质量下降
- 参数调优:通过多次评估找到最优参数组合
评估是一个持续的过程。建议在初始建设时就建立评估基准,后续每次重大变更都进行评估,形成数据驱动的优化闭环。