当你费尽心思搭建了一套RAG系统,它终于能回答问题了。但效果到底怎么样?怎么科学地衡量它的好坏?当系统答错时,如何快速定位是检索的问题还是生成的问题?当系统要上线时,又如何持续监控它的表现?
本章将系统性地回答这些问题。我们从评估的核心框架(RAG三元组)讲起,深入每一个评估维度的原理和计算方法,最后介绍三款主流评估工具及其选型策略,帮你建立起一套完整的RAG质量保障体系。
一、为什么评估如此重要?
RAG系统搭建完成后,开发者面对的第一个灵魂拷问往往是:"它到底表现怎么样?"
这个问题背后,其实关联着所有RAG开发者和使用者都会面临的几个核心场景:
| 角色 | 关心的问题 | 评估能提供的答案 |
|---|---|---|
| 开发者 | "改了检索策略后,效果真的变好了吗?" | 量化对比不同版本的指标,用数据说话,告别"我觉得" |
| 开发者 | "系统答错时,是没找到资料还是模型瞎编?" | 分维度评估(检索/生成),精准定位瓶颈环节 |
| 决策者/产品经理 | "A系统和B系统,我该选哪个?" | 提供客观的对比数据,辅助技术选型决策 |
| 最终用户 | "AI的回答我该信几分?" | 通过忠实度、相关性等指标,让系统的可信度可量化 |
🎯 一句话概括:评估是RAG系统的"体检报告"------告诉你哪里健康、哪里有问题、哪里需要调整。没有评估,优化就是"盲人摸象"。
本章将从三个层次层层递进:
-
评估什么? ------ RAG三元组框架(定性)
-
怎么评估? ------ 详细拆解每一项指标的原理与计算(定量)
-
用什么评估? ------ 三款主流工具的选择与实践(落地)
二、RAG评估三元组:评估的"黄金框架"
在RAG评估领域,RAG三元组(RAG Triad) 是被广泛认可的评估框架(在TruLens等工具中得到了深入应用)。它将RAG系统拆解为三个维度,分别对应系统的不同环节。
text
┌─────────────────────────────────────────────────────────────┐
│ RAG评估三元组 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ① 上下文相关性 ② 忠实度 │
│ (Context Relevance) (Faithfulness) │
│ ↓ ↓ │
│ 检索器表现如何? 生成器是否靠谱? │
│ “找来的资料有用吗?” “答案有事实依据吗?” │
│ │
│ ③ 答案相关性 │
│ (Answer Relevance) │
│ ↓ │
│ 端到端表现如何? │
│ “回答切题、完整吗?” │
│ │
└─────────────────────────────────────────────────────────────┘
2.1 维度一:上下文相关性 ------ 检索器的"准头"
-
评估目标:检索器(Retriever)召回的内容,是否与用户的问题高度相关?
-
通俗理解:好比在图书馆找书,检索器就是图书管理员。管理员给你搬来一堆书,这些书真的跟你的问题有关吗?
⚠️ 关键逻辑 :检索是RAG系统的第一步,如果这一步出了问题,后续的生成模型再强大也"巧妇难为无米之炊"。这个维度是整个评估体系的前提------上下文相关性低,后续两个维度再高也没有意义。
2.2 维度二:忠实度 ------ "幻觉"的照妖镜
-
评估目标:生成的答案,是否完全建立在检索到的上下文之上?
-
通俗理解:如果给模型一本《猫的百科》,它却给你讲狗的故事,这就是"幻觉"------不忠实。高忠实度意味着模型"有几分证据说几分话",没有添油加醋、凭空捏造。
一个帮助理解的例子:
| 检索到的上下文 | 模型生成的答案 | 忠实度评估 |
|---|---|---|
| "巴黎是法国的首都,位于塞纳河畔" | "巴黎是法国的首都" | ✅ 高忠实度(完全基于上下文) |
| "巴黎是法国的首都,位于塞纳河畔" | "巴黎是法国的首都,人口约1100万" | ❌ 低忠实度(人口信息不在上下文中,是模型"编"的) |
2.3 维度三:答案相关性 ------ 用户的直观感受
-
评估目标:最终答案是否直接、完整、有效地回答了用户的原始问题?
-
通俗理解:你问"法国在哪里,首都是哪里?",AI说"法国在欧洲"------话是对的(高忠实度),但你的问题没答完(低相关性)。
📝 注意:忠实度与答案相关性容易混淆,但它们的侧重点截然不同:
忠实度关注"是否瞎编" → 答案有没有超出资料范围?
答案相关性关注"是否切题" → 回答对不对得上问题,信息是否完整?
三、检索评估 ------ 用数据说话的白盒测试
检索评估聚焦于RAG三元组中的上下文相关性 ,本质上是一场白盒测试------我们可以单独检查检索器的工作成果,而不依赖于后续的生成环节。
3.1 前提条件:高质量的标注数据集
要进行检索评估,首先需要一份"标准答案":
标注数据集 = 一系列问题 + 每个问题对应的"真实"相关文档(通常由人工专家标注,或从权威来源筛选)。
如何构建标注数据集?
| 方法 | 说明 | 优缺点 |
|---|---|---|
| 人工标注 | 请领域专家为每个问题标注相关文档 | ✅ 质量最高 ❌ 成本高、耗时 |
| LLM辅助标注 | 用高性能LLM生成相关问题并匹配文档 | ✅ 速度快、成本低 ❌ 可能存在标注偏差 |
| 众包标注 | 通过众包平台大规模标注 | ✅ 规模大 ❌ 质量参差不齐 |
有了这份"标准答案",我们才能计算检索器"找对了多少、找到了多少"。
3.2 核心指标详解
💡 指标总览 :以下指标从不同角度衡量检索质量,适用于不同场景。初学者可以先重点关注MRR 和命中率。
📊 平均倒数排名(MRR)------ 第一个正确的有多靠前?
MRR衡量的是:系统找到的第一个正确答案,平均排在第几位。这是一个"用户满意度"指标------用户通常只关心第一个结果有没有用。
计算公式:

