62|评测与优化:命中率与引用正确性回归
2026/7/12 1:22:13 网站建设 项目流程

在上一篇,我们的 RAG 问答机器人终于能像模像样地输出带有“参考文献角标”的答案了。
你把这个系统发给了公司的 10 个同事内测。半天后,群里炸锅了:

  • 销售小王:“我问休假制度,它怎么把去年的作废版本翻出来了?”
  • 财务李姐:“我问打车报销上限,它说 150 元,点开引用链接一看,原文写的是 200 元啊!它在瞎编!”

这在 RAG 项目初期是极其正常的。如果你不做量化评测,你永远不知道系统是哪里出了毛病。
本篇是项目 B 的收官之作,我们将把卷 6 讲过的评测理论,落地成真实的代码测试集。


1. 揪出内鬼:到底是“搜错了”还是“编瞎话”?

RAG 报错只有两种可能,必须分开评测,否则你不知道该去改哪里的代码:

  1. 检索阶段拉胯(命中率低):向量数据库根本没把正确的资料捞出来。这时候大模型如果强答,必然是胡编。
    • 优化方向:去改切分 Chunk 的大小、加元数据过滤(比如过滤掉旧年份)、引入重排模型(Reranker)。
  2. 生成阶段拉胯(引用正确性低):正确的资料明明已经喂给大模型了,但它就是视而不见,或者断章取义。
    • 优化方向:去改 System Prompt,换个更聪明的基座模型,或者把 Temperature 调成 0(降低随机性)。

2. 建立“金标集(Golden Dataset)”

我们要写一个eval_dataset.json,里面放 20 个极具代表性的内测问题。
每一个问题,都必须由人类(比如你)人工标出“绝对正确的答案”和“必须命中的文档 ID”。

[{"question":"晚上 9 点后打车报销上限是多少?","ground_truth_answer":"单次上限 200 元。","must_retrieve_chunk_id":"chunk_reimburse_2024_012"},{"question":"公司发中秋节月饼吗?","ground_truth_answer":"抱歉,知识库中没有关于中秋节月饼的规定。","must_retrieve_chunk_id":null}]

3. 本篇产出:RAG 评测集与指标看板定义

有了测试集,我们就可以写一段 Python 脚本,循环把这 20 个问题发给我们的 RAG 系统。
然后收集系统的返回结果,使用以下三个核心指标进行自动化打分(可以使用RagasTruLens等开源框架,或者直接用 GPT-4 作为裁判来打分)。

将这三个指标做成一个仪表盘(Dashboard),每次修改代码后跑一遍,分数必须只能升不能降!

核心指标 1:检索命中率 (Context Recall)

  • 含义:系统捞出来的 Top 5 个 Chunk 中,是否包含了金标里的must_retrieve_chunk_id
  • 及格线:> 85%
  • 如果不及格:别去改 Prompt,赶紧去优化你的 Embedding 模型和 Chunk 切分策略!

核心指标 2:引用忠实度 (Faithfulness)

  • 含义:大模型最后生成的answer,是不是 100% 都能从捞回来的 Chunk 中找到依据?(即:有没有夹带私货瞎编)。
  • 打分法:让 GPT-4 当裁判:“请对比 Chunk 和 Answer,Answer 中是否有任何 Chunk 未提及的事实?如果有,打 0 分。”
  • 及格线:> 95%(对幻觉零容忍)
  • 如果不及格:去修改 System Prompt,加粗加红警告模型“严禁使用内部知识”。

核心指标 3:答案相关性 (Answer Relevance)

  • 含义:大模型的回答,有没有解决用户的question?是不是在答非所问?
  • 打分法:让 GPT-4 裁判比对系统的answer和金标里的ground_truth_answer
  • 及格线:> 80%

4. 优化闭环(Regression Loop)

当你发现“引用忠实度”只有 70% 时,你决定把基座模型从便宜的 Llama-3 换成昂贵的 GPT-4o。
换完之后,你只需敲一行命令:python run_eval.py
5 分钟后,新的看板出来了:

  • 检索命中率:85% -> 85%(没变,因为检索逻辑没改)。
  • 引用忠实度:70% -> 98%(大幅提升!模型没幻觉了)。

你长舒一口气,这时候你才可以自信地把新代码合并到主分支(Master),发布上线。


总结与复盘(项目 B 收官)

恭喜你!在项目 B:个人知识库问答(RAG)中,你亲手搭出了一个工业级的知识引擎:

  1. [第60篇] 数据接入:你学会了用 Markdown 结构切分文档,并注入了极其重要的 Metadata(元数据)。
  2. [第61篇] 结构化生成:你用 JSON Schema 逼迫大模型交出了带引用角标的答案,让每一句话都可被追溯。
  3. [第62篇] 评测与优化:你告别了玄学调参,用“命中率”和“忠实度”的数据看板,让系统的每一次迭代都踏踏实实。

这套 RAG 架构,无论你是给公司做内网知识库,还是做智能客服,都是绝对的底层通解。

下一步去哪儿?
现在,我们的 AI 已经拥有了最强大脑和海量知识。但它依然只是个“会说话的书呆子”。
如果用户对它说:“去帮我查一下昨天服务器的日志,把报错的行数发邮件给研发总监。” 书呆子就懵了。
为了让 AI 拥有“手脚”,真正替我们去打工,接下来的项目 C:多步骤自动化助手(Agent + 工具),我们将带你打造一个全自动的赛博黑工!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询