Skip to content

RAG 评估与调优

先学会量化好坏:检索层指标(Recall@K/MRR/NDCG)、生成层指标(RAGAS 忠实度/相关性)、评估集与调优顺序。

Updated View as Markdown
For humans

RAG 评估与调优

评估要放在调优前面。没有量化手段,改分块、换模型、加重排都是凭感觉,你永远不知道改动是好是坏。RAG 的评估分两层:检索层和生成层,两层指标独立看,不能混。

检索层指标

衡量“相关文档有没有被召回、排得对不对”:

指标 衡量什么
Recall@K 前 K 个结果里包含多少相关文档,召回率
Precision@K 前 K 个结果里有多少是相关的,精确率
MRR 第一个相关结果出现在第几位,排序质量
NDCG 带位置的排序质量,相关文档越靠前分越高

检索指标有个陷阱:它们衡量正确的块在不在 Top-K 里,不衡量这些块是否包含生成正确答案所需的上下文。语义分块那篇的悖论就在这里,高检索召回配低生成准确是真实存在的。所以必须看生成层。

生成层指标(RAGAS)

RAGAS 是 RAG 评估的事实标准,核心四个指标,全部用 LLM-as-judge 打分:

  • Faithfulness(忠实度):答案中的断言是否基于检索到的上下文。幻觉的直接度量
  • Answer Relevance(答案相关性):答案是否回答了问题,还是答非所问
  • Context Precision(上下文精度):检索到的块是否真的与查询相关,还是只是主题邻近
  • Context Recall(上下文召回):回答所需的信息是否被检索到

这四个指标正好对应 RAG 的两个失效点:检索没召回该召回的(Context Recall 低),生成没忠实用检索内容的(Faithfulness 低)。指标出问题,先定位是检索层还是生成层。

评估集与流程

  • Golden Set:20 到 50 条真实问题起步,覆盖正常、边界、对抗三类。答案要有人工标注的参考答案和引用来源
  • 对照实验:同一个评估集上改一个变量(块大小、检索策略、是否重排),对比指标变化。一次只改一个
  • LLM-as-judge 要校准:批量初筛用 LLM 打分,关键场景保留人工标注集兜底。评估器本身要抽样核对,防止评估器漂移

调优顺序

一个经验顺序,按性价比排:

  1. 先修检索:换更好的分块、加混合检索、加重排。检索质量是上限
  2. 再调上下文:压缩冗余、去重、控制注入量
  3. 调生成:Prompt 约束(只根据上下文回答、不知道就说不知道)、引用格式
  4. 每一步都用评估集验证,指标没变好就回滚

面试追问

  1. RAG 怎么评估? 两层。检索层看 Recall@K、MRR、NDCG;生成层用 RAGAS 看忠实度、答案相关性、上下文精度和召回
  2. Faithfulness 是什么? 答案中的断言是否基于检索到的上下文。幻觉的直接度量,分块失败引入的幻觉都能被它抓到
  3. 为什么不能只看检索指标? 检索指标衡量块的命中,不衡量块是否包含生成所需的上下文。语义分块高召回低生成就是例子
  4. 评估集怎么建? 20 到 50 条真实问题起步,覆盖正常、边界、对抗,人工标注参考答案和引用。LLM-as-judge 初筛,人工兜底
  5. 调优从哪开始? 检索层优先:分块、混合检索、重排。生成层只是整理检索到的内容,检索不行换什么模型都白搭
Navigation

Type to search…

↑↓ navigate↵ selectEsc close