其中,|Q|是查询总数,rank_q是第q个查询中第一个相关文档的排名位置。
通俗理解:如果你问了3个问题,系统找到的第一个正确答案分别排在第1位、第3位、第5位,那么这三个查询的倒数排名分别是1、1/3、1/5,MRR就是它们的平均值:(1 + 0.33 + 0.2) ÷ 3 ≈ 0.51。
| MRR得分 | 含义 |
|---|---|
| 1.0 | 完美:每个问题的第一个结果都是正确答案 |
| 0.5 | 中等:第一个正确答案平均排在第2位 |
| 越接近0 | 越差:系统总是把正确答案藏在很后面 |
🎯 适用场景:当用户通常只关心第一个结果时(如"法国总统是谁?"、"今天天气如何?"),MRR最能反映实际体验。
📊 命中率(Hit Rate)------ 有没有找到对的?
命中率衡量:检索结果中,是否至少有一个相关文档被找到了?这是一个二元的"有/没有"指标。
计算公式:

🎯 适用场景:想快速判断系统"会不会完全找错方向",或进行快速的方案筛选。
📊 上下文精确率(Precision@k)------ 找回来的资料里,多少有用?
精确率衡量:检索器找回来的k个文档中,有多大比例是真正相关的。k通常取3、5、10等值。
计算公式:

通俗理解:找回来10篇文档,里面有3篇是真正有用的,那Precision@10 = 30%。
🎯 适用场景:当误报成本很高时(比如推荐法条,推荐错了会误导用户),精确率是核心关注点。
📊 上下文召回率(Recall@k)------ 有用的资料里,找回了多少?
召回率衡量:所有真正相关的文档中,检索器找回了多大的比例。
计算公式:

