想象你是一家公司的市场部员工,老板让你“整理一份关于竞争对手的报告”。你花了一上午查资料,终于找出一摞资料,通宵写了一份报告交上去。 老板看完皱眉头:“这份报告写得挺好,引用了很多内容,但我要的竞品价格对比呢?你怎么写成了竞品公司发展史?” 这个时候,你其实面临了三个问题:你查到的资料到底准不准?报告内容有没有歪曲资料的原意?报告到底有没有回答老板的问题? 这三个问题,恰恰就是 RAG(检索增强生成)系统评估时需要回答的核心三问。 当一个 AI 助手被投喂了大量企业文档、产品手册或知识库时,它内部也经历着同样的流程:先从庞大的资料库中“查资料”(检索),再根据查到的资料“写报告”(生成)。RAG 评估,就是要拆开这个黑盒子,判断到底是“资料没查对”还是“报告写跑偏”了。今天我们就围绕上下文相关性(查得准不准)、忠实度(引用老不老实)、答案相关性(回答好不好)这三个核心要素,像质检员一样逐一拆解。
掌握 RAG 三要素评估,你就能像医生分诊一样快速定位 RAG 系统是“检索环节生病”还是“生成环节生病”,还能给出对症的调优方向。这是每个做 RAG 落地的算法工程师最值钱的核心能力之一。
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
三要素总览
还记得开头那个写报告的比喻吗?你的那次失败经历,其实经历了三个独立环节:查资料(从资料堆里挑出相关的文档)、写报告(基于挑出的资料进行归纳总结)、答问题(确保最终内容回应老板的真实需求)。任何一个环节掉链子,老板都会不满意。
RAG 系统完整跑一次问答,也恰好走这三步:检索器先从知识库中捞出若干文档片段(上下文),生成器(大语言模型)根据这些片段撰写回答。RAG 评估的三大核心要素,就是分别给这三步打分——上下文相关性(Contextual Relevance)考检索、忠实度(Faithfulness)考生成、答案相关性(Answer Relevance)考最终问答契合度。
为什么要拆成三个指标而不是只看最终答案好不好?因为三个环节的故障原因完全不同,修法也完全不同。如果最终答案很差,可能是资料没查对(检索词有问题、embedding 模型不匹配),也可能是资料查对了但模型没用好(Prompt 指令不清、生成参数不当),还可能是模型完全答非所问(系统指令理解偏了)。只盯着最终答案,就像老板只丢给你一句“报告不行”,你根本不知道是查资料的问题还是写报告的问题。
三要素就像汽车仪表盘上的三个仪表——油量、水温、速度,分开看各有意义,组合起来才能判断车况。油量低了去加油,水温高了查水箱,速度上不去查发动机。下一节,我们先看第一个仪表盘:上下文相关性。
- RAG 质量代表 RAG 系统整体表现的综合指标。
- f表示某种组合函数,实际使用中可以是加权求和或多个指标的乘积。
- 三个自变量分别对应检索、生成、问答三个环节的独立度量。
上下文相关性
你拿着老板的问题“竞品价格对比”去资料库查资料,结果检索员给你抱来一摞“竞品发展史”“公司背景介绍”的文档。你哭笑不得——资料是查了,但没查对。这就是上下文相关性要度量的事:检索出来的资料片段和用户问题之间到底有多相关。
在 RAG 技术语境中,上下文相关性评估的对象是检索器输出的上下文片段。打分方式通常是:把用户问题和每个检索到的文档片段分别交给一个“评分裁判”(通常是 LLM 或专门的打分模型),让裁判对每个片段的有用程度打分。分数高意味着“这段资料直接帮助回答了用户问题”,分数低意味着“这段资料像是凑数的”。
打个形象的比方:上下文相关性评分就是对每份被检索出来的资料盖一个“印章”——「直接有用」「间接有用」「完全无关」。RAGAS 框架的做法是让 LLM 逐段输出一个二值或分级判断,最后算出一个加权比例。如果十段检索结果里只有三段是直接有用的,这个环节的得分就高不了。
你给这些打上了“相关/不相关”的印章之后,一眼就能看出检索员的水平。如果印章大多是“不相关”,那问题大概率出在检索环节——可能是检索词切分不合理,可能是 embedding 模型和你的领域不匹配,也可能是知识库本身就有大量噪音。此时应该去优化检索链路:换 embedding 模型、调 chunk 大小、加 Reranker。而不要去动生成环节——就像资料压根没查对,再怎么会写的报告员也写不出老板要的东西。
1相关(d_i) 是指示函数——当第 i 个片段与问题相关时取 1,否则取 0。得分就是“有用片段占比”。- 片段集合检索器返回的 N 个文档片段组成待评估集合。
- 指示函数对每个片段逐个判断是否与问题相关,相关为 1,不相关为 0。
- 求和取平均统计相关片段总数,除以总片段数得到一个比例值。
忠实度
假设这次检索员表现不错,抱回来的资料都对路。你开始翻着资料写报告。结果报告里有句话:“竞争对手 A 公司的产品价格比 B 公司低 30%”,你翻遍所有资料,发现里面只写了“A 公司近期降价”,压根没有"30%"这个数字——这句是你自己脑补出来的。这就是忠实度要管的事:生成的内容是否严格忠于检索到的上下文,有没有编造上下文里不存在的信息。
忠实度评估的核心思路是声明级拆解,也叫“自下而上”的验证。具体是这样做的:先把模型生成的回答拆成若干个独立的声明(Claim),再把每个声明拿去和检索到的上下文对照,判断它是「被上下文支持」还是「与上下文矛盾」还是「上下文没提过」。最后算一下:
用写报告的比喻来理解:忠实度评估就像“查重+求证”。你写完报告后,逐句核对每句话在资料里有没有依据——有依据的划勾(支持),和资料矛盾的划叉(矛盾),资料里没有的标注“存疑”(幻觉)。忠实度得分 = 有依据的句子数 ÷ 总句子数。RAGAS 框架实现这一指标时,通常用 LLM 先拆解声明,再逐条判断“support“或”contradict”。
忠实度低是最危险的信号,因为它意味着模型在幻觉——一本正经地编造资料里不存在的内容。在金融、医疗、法律等对准确性要求极高的场景,幻觉是致命的。一旦发现忠实度低,修复方向在生成链路:调整 Prompt 要求“严格依据上下文回答、不确定时明确说不知道”,降低 temperature 参数,或者引入“引用溯源”机制——强制模型回答时标注参考来源,便于事后审计。就像给报告员立规矩:“每句话都要给我标出处,没出处的不能写。”
- 拆解声明把生成的回答拆成独立的、可验证的短句(每条含一个事实断言)。
- 判定支持将每个声明与上下文对比,判定是否被证据支持。
- 计算比例被支持的声明数除以总声明数,得到忠实度得分。
答案相关性
好了,资料查对了,报告也没编造。但你交上去的报告,老板看了一眼说:“我让你对比价格,你怎么写了 A 公司价格、B 公司价格,就是没说谁更便宜、便宜多少?信息都对,但没回答我的问题。”
最后一个要素——答案相关性——衡量的正是“最终回答和用户问题之间的契合程度”。不看内容是否忠于材料,只看有没有正面、完整地回答用户的问题。一个回答可能上下文相关性很高(资料都对)、忠实度很高(每句都有依据),但如果答非所问,答案相关性就会很低。
RAGAS 的答案是相关性评估有一个很机智的做法——反向提问法。思路是:让 LLM 看着最终答案,反推出“什么样的问题会得到这个答案”,然后把这个反推的问题和用户真实的问题做相似度对比。如果两者很接近,说明答案确实在对的轨道上;如果差得很远,说明跑题了。此外,还会评估完整度(是否覆盖了问题的所有子方面)和冗余度(是否夹杂了大量与问题无关的废话)。
答案相关性低,修复思路要分情况。如果是完整度不够——缺了价格对比、缺了结论——往往意味着 Prompt 没有明确告诉模型“必须覆盖哪些方面”,需要在指令中显式列出回答框架。如果是冗余度太高——夹带了大量无关信息——需要在 Prompt 中加入“只回答用户问的内容,不要扩展”的约束。从老板的视角看,答案相关性就是“这份报告到底有没有用”的终审。前面两步做得再好,这一步失败,用户依然会打差评。
- 反推问题让 LLM 观察最终回答,生成一个“最可能问出这个回答”的问题。
- 语义相似度计算反推问题与用户真实问题的向量相似度。
- 得分相似度越高,答案相关性越强。
评估实施
搞清楚了三个指标各自管什么,下一个问题是:实际工作中这些分数怎么算出来、怎么落地? 目前业界主流的方法是借助 RAGAS 框架,用 LLM 当“裁判”给三个指标打分。
LLM 裁判的思路非常直白:把「用户问题、检索到的上下文、模型生成的回答」拼接成一段评估提示词,交给一个能力较强的 LLM(如 GPT-4 或 Qwen-Max),让裁判按照预设的评分标准分别输出三个维度的得分和理由。优点在于语义理解能力强,能捕捉微妙的“相关”与“忠实”;缺点是成本高且不稳定——同一个回答换个裁判模型可能分数就变了。
因此,在实际系统中,规则指标 + LLM 裁判 + 人工抽样通常是三管齐下。规则指标(如关键词命中率、重叠度、引用出处的可验证性)便宜且稳定,适合在开发阶段做快速回归测试;LLM 裁判适合在离线评估集上做精细化打分;人工抽样则用于兜底校准——定期抽样 100~200 条问答记录,由人工标注三要素得分,用来验证 LLM 裁判是否“判得准”。就像餐厅出品要过三道关:厨师自查(规则)、主管试菜(LLM)、老板随机抽查(人工)。
评估实施最需要警惕的是“裁判幻觉”——LLM 评估器自身也会出错。当检索到的上下文本身质量很差时,LLM 裁判可能“将错就错”地给出一个不合理的忠实度高分。因此在落地时,务必保留人工抽检这个环节,定期把 LLM 裁判的打分与人工标进行对齐分析。如果发现裁判打分与人工判断系统性偏差,就应该调整评估提示词或更换裁判模型。记住:评估系统本身也需要被评估。
- LLM 裁判分用大模型按预设 rubric 打出的三要素分数。
- 规则指标分基于关键词、重叠度、引用校验等硬规则算出的分数。
- 加权融合三个分数按权重融合得到最终评估结果。
问题定位
四个环节讲完了,最后要回答最初的问题:怎么用三要素定位 RAG 系统的故障环节? 这里有一个很实用的排查思路——把三要素的得分组合起来做诊断,就像医生把体温、血压、血常规放在一起看。
第一种模式:上下文相关性低 + 其余两项正常。 这说明检索环节出了问题。排查链路依次是:①检查数据预处理——chunk 切分是否合理(太小可能截断语义,太大可能引入噪音);②检查 embedding 模型是否与领域匹配(通用 embedding 处理法律文书可能效果差);③检查检索策略——top-k 是否设置过大(捞回太多噪音)、是否缺少重排序(Reranker);④检查用户查询是否被正确理解(是否需要 Query 改写模块)。修复动作集中在检索链路。
第二种模式:忠实度低(其他项可能正常也可能偏低)。 这说明生成环节的模型在“自由发挥”。排查方向:①Prompt 是否给了足够强的约束——明确要求“只依据给定上下文,不得自行补充”;②生成参数——temperature 是否过高(过高容易发散);③上下文是否过长导致模型“看不过来”——需要做上下文压缩或摘要;④模型能力是否不足——小参数量模型更容易幻觉,考虑换更强的模型或用 RAG 专用微调模型。
第三种模式:答案相关性低 + 前两项都正常。 这是最微妙的情况——系统确实查到了好资料、也忠实地引用了,但用户不满意。这通常意味着用户意图理解环节出了问题。排查方向:①是否缺少意图识别模块;②Prompt 是否没有明确要求“正面回答问题”;③是否需要多轮对话管理来澄清用户需求;④是否需要后处理环节(如答案摘要、格式规整)来提升契合度。
用诊断灯的思路,你可以在 RAG 系统上线后建立三层监控看板:每天跑一批测试集,分别统计三要素的得分趋势。哪一项下跌,就触发对应链路的告警和排查流程。就像开车时仪表盘上的故障灯——水温灯亮了去查冷却系统,油量灯亮了去加油,不要一见到车出问题就把发动机拆了。RAG 调优的哲学也是如此:先定位,再优化,三要素就是你最趁手的定位工具。
- 条件判断三要素得分构成诊断条件。
- 检索链路上下文相关性低时重点排查 embedding、chunk、检索策略。
- 生成链路忠实度低时重点排查 Prompt 约束、生成参数、模型能力。
- 交互链路答案相关性低且前两项正常时排查意图理解与交互设计。
AI 应用场景
企业知识库问答系统上线前的评估
阶段:RAG 系统离线评估与调优
解决的问题:某保险公司要把数千份保险条款文档接入智能客服,上线前需要回答“检索得准不准、回答得真不真、用户满意不满意”。传统做法靠人工抽读几十条记录,效率和覆盖度都远远不够。用三要素评估框架,每天自动在千条测试集上跑三个指标,快速暴露短板。
具体案例:评估团队用 RAGAS 框架对 500 条真实用户问题打分,发现上下文相关性平均 0.82(不错)、忠实度平均 0.91(很好),但答案相关性只有 0.55。进一步分析发现,模型经常把“理赔流程”回答成“理赔材料清单”——不是不知道,是没理解用户要的是步骤而非材料。于是团队在 Prompt 中加入了“回答必须包含步骤顺序”的显式框架要求,答案相关性提升到 0.78。
RAG 系统线上监控与告警
阶段:线上质量监控
解决的问题:RAG 系统上线后,需要持续监控质量漂移。直接读用户反馈太滞后,日志里又不能直观看到“检索还是生成出了问题”。通过三要素指标做线上监控,将三个分数落入时序数据库,设定告警阈值。
具体案例:某电商导购助手在 “618 大促” 期间出现回答质量下滑。查看监控发现忠实度突然从 0.88 跌到 0.71,但上下文相关性保持稳定——说明检索没出问题,而是生成链路在某次模型版本更新后行为异常。团队快速回滚模型版本后指标恢复,整个排查过程不到一个小时。
知识库冷启动时的数据质量诊断
阶段:数据准备与预处理验证
解决的问题:新接入一批知识库文档时,不知道切分方式和索引策略是否合理。通过上下文相关性这一单项指标,可以在没有真实用户反馈的情况下快速评估检索质量。
具体案例:某法律咨询公司接入新法规库,首轮评估发现上下文相关性只有 0.4。逐段分析失分样本后发现,切分后的 chunk 经常把一个完整法条拦腰截断。于是将 chunk 切分策略从“固定 500 字符”改为“按法条边界切分”,上下文相关性提升到 0.75,后续忠实度和答案相关性也连带受益。
Python 演示
# -*- coding: utf-8 -*-"""使用 LLM 作为裁判,对 RAG 回答进行三要素评估。本示例用简单的规则模拟 LLM 打分逻辑,展示评估流程骨架。"""import refrom collections import Counter class RAGEvaluator: """RAG 三要素评估器(模拟版)""" def __init__(self): # 记录每项得分 self.score_records = [] def evaluate_context_relevance(self, question, contexts): """上下文相关性:上下文中有多少比例包含问题关键词""" q_tokens = set(re.findall(r"[\u4e00-\u9fa5]+", question)) hit_count = 0 for ctx in contexts: c_tokens = set(re.findall(r"[\u4e00-\u9fa5]+", ctx)) overlap = q_tokens & c_tokens if len(overlap) / max(len(q_tokens), 1) > 0.5: hit_count += 1 return hit_count / max(len(contexts), 1) def evaluate_faithfulness(self, answer, contexts): """忠实度:回答中的关键实体是否在上下文中出现过""" answer_tokens = set(re.findall(r"[\u4e00-\u9fa5]{2,}", answer)) ctx_text = "".join(contexts) ctx_tokens = set(re.findall(r"[\u4e00-\u9fa5]{2,}", ctx_text)) supported = 0 for token in answer_tokens: if token in ctx_tokens: supported += 1 return supported / max(len(answer_tokens), 1) def evaluate_answer_relevance(self, question, answer): """答案相关性:回答是否包含问题中的核心疑问词""" q_words = set(re.findall(r"[\u4e00-\u9fa5]{2,}", question)) a_words = set(re.findall(r"[\u4e00-\u9fa5]{2,}", answer)) overlap = q_words & a_words return len(overlap) / max(len(q_words), 1) def evaluate(self, question, contexts, answer): """执行完整评估流程""" cr = self.evaluate_context_relevance(question, contexts) fa = self.evaluate_faithfulness(answer, contexts) ar = self.evaluate_answer_relevance(question, answer) record = { "context_relevance": round(cr, 3), "faithfulness": round(fa, 3), "answer_relevance": round(ar, 3) } self.score_records.append(record) return record def summary(self): """汇总多条评估记录的平均分""" if not self.score_records: return {} avg = Counter() for rec in self.score_records: avg.update(rec) n = len(self.score_records) return {k: round(v / n, 3) for k, v in avg.items()} if __name__ == "__main__": # 模拟一次 RAG 问答 question = "这款手机的价格是多少?" contexts = [ "该品牌手机目前售价 3999 元。", "该品牌手机拥有 5000 毫安大电池。", "该品牌手机支持 5G 网络。" ] answer = "这款手机售价 3999 元,性价比很高。" evaluator = RAGEvaluator() scores = evaluator.evaluate(question, contexts, answer) print("单条评估结果:", scores) # 模拟多条记录,观察整体趋势 evaluator.evaluate("手机续航怎么样?", ["该手机电池容量为 5000 毫安。"], "续航很好") print("整体汇总:", evaluator.summary())
常见误区
误区我之前评估 RAG 系统时只看用户满不满意、回答准不准。分数低就整个系统一起调,经常改了 Prompt 又去调 Embedding,忙活半天也不知道哪里起的作用。
正解就像汽车仪表盘坏了你只看车能不能开——能开不代表没问题,不能开也不知道问题在哪。三要素拆解的核心价值在于定位:上下文相关性低查检索链路,忠实度低查生成链路,答案相关性低查意图理解。不拆解就调优,等于蒙着眼睛修车。
为何常见:因为最终回答质量是用户直接感知的指标,而“拆开看”需要额外的工作量和工具支撑。很多团队早期资源紧张,就跳过了这一层诊断。
误区我觉得只要模型回答都是根据检索资料来的,没有编造,那这个回答质量就肯定没问题。忠实度高了不就代表一切正常吗?
正解忠实度高只代表“没有编造”,不代表“回答了该回答的问题”。就像一个学生抄书抄得一字不差,但抄错了段落,照样不得分。三要素各管一段:上下文相关性管资料质量,忠实度管引用真实性,答案相关性管需求匹配度——三者互补,缺一不可。
为何常见:因为“真实”和“正确”在直觉上容易被混淆。尤其在强调减少幻觉的背景下,大家容易把“没骗人”当成“答得好”。
误区我上线前已经跑过评估集,三个指标都挺高的,所以线上应该没问题。后来用户反馈很多答非所问的情况,但我的评估分数没有预警。
正解评估是一次性的静态体检,而线上数据分布会随时间漂移。三要素应该做成持续的监控指标,像血压计一样定期测量、设定阈值。当知识库更新、模型升级、用户问题分布变化时,分数都会波动,必须用监控系统捕捉这些变化。
为何常见:因为搭建离线评估 Pipeline 已经花了不少功夫,容易产生“做完就结束了”的心态,忽略了评估本身也需要持续运营。
误区我的 RAG 系统三个指标都 0.9 以上,是不是就说明系统质量无敌了?还要做什么人工评估吗?
正解三要素主要评估的是“相关性”和“忠实度”这类质量维度,但系统还有安全性、公平性、鲁棒性、推理能力等维度没有覆盖。RAG 评估应该是一个多维度的体系,三要素是核心但不是全部。另外 LLM 裁判本身也会误判,必须用人工抽检来校准裁判的可信度——就像温度计再准,也要定期用水银标准温度计校核。
为何常见:因为指标体系一旦建立起来,人很容易对数字产生“信仰”,忽略了每个指标都有它的评估盲区。
误区答案相关性得分低了,我第一反应就是这个大模型太笨了,换个更强的模型就好了。换完之后发现分还是上不去,很困惑。
正解答案相关性低可能有三类原因:①检索到的上下文确实包含了正确答案,但模型没有提炼出来(Prompt 指令不明确);②检索到的上下文本身就不完整,模型想答也答不好(此时要回溯上下文相关性);③用户问题本身有歧义,需要多轮澄清。所以答案相关性低不等于“模型笨”,必须先排除检索和意图理解的干扰,再落到模型能力上。
为何常见:因为生成模型是系统的“最终出口”,出了问题人们首先归咎于出口。就像餐厅菜不好吃,可能是食材差、厨师手艺差、也可能是点菜单写错了——不能一上来就换厨师。
面试题
Q1. RAG 评估中,上下文相关性(Contextual Relevance)主要衡量的是什么?
- A.生成内容是否忠于检索到的资料
- B.检索出来的资料与用户问题的匹配度← 正确答案
- C.最终回答是否命中用户的真实需求
- D.模型生成速度是否满足实时性
答案:B。上下文相关性对应的是“查资料”环节,衡量检索器返回的文档片段与用户问题的相关程度。A 是忠实度的职责,C 是答案相关性的职责,D 是性能指标,与三个核心质量要素无关。
Q2. 忠实度(Faithfulness)评估采用的核心策略是?
- A.将回答与用户问题做关键词重叠度比较
- B.反向提问法生成可能的问题再做相似度比对
- C.把回答拆成声明逐条与上下文比对支持性← 正确答案
- D.用 BLEU 分数与参考答案做字面匹配
答案:C。忠实度评估的核心是“声明级拆解”——把生成回答拆成独立的声明(Claim),再逐条判定是否被上下文支持。B 是答案相关性评估中的方法,A 和 D 是浅层文本匹配,无法捕捉“编造信息”这类语义问题。
Q3. 关于 RAG 三要素的定位诊断,以下说法正确的有?
- A.上下文相关性低应优先排查检索链路← 正确答案
- B.忠实度低应优先排查生成链路的提示词约束← 正确答案
- C.答案相关性低且前两项正常应排查意图理解← 正确答案
- D.忠实度低时应优先调整向量检索的 top-k 参数
答案:ABC。A 和 B 是对应环节的标准排查方向,C 是答案相关性低的典型定位。D 错误——忠实度衡量生成是否忠于上下文,与检索的 top-k 参数无关,那是上下文相关性环节的事情。
Q4. “上下文相关性和忠实度都高,但答案相关性低”这组组合通常意味着?
- A.检索器返回了大量无关文档
- B.模型在生成时大量编造内容
- C.系统没有准确理解和响应用户需求← 正确答案
- D.知识库数据本身存在严重噪音
答案:C。资料查得准(上下文相关性高)、引用也忠实(忠实度高),但用户不满意,说明问题在“最后一公里”——对用户意图的理解和响应不到位,属于交互链路或意图理解问题,而不是检索或生成链路。
Q5. RAGAS 框架中,答案相关性评估的“反向提问法”是指?
- A.让模型先回答再反问用户以确认满意度
- B.由模型根据答案反推可能的问题再与真实问题比对← 正确答案
- C.将参考答案反向切分后与生成回答对齐
- D.让评估模型回答一套反向设计的测试题
答案:B。反向提问法让评估 LLM 观察生成答案,反推“什么用户问题会导致这个答案”,然后计算反推问题与真实问题的语义相似度。相似度高说明答案没有跑题。A、C、D 描述的都是其他类型流程。
Q6. 在实际搭建 RAG 评估体系时,合理做法包括哪些?
- A.使用 LLM 裁判对三要素批量打分← 正确答案
- B.定期用人工抽样校准 LLM 裁判的可信度← 正确答案
- C.只依赖 LLM 裁判打分,不需要人工干预
- D.用规则指标做回归测试和快速兜底← 正确答案
答案:ABD。A 是主流的离线评估方式;B 是必要的校准环节——LLM 裁判本身可能有偏差;D 合理,规则指标便宜稳定,适合快速回归。C 错误,完全依赖 LLM 裁判而不做人工校准会导致评估结果失真。
Q7. 某团队在评估时发现,相关上下文确实包含所需信息,但答案相关性得分偏低。最可能的原因是?
- A.检索的 top-k 参数设置过小
- B.模型在回答时没有严格依据上下文生成
- C.提示词未显式要求在回答中覆盖问题子方面← 正确答案
- D.Embedding 模型与领域数据不匹配
答案:C。上下文包含所需信息说明检索没问题,此时答案相关性低通常是因为模型“没被指令引导去完整回答”。C 正确。A 和 D 影响的是上下文相关性环节;B 影响忠实度而不是答案相关性。
Q8. 三层质量把关的比喻中,“主管试菜”对应 RAG 评估的哪个环节?
- A.规则指标自动检测
- B.LLM 裁判离线打分← 正确答案
- C.人工抽样校验兜底
- D.用户在线反馈收集
答案:B。比喻中“厨师自查”对应规则指标快速自测,“主管试菜”对应 LLM 裁判综合评判,“老板抽查”对应人工抽样兜底校准。B 正确。A 对应的是更低成本的自动规则检测,C 对应人工抽样。
Q9. 关于忠实度指标的局限,以下分析正确的有哪些?
- A.忠实度得分高不代表回答一定正确或有用← 正确答案
- B.上下文本身信息有误时,忠实度高反而意味着“将错就错”← 正确答案
- C.忠实度可以独立证明系统的可信赖性
- D.声明级拆解的粒度会影响忠實度评估的可靠性← 正确答案
答案:ABD。A 正确——不编造不等于答得好。B 正确——忠实度只保证“忠于上下文”,不保证上下文本身真实,这需要结合上下文相关性甚至数据质量评估。C 错误——可信赖性是多维度的,忠实度只是其中一面。D 正确——声明的拆分粒度不一致,判别结果会有噪声。
Q10. 线上监控时发现三要素整体下滑,其中答案相关性下降幅度最大、忠实度下降中等、上下文相关性基本不变。最优先排查的方向是?
- A.知识库文档是否更新或删减导致检索变化
- B.模型版本是否变更或生成参数是否被调整
- C.embedding 模型是否被替换成新版本
- D.测试集是否引入大量 OOD 新类型问题← 正确答案
答案:D。上下文相关性不变说明检索质量稳定,但答案相关性和忠实度同步下滑,说明“生成链路”或“测试集构成”发生了变化。模型版本变更会导致两项生成侧指标同步波动,这是最常见原因。A 和 C 主要影响检索侧(上下文相关性)。D 是评估集问题,虽然可能,但线上模型版本变更的概率更高、优先级应先排查。