RAG 评估一般分两个独立维度:
- 检索质量:从语料库召回了多少相关文档?排名是否合理?这是给 retriever 的评分。
- 生成质量:给定检索到的上下文,LLM 是否生成了忠实(无幻觉)、相关、完整的回答?这是给 generator 的评分。
4 个核心检索指标
1. Hit Rate @k(Topk 命中率)
定义:在前 k 个检索结果中,是否至少包含一个相关文档。
Hit@k1@k
取值范围 [0,1]。二元判断,简单粗暴。适合作为 RAG 系统的初步调试指标 —— 如果 Hit Rate @5 不到 60%,问题大概率在 embedding 或 chunking,不在 prompt。
2. Recall @k / Precision @k
定义:
- Recall @k:前 k 个结果中相关文档数 / 所有相关文档总数 —— 衡量召回完整度
- Precision @k:前 k 个结果中相关文档数 / k —— 衡量结果干净度
Recall@k@k@k@k
需要先有人工标注的「ground truth 相关文档」,这本身就是个成本问题 —— 没有标注,Recall / Precision 算不出来,只能用 Hit Rate。
3. MRR(Mean Reciprocal Rank)
定义:对每个查询,把「第一个相关文档出现的位置的倒数」求平均。
MRR11
对「第一个相关文档的位置」敏感,适合 FAQ / 客服检索(用户期望第一个结果就是答案)。
4. NDCG @k(归一化折损累计增益)
引入分级相关性(relevance grade,可以是 0/1/2/3 而不仅是 0/1),并对排名靠后的相关文档做「折损」。
DCG@k1211@k@k@k
IDCG 是理想排序下的 DCG,把结果归一化到 [0,1]。适合需要多级相关性评分的场景(文档 a 高度相关、b 一般相关、c 边缘相关)。
指标选择
| 场景 | 推荐指标 |
|---|---|
| 冷启动,没有 ground truth 标注 | Hit Rate @5 / @10 |
| 有少量标注,需要调 retriever 阈值 | Recall @10 + MRR |
| 需要调 reranker、引入多级相关性 | NDCG @10 |
| 客服 / FAQ 类(用户期望第 1 个就是答案) | MRR |
RAGAS 的 RAG Four:生成质量的 4 个维度
检索只是 RAG 的一半。RAGAS 提出的 4 个生成质量指标是当前业内最常用的工具集(RAGAS 官方文档:RAGAS Metrics):
| 指标 | 问题 | 后端 |
|---|---|---|
| Faithfulness(忠实度) | 答案中每个声明是否来自检索上下文? | NLI entailment |
| Answer Relevance(答案相关性) | 答案是否回答了原始问题? | LLM-judge |
| Context Precision(上下文精确率) | 检索到的 chunk 里有多少真正相关? | LLM-judge |
| Context Recall(上下文召回率) | 是否所有需要的信息都被召回了? | LLM-judge vs gold |
为什么 faithfulness 用 NLI 而非 LLM-judge:把答案拆成原子声明(atomic claims),然后用 NLI 模型(如 DeBERTa-v3-large-mnli-fever-anli-ling-wanli)逐条跟上下文做 entailment 判断。这样 faithfulness 的成本是 NLI 模型推理(毫秒级、几美分/千次),而不是 GPT-4 judge(秒级、几美元/千次)。NLI 模型小但训练数据专门针对 entailment 任务,效果不弱于 GPT-4 judge。
LLM-as-Judge 的 5 个关键技术点
① Judge bias 3 类
LLM judge 不是中立的。RAGAS 文档和 DeepEval 论文都列出了 3 类典型偏差:
- 长度偏差:更长的答案容易被判高分,即使内容无关。
- 同源偏差:judge 偏向给「同一模型家族」(如 GPT-4 judge 偏向 GPT-4 生成的内容)打高分。
- 风格偏差:跟 prompt 模板风格匹配的答案会得高分。
对策:用不同模型家族做 judge,固定 rubric 措辞,做配对评估时随机化选项顺序。
② JSON 解析失败 → NaN 分数 → 静默排除
LLM judge 输出 JSON 时,格式错误很常见。RAGAS 用户都踩过这个坑:bad JSON → NaN score → 被静默排除在聚合之外。看似正常的 0.85 平均分,可能掩盖了 5% 的样本根本没评分。对策:必须有 try/except + 显式失败模式 + 失败率报警。RAGAS 文档也明确建议把 judge 输出 schema 校验放在调用层。
③ 校准:Spearman rho > 0.7
永远不要直接相信 raw judge 分数。先拿 100 个人工标注样本算 judge vs 人标的 Spearman rho(秩相关系数)。业内通行阈值:
- rho < 0.4:judge 不可用,本质是噪声。
- 0.4 ≤ rho < 0.7:judge 能用,但需要改进 rubric 和样本代表性。
- rho ≥ 0.7:judge 达到生产可用门槛。
校准不是一次性的 —— judge 模型升级、prompt 调整后都要重新校准。Spearman rho 是 OpenAI evals、Anthropic Constitutional AI 都用的主流选择。
④ Self-evaluation 膨胀 10–20%
用同一个模型既生成又 judge,会让分数虚高 10–20%(RAGAS 文档明确列出)。原因是模型对自己的输出天然有「亲和性」。
对策:固定 judge 模型 ≠ 生成模型。生成用 GPT-4o,judge 用 Claude Haiku 4.5;或反之。DeepEval 的 G-Eval 默认也是用不同模型。
⑤ Judge 成本:每千次 $3
GPT-4o-mini judge 单次评分约 $0.003(Anthropic Claude Haiku 4.5 / OpenAI 官方 API 价格)。1000 sample 的回归评测 ≈ $5,10000 sample ≈ $50。这是 为什么 judge 要用小模型而生成用大模型。
接进 CI:DeepEval + Pytest 模式
DeepEval 的设计目标就是「Pytest for LLMs」—— 把 LLM 评估写成像单元测试一样,在 PR 阶段自动运行、卡阈值、阻断回归。业内通行的 CI gate 阈值:
| 指标 | CI gate 阈值 | 含义 |
|---|---|---|
| Faithfulness | ≥ 0.85 | 至少 85% 答案声明来自上下文 |
| Contextual Relevancy | ≥ 0.70 | 至少 70% 检索内容相关 |
| Answer Relevance | ≥ 0.85 | 答案回应原问题 |
阈值不是死的 —— 根据业务调。比如医疗 / 法律领域 faithfulness 应该 ≥ 0.95;闲聊机器人 0.7 也够。
# DeepEval CI gate 示例(伪代码)importfromimportdef test_rag_regression():# 100–500 个标注样本0.850.70forinassert0.85f"faithfulness regression on {case.id}"assert0.70f"relevancy regression on {case.id}"
评估框架选型
RAGAS、DeepEval、G-Eval 不是互斥的,是分层使用的:
| 用途 | 参考工具 |
|---|---|
| RAG 质量监控(RAG Four + NLI) | RAGAS |
| CI/CD 回归 gate(Pytest 风格) | DeepEval |
| 自定义领域标准(自定义 rubric + CoT) | G-Eval(DeepEval 内置方法) |
| 在线流量监控 + session replay | LangSmith / Phoenix / Langfuse |
| 红队 / 安全评估(prompt injection、对抗样本) | Promptfoo + DeepEval |
| 人工 spot check + 标注 UI | LangSmith / Phoenix 标注面板 |
典型栈:RAGAS 监控 + DeepEval CI + G-Eval 自定义维度 + LangSmith 在线。三件套并行运行,它们的分歧本身也是有价值的数据(不同指标高/低说明模型在不同维度上不均衡)。
常见误区
- 用 Exact Match / F1 评估生成。“June 29th 2007” vs “June 29, 2007”,EM = 0、F1 = 75%,人工 100% —— 字符串指标对语义等价完全无能为力。
- 只跑 10 个 sample 凭"看起来不错"上线。LLM 输出是概率分布,prompt 改一个字可能让 5 个 case 都翻车。必须跑 regression suite(业内起步 100 个 case,生产数据集 500+)。
- 看平均分不看分位数。平均 0.85 经常藏着 5% 灾难性失败 —— 必看 P10 / bottom quantile,以及失败 case 的手工复盘。
- 评测集不版本化。不写日期 + hash 的评测集,3 个月后无法做纵向对比;改 prompt 后跑同一份旧评测,结果不可信。
- 把 judge 输出不加校验直接入库。LLM judge 输出 bad JSON 概率 1–5% 不等;必须 schema 校验 + 失败率报警,否则聚合分会被静默污染。
- judge 模型频繁升级。GPT-4o → GPT-4.1 → GPT-5,每次升级你的所有 metric 都变,但不是真实回归 —— judge 升级后必须重新校准 Spearman rho。
总结
RAG 评测不是一个工具的事,是一套流水线:
- 选指标(冷启动 Hit Rate,有标注后 Recall/MRR/NDCG)
- 搭数据集(人工标注 / 生产日志反推 / 知识图谱合成)
- 选 judge(便宜的小模型 + 不同模型家族)
- 跑校准(Spearman rho ≥ 0.7 才能信)
- 接入 CI(DeepEval + Pytest + 阈值门禁)
- 接监控(RAGAS + LangSmith,在线流量持续打分)
任何一步缺位,评测结果都不可信 —— 评估不是 nice-to-have,是 RAG 上生产前的最后一道闸门。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

1193

被折叠的 条评论
为什么被折叠?



