RAG系统评估指南:从入门到实践
当你费尽心思搭建了一套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“常规分块检索”
下面的示例基于我们在《索引优化》章节学习的句子窗口检索技术,通过评估量化对比它与常规分块检索的效果差异。
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步):
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跑一次无参考评估,拿到基线指标 |
如果本文对你有帮助,欢迎点赞、收藏、转发!有任何疑问,欢迎在评论区交流讨论~
