知识库问答系统上线前,我这样做的评估

谭老师463 阅读

知识库问答做完之后,怎么证明它"能用"?我见过太多项目:demo 跑得很欢,一问评估就卡壳——"感觉还行吧"。没有量化指标的 RAG 项目,上线就是赌博。这篇分享我的评估方案。

评估分三层

1. 检索层:检索准确率(Recall@k)。 准备一批"问题 → 正确答案所在文档"的标注集。对每个问题做检索,看正确答案排在前 k 位有没有被召回。这个指标反映检索好不好,跟生成无关,能单独定位问题。

2. 生成层:答案准确率。 对每个问题,跑完整链路(检索 + 生成),人工判断生成的答案是否正确。但这个人工标注成本高,我一般是抽 100 个问题人工评,跑一轮要半天。

3. 端到端指标:满意度。 真实用户场景的反馈,比如"回答有用率"(用户点了有帮助的比例)、回答时长等。这个偏运营指标,但最能反映真实体验。

怎么做标注集

JSON
{ "question": "怎么配置反向代理?", "gold_docs": ["docs/deploy/nginx.md"], "gold_answer": "在 nginx.conf 里加 location 块……" }

我花了两个周末把高频问题整理成 200 条标注集,覆盖了主要业务场景。

用 LLM 辅助评估: 现在很多团队用 GPT-4 当"评委",判断生成答案和标准答案是否语义一致。实测比纯人工快,但偶尔误判,适合粗筛,最终还是要人工抽检。

上线后的持续监控: 评估不是上线前做一次就完了。我加了一个反馈机制:每次回答后面带"有帮助/没帮助"按钮,用户点没帮助的,自动进"待改进"队列,定期分析为什么没答好(检索漏了?生成错了?)。

最后:评估的目的不是数字好看,而是能定位问题在哪一层。检索差就调分块和 embedding,生成差就调 prompt,别眉毛胡子一把抓。

评论0

还没有评论,来抢沙发~