通俗理解:数据集中总共有100篇真实相关的文档,检索器找回了其中80篇,那Recall@10 = 80%。
🎯 适用场景:当漏报成本很高时(比如故障排查手册,漏掉了关键步骤会导致严重后果),召回率是核心关注点。
📊 F1分数 ------ 精确率和召回率的"调和者"
F1分数是精确率和召回率的调和平均数,同时兼顾了两者。当精确率和召回率都高时,F1分数才高。
计算公式:

🎯 适用场景:当需要在"找得准"和"找得全"之间取得平衡时,F1是最常用的综合指标。
📊 MAP(平均准确率均值)------ 排名质量的"全能选手"
MAP是信息检索中最综合的指标之一,同时评估了检索结果的精确率和相关文档的排名位置。
计算步骤:
-
对于每个查询,计算它所有相关文档位置上的精确率,求平均 → AP(Average Precision)
-
对所有查询的AP再求平均 → MAP(Mean Average Precision)
计算公式:

通俗理解 :MAP衡量的是"检索结果列表中,所有相关文档的平均排位质量"。它同时奖励"排得靠前"和"相关文档多"两种情况------如果一个查询有10个相关文档,系统把它们都排在前10位,MAP就很高;如果它们被分散排在第1、50、100位,MAP就很低。
🎯 适用场景:需要综合评估整个检索结果排序质量时,MAP是最全面的指标之一。
四、响应评估 ------ 端到端的质量检验
响应评估覆盖RAG三元组中的忠实度 和答案相关性 两个维度,衡量的是用户最终看到的答案质量。这通常是端到端的评估,因为用户只关心最终答案------至于答案是怎么来的,那是开发者的事。
4.1 两个核心维度速览
| 维度 | 通俗理解 | 评估方法 |
|---|---|---|
| 忠实度 | AI"瞎编"了吗? | 将答案拆成独立声明(Claim),逐一验证是否能从上下文找到依据 |
| 答案相关性 | AI"答非所问"了吗? | 判断答案是否切题、完整、不含无关信息 |
4.2 评估方法一:基于LLM的评估(新主流)
这是一种强大的评估方法,正逐渐成为主流选择。它利用一个高性能、中立的LLM作为"评估者",对上述维度进行深度的语义理解和打分。
忠实度评估流程:
text
生成答案 → 拆分为多个“声明”(断言) → 逐一验证每个声明是否在上下文中出现 → 计算被证实的声明比例
答案相关性评估流程:
text
用户问题 + 生成答案 → LLM裁判评分 → 综合评估:答非所问程度、信息完整度、冗余信息比例
✅ 优点:
能理解语义和逻辑,评估质量高
能发现"同义表述"等细微问题(如"猫"和" feline "被认为是同一个概念)
无需为每个问题准备"标准答案",大幅降低标注成本
❌ 缺点:
成本较高(每次评估都要调用LLM)
可能存在"评估者偏见"------评估LLM可能有自己的偏好或盲区
评估结果可能随模型版本变化而波动
4.3 评估方法二:基于词汇重叠的经典指标(传统派)
这组指标需要数据集中包含一个或多个"标准答案",通过计算生成答案与标准答案之间n-gram(连续的n个词)的重叠程度来评分。
ROUGE(召回率导向)
-
侧重点:标准答案中的词汇,有多少被生成答案覆盖了?
-
通俗理解 :ROUGE更关心"说全了没"。
| 参考答案 | 生成答案 | ROUGE-1(召回率) |
|---|---|---|
| "狗 在 床 上面"(5个词) | "狗 在 床 上"(4个词) | 4/5 = 80% ✅ |
生成答案覆盖了参考答案中80%的词,ROUGE认为效果不错。
常用变体:
-
ROUGE-N:基于n-gram匹配(N=1为单字,N=2为双字组合)
-
ROUGE-L:基于最长公共子序列(LCS),更关注词序
BLEU(精确率导向)
-
侧重点:生成答案中的词,有多少是"有效"的(在参考答案中出现过)?
-
通俗理解 :BLEU更关心"说对了没,以及长度是否合适 "。如果生成答案太短,即使每个词都正确,也会有长度惩罚(Brevity Penalty)。
| 参考答案 | 生成答案 | BLEU的行为 |
|---|---|---|
| "狗 在 床 上面" | "狗 在" | 每个词都正确(精确率高),但太短 → 被长度惩罚扣分 ❌ |
METEOR(综合平衡派)
-
侧重点 :同时考虑精确率和召回率的调和平均,还支持词干和同义词匹配。
-
通俗理解:METEOR在"说全"和"说对"之间找平衡,结果通常更接近人类判断。
独特优势:METEOR会将"boat"和"ship"、"cat"和"feline"视为匹配,而ROUGE和BLEU只看字面完全相同。
三者对比总结
| 指标 | 侧重点 | 核心优势 | 主要缺陷 | 适用场景 |
|---|---|---|---|---|
| ROUGE | 召回率 | 关注答案的完整性 | 不理解语义,可能误判同义词 | 摘要生成评估 |
| BLEU | 精确率 | 关注答案的准确性,有长度惩罚 | 不适合短文本、不理解同义词 | 机器翻译评估 |
| METEOR | 综合平衡 | 支持同义词匹配,更接近人类判断 | 实现更复杂,计算稍慢 | 需要与人类判断高度相关的场景 |
4.4 两种评估方法的对比矩阵
| 维度 | 基于LLM的评估 | 基于词汇重叠的评估 |
|---|---|---|
| 评估深度 | 语义级(理解意思) | 字面级(看字有没有对上) |
| 是否需要标准答案 | 通常不需要 | ✅ 必须需要 |
| 能否识别同义词 | ✅ 能 | ❌ 不能(除METEOR外) |
| 评估成本 | 高(每次调用LLM) | 低(纯计算) |
| 评估速度 | 慢 | 极快 |
| 与人类判断一致性 | 较高 | 中等到较低 |
| 可解释性 | 较低(LLM的"黑盒") | 较高(指标可追溯) |
4.5 实战建议:如何选择评估方法?
| 场景 | 推荐方法 | 理由 |
|---|---|---|
| 快速迭代开发 | 基于LLM的评估 | 无需标注"标准答案",自动化程度高,适合频繁测试 |
| 学术研究/论文发表 | 传统指标(ROUGE、BLEU)+ 人工评估 | 标准化指标可与前人研究直接对比 |
| 生产环境持续监控 | 基于LLM + 采样人工复核 | 兼顾自动化与准确性 |
| 成本敏感/数据量巨大 | 传统指标快速筛查 + 少量LLM验证 | 先用低成本方法筛选出问题案例,再精细评估 |
五、评估工具实战:三款主流工具详解
了解了评估的"道"(原理),我们来认识具体的"术"(工具)。以下三款工具各有侧重,适合不同场景。
5.1 LlamaIndex Evaluation ------ 开发者的"随身听诊器"
-
定位 :深度集成于LlamaIndex框架的嵌入式评估模块
-
适用场景:正在使用LlamaIndex开发RAG应用的开发者,在开发、调试和迭代周期中快速验证策略效果
核心特点:
| 特点 | 说明 |
|---|---|
| 无缝集成 | 直接在LlamaIndex代码中调用,无需引入额外工具或切换工作流 |
| 自动化生成数据集 | 使用DatasetGenerator从文档自动生成问答对,降低标注负担 |
| LLM作为裁判 | 利用高性能LLM对忠实度、相关性等维度自动打分 |
| 批量并行评估 | BatchEvalRunner支持并行评估,高效对比不同RAG策略 |
| 模块化设计 | 基于BaseEvaluator基类,可轻松扩展自定义评估器 |
核心评估维度:
| 评估器 | 评估内容 | 对应三元组维度 |
|---|---|---|
FaithfulnessEvaluator |
答案是否基于上下文(有无幻觉) | 忠实度 |
RelevancyEvaluator |
答案是否切题 | 答案相关性 |
CorrectnessEvaluator |
答案与标准答案的语义一致性 | 端到端准确性 |
实战案例:对比"句子窗口检索"vs"常规分块检索"
下面的示例基于我们在《索引优化》章节学习的句子窗口检索技术,通过评估量化对比它与常规分块检索的效果差异。
python
from llama_index.core.evaluation import FaithfulnessEvaluator, RelevancyEvaluator
from llama_index.core.evaluation import BatchEvalRunner
# 1. 初始化评估器(使用已配置好的LLM)
faithfulness_evaluator = FaithfulnessEvaluator(llm=Settings.llm)
relevancy_evaluator = RelevancyEvaluator(llm=Settings.llm)
evaluators = {"faithfulness": faithfulness_evaluator, "relevancy": relevancy_evaluator}
# 2. 准备评估数据集(假设已生成)
# 数据集包含 queries(问题列表)和对应的参考答案
# 3. 分别评估两种检索策略
print("\n=== 评估句子窗口检索 ===")
sentence_runner = BatchEvalRunner(evaluators, workers=2, show_progress=True)
sentence_results = await sentence_runner.aevaluate_queries(
queries=queries,
query_engine=sentence_query_engine # 句子窗口检索引擎
)
print("\n=== 评估常规分块检索 ===")
base_runner = BatchEvalRunner(evaluators, workers=2, show_progress=True)
base_results = await base_runner.aevaluate_queries(
queries=queries,
query_engine=base_query_engine # 常规分块检索引擎
)
# 4. 计算结果并对比
# 输出示例:
# ============================================================
# 响应评估结果对比
# ============================================================
# 句子窗口检索: 忠实度=53.3%, 相关性=66.7%
# 常规分块检索: 忠实度=0.0%, 相关性=6.7%
📝 结果解读:在这个案例中,句子窗口检索的忠实度和相关性都远高于常规分块检索,这说明"索引小文本块、生成时扩展上下文"的策略确实能显著提升答案质量------这正是我们在第三章详细讲解的技术。
⚠️ 注意:LlamaIndex的评估器默认使用LLM进行语义评估,这提供了深度的质量洞察,但评估成本相对较高。对于大规模的初步筛选,可以先使用检索评估指标(如MRR、命中率)进行快速评估,再对少数候选方案进行LLM深度评估。
5.2 RAGAS ------ 轻量级"独立评估专家"
-
定位 :独立、开源、专注RAG的轻量级评估框架
-
适用场景:希望在框架之外独立评估RAG系统,或做不同方案之间的横向对比
核心理念 :通过分析问题(question) 、答案(answer) 和上下文(contexts) 三者之间的关系,量化评估系统表现。
最核心的特色:无参考评估 ------ 在许多场景下,无需人工标注的"标准答案" 即可进行评估,极大地降低了评估门槛。
工作流程(仅需3步) :
python
from ragas import evaluate
from ragas.metrics import faithfulness, context_recall, context_precision, answer_relevancy
# 1. 准备数据集
# 只需要4列:问题、答案、上下文、标准答案
dataset = {
"question": ["法国首都是哪里?", "什么是机器学习?"],
"answer": ["巴黎", "机器学习是AI的一个子领域,让计算机从数据中学习"],
"contexts": [
["巴黎是法国的首都,位于塞纳河畔"],
["机器学习是人工智能的核心,通过算法从数据中学习模式"]
],
"ground_truth": ["巴黎", "机器学习是AI的子领域"] # 部分指标(如context_recall)需要此列
}
# 2. 运行评估
result = evaluate(
dataset,
metrics=[faithfulness, context_recall, context_precision, answer_relevancy]
)
# 3. 查看结果
print(result)
核心指标速览:
| 指标 | 评估内容 | 是否需要标准答案 |
|---|---|---|
| faithfulness | 答案是否基于上下文(有无幻觉) | ❌ 不需要 |
| context_recall | 检索到的上下文是否覆盖了标准答案中的信息 | ✅ 需要 |
| context_precision | 检索到的内容中,信噪比如何(多少是真正有用的) | ❌ 不需要 |
| answer_relevancy | 答案是否切题、直接、完整 | ❌ 不需要 |
🎯 RAGAS的独特优势 :无需标准答案即可评估faithfulness、context_precision和answer_relevancy三项核心指标,这意味着你可以在没有任何人工标注的情况下,快速了解RAG系统的基本表现水平。
5.3 Phoenix ------ 生产环境的"监控大屏"
-
定位:开源的LLM可观测性与评估平台(现由Arize维护)
-
适用场景 :RAG系统上线后的持续监控、故障诊断、数据漂移检测
核心理念 :AI可观测性(AI Observability) ------ 通过追踪RAG系统内部的每一步调用(检索、生成等),将整个流程可视化呈现。这不仅提供评估指标,更强调对系统进行追踪(Tracing) 和可视化分析,从而快速定位问题。
工作原理:
text
① 代码插桩 → ② 持续生成追踪数据 → ③ 本地Web界面可视化 → ④ 筛选分析 + 内置评估
特色功能一览:
| 功能 | 说明 |
|---|---|
| 可视化追踪 | 像看地图一样看到RAG的每一步执行流程,每个环节的输入/输出一目了然 |
| 根本原因分析 | 在UI中对表现不佳的查询进行切片和钻取,快速定位"是检索还是生成出了问题" |
| 向量空间聚类 | 在向量空间中对问题自动聚类,发现"同类问题总是答不好"的模式 |
| 安全护栏 | 为应用添加保护层,防止恶意或错误的输入输出,保障生产环境安全 |
| 数据探索与标注 | 提供数据探索和标注工具,帮助利用生产数据反哺模型优化 |
核心价值 :如果说RAGAS和LlamaIndex解决的是"开发时怎么测",Phoenix解决的就是"上线后怎么管"。
5.4 工具选型指南:我该怎么选?
| 维度 | LlamaIndex Evaluation | RAGAS | Phoenix |
|---|---|---|---|
| 核心机制 | 嵌入式评估 | LLM驱动评估 | 追踪分析型 |
| 独特技术 | 异步评估、模块化设计 | 无参考评估架构 | 分布式追踪、向量聚类 |
| 数据来源 | 开发环境/测试集 | 测试集/生产数据采样 | 生产环境实时数据 |
| 典型应用场景 | 开发过程中快速验证策略改动 | 独立对比不同RAG方案的优劣 | 生产环境监控、Bad Case分析 |
| 与框架耦合度 | 高(需使用LlamaIndex) | 低(与具体实现解耦) | 中(通过插桩集成) |
| 上手难度 | 低(框架内即用) | 极低(几行代码) | 中(需部署和配置) |
组合使用建议:
这三款工具并非互斥,恰恰相反,它们可以组合使用,形成完整的评估体系:
text
开发阶段(LlamaIndex Evaluation)→ 版本对比(RAGAS)→ 上线监控(Phoenix)
↓ ↓ ↓
验证策略改动 横向选型参考 持续追踪线上表现
六、补充内容:评估体系成熟度模型
为了让初学者更好地规划评估工作的推进节奏,这里提供一个RAG评估体系成熟度模型,帮助你评估自己当前所处的阶段:
| 成熟度 | 状态描述 | 典型行为 | 下一步行动 |
|---|---|---|---|
| L1 - 直觉驱动 | "我觉得效果还行" | 纯人工抽查几个Case,凭感觉判断 | 引入RAGAS,跑出基线指标 |
| L2 - 指标感知 | "我们的忠实度是85%" | 定期运行评估工具,有量化指标但未系统化 | 建立评估流水线,每次代码变更自动运行 |
| L3 - 系统化评估 | "每次PR都会触发评估,指标波动有监控" | 评估集成到CI/CD流程,有历史趋势追踪 | 引入Phoenix进行生产监控,关注线上指标漂移 |
| L4 - 持续优化 | "评估驱动迭代,指标改善与业务效果挂钩" | 评估体系与业务KPI对齐,有完善的Bad Case分析机制 | 建立从评估到优化的闭环 |
🎯 新手目标:先达到L2级别------跑出基线指标,用数据说话,告别"我觉得"。
七、实战建议:持续评估与迭代
7.1 推荐的评估工作流
text
┌─────────────────────────────────────────────────────────────────┐
│ 持续评估与迭代闭环 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ① 构建基线 → ② 尝试优化 → ③ 运行评估 → ④ 对比分析 → ⑤ 决策 │
│ ↑ ↓ │
│ └────────── 持续循环 ──────────┘ │
│ │
│ 建议频率: │
│ · 策略调整时 → 立即运行评估 │
│ · 代码提交时 → 自动运行(CI集成) │
│ · 上线后 → 持续监控(Phoenix) │
└─────────────────────────────────────────────────────────────────┘
7.2 新手入门路径
如果你是RAG评估的新手,建议按以下路径循序渐进:
-
第一步:理解RAG三元组 → 搞明白要评估哪些维度,每个维度对应系统哪个环节(1小时)
-
第二步:用RAGAS跑一次评估 → 最简单的上手方式,只需几行代码就能出报告(30分钟)
-
第三步:结合开发环境用LlamaIndex Evaluation → 在迭代策略时对比效果(半天)
-
第四步:系统上线后配置Phoenix → 持续监控,及时发现线上问题(1-2天)
八、总结
8.1 一张图回顾RAG评估体系
text
┌─────────────────────────────────────────────────────────────────────┐
│ RAG评估体系全景图 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ RAG三元组(评估什么?) │ │
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ 上下文相关性 │ │ 忠实度 │ │ 答案相关性 │ │ │
│ │ │ (检索器表现) │ │ (生成器表现) │ │ (端到端表现) │ │ │
│ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │
│ └─────────┼──────────────────┼──────────────────┼─────────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 评估方法(怎么算?) │ │
│ │ 检索评估:Precision、Recall、F1、MRR、MAP、Hit Rate │ │
│ │ 响应评估:基于LLM评估(语义) + 传统指标(ROUGE/BLEU/METEOR)│ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 评估工具(用什么?) │ │
│ │ LlamaIndex Evaluation(开发自测、策略验证) │ │
│ │ RAGAS(独立评估、横向对比、无参考评估) │ │
│ │ Phoenix(生产监控、故障诊断、可视化追踪) │ │
│ └─────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
8.2 核心要点速记
| 要点 | 一句话总结 |
|---|---|
| 为什么评估 | 量化RAG系统表现,精准定位问题环节,用数据驱动优化 |
| 评估什么 | RAG三元组:上下文相关性、忠实度、答案相关性 |
| 检索怎么评 | 用MRR、Precision@k、Recall@k、F1、MAP等指标衡量"找得准不准、全不全" |
| 响应怎么评 | 基于LLM评估(语义)+ 传统指标(ROUGE/BLEU/METEOR) |
| 工具怎么选 | 开发用LlamaIndex Evaluation,横向对比用RAGAS,上线监控用Phoenix |
| 新手第一步 | 用RAGAS跑一次无参考评估,拿到基线指标 |
如果本文对你有帮助,欢迎点赞、收藏、转发!有任何疑问,欢迎在评论区交流讨论~