# 知识库评估指南 知识库评估是 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`:标准答案,用于评估生成质量,可选 JSONL 只是导入和导出的交换格式。导入后,系统会把评估数据集、题目、评估运行和逐题结果保存到数据库中,不依赖本地 JSONL 文件作为内部存储。 ::: tip 推荐工具 可以使用 [EasyDataset](https://github.com/ConardLi/easy-dataset) 从文档批量生成问答对。注意导出时将字段名改为 `query` 和 `gold_answer`。 ::: ### 自动生成 系统也支持自动生成评估数据:随机采样知识库中的文档块,用嵌入模型查找相似内容,最后用大模型生成问答对。 推荐参数: - 问题数量:10-50 个 - 相似文档数:2-5 个 - 构建并发数:默认 10,最大 20;模型服务限流较严格时可调低 ## 运行评估 在知识库详情页左侧边栏,「评估基准」Tab 用于管理评估数据集,「RAG 评估」Tab 用于运行评估并查看结果。在「RAG 评估」中填写评估名称、选择评估数据集后配置: 1. **答案生成模型**(可选):基于检索到的文档块生成答案 2. **评判模型**(可选):评估生成答案与标准答案的一致性 点击「开始评估」,系统在后台执行,完成后会显示各项指标结果。 ## 评估结果分析 拿到评估结果后,可以从以下几个角度分析: - **Recall@1 低**:说明最相关的内容没有被首先检索到,可能需要调整嵌入模型或分块策略 - **Recall@5 低**:说明相关文档没有被检索到,可能需要增加检索数量或优化查询 - **答案准确性低**:说明生成质量有问题,可能需要调整提示词或更换模型 ## 使用场景 - **上线前验证**:知识库建设完成后,评估效果是否满足要求 - **配置对比**:调整分块策略、嵌入模型后,对比评估结果 - **定期监控**:定期评估,及时发现质量下降 - **参数调优**:通过多次评估找到最优参数组合 --- 评估是一个持续的过程。建议在初始建设时就建立评估基准,后续每次重大变更都进行评估,形成数据驱动的优化闭环。