想象你是一家高端私房菜馆的老板。后厨里藏着一万本菜谱,配菜师傅按顾客点单一本本翻找食材,掌勺大厨把食材炒成菜端上桌。以前你靠顾客骂街才知道菜出了问题,可骂街来得太晚也太模糊——你分不清是食材没找对,还是火候没把握好。于是你决定建一套菜品质量检查体系:进货时验食材新不新鲜,出锅时尝咸淡看摆盘,上桌后观察顾客动没动筷子,月底再算翻台率和回头客。这套体系怎么搭、分哪几层、用哪些工具、指标怎么定,就是今天要聊的事。其实大模型问答系统就像这家餐厅:答案好不好不是碰运气,而是靠一套能分层定位问题、能持续改进的质量体系来保证。

岗位关联

对 AI 从业者:一个能分层定位问题、与业务指标对齐、可持续迭代的 RAG 评估体系,是你把系统从“能跑”推向“可信、可用、可优化”的核心能力。

目录
  1. 可视化演示
  2. 评估体系总览
  3. 检索质量评估
  4. 生成质量评估
  5. RAGAS框架
  6. TruLens框架
  7. 端到端评测
  8. 业务闭环优化
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示搭建完整RAG评估体系该关注的核心机制,通过概览/流程/对比/趋势四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

搭建完整RAG评估体系该关注:RAG评 RAG评估体系的分层架构与指标 检索质量评估层与RAGAS指标 核心机制可视化 搭建完整RAG评估体系该关注整体架构与关键组件

评估体系总览

私房菜馆老板一开始请了个品控顾问,顾问月底只给一个总分。老板发现一个总分远远不够:菜咸了、上菜慢了、食材不新鲜,三个问题归因完全不同。于是顾问给老板画了一张四层结构图:最底层是食材(检索),往上是烹饪(生成),再往上是整桌上菜流程(端到端),最顶层是经营口碑(业务)。

RAG 系统也一样。一句话回答“效果好不好”没有操作意义,你必须能回答“哪一环出了问题”。这就是分层评估的初衷:把 RAG 链路切成检索、生成、端到端、业务四层,每层用独立指标观察。每层分数只反映该层健康度,综合分则加权汇总,便于量化整体并向上汇报。

在各层归一化得分的基础上,综合分用加权求和得到。权重由业务阶段决定:冷启动阶段检索权重高,优先解决“答非所问”;成熟阶段业务权重高,追求转化与口碑。

就像品控顾问那份四层检查表,总分能告诉老板“这月整体好不好”,分层明细能告诉老板“该换配菜师傅还是该换炒锅”。评估体系的价值,正在于这份“可拆解”。

Scoreoverall=∑i=14wi⋅SiScore_{overall} = \displaystyle\sum_{i=1}^{4} w_i \cdot S_i
综合分 = 四层得分各自加权后相加,权重由“当前最该解决哪层问题”决定,但四个权重之和必须等于 1。
  1. 四层得分S1 到 S4 分别代表检索、生成、端到端、业务四层归一化后的得分,取值范围 0 到 1,互相独立不干扰。
    Si∈[0,1],i=1,2,3,4S_i \in [0, 1], \quad i = 1, 2, 3, 4
  2. 加权求和每层得分乘上对应权重再累加,权重越大表示该层对整体体验的影响越大。
    Scoreoverall=w1S1+w2S2+w3S3+w4S4Score_{overall} = w_1 S_1 + w_2 S_2 + w_3 S_3 + w_4 S_4
  3. 权重归一四个权重相加等于 1,保证综合分与单层得分在同一个量纲,便于横向对比版本好坏。
    ∑i=14wi=1\sum_{i=1}^{4} w_i = 1

检索质量评估

配菜师傅的活儿是找食材。大厨手艺再好,配菜师傅把“排骨”找成了“五花肉”,这盘菜注定翻车。评价配菜师傅有两个问题:该用的食材找到没有?找到的顺序对不对?前者是“命中率”,后者是“排序质量”。

检索质量是 RAG 的地基。检索结果决定了大模型“看得见什么”,看不见的内容再聪明也答不出来。常用指标:Hit@k 看标准文档是否进入前 k 个召回;MRR 看标准文档排在第几位;再配合上下文相关性看召回内容是否真的切题。注意命中率高但 MRR 低的情况:文档在却排得靠后,说明排序需要优化。

MRR(Mean Reciprocal Rank,平均倒数排名)对“排第几”非常敏感:排第一得 1 分,排第二得 0.5,排第三得 0.33。相比 Hit@k 的“有没有”,MRR 回答的是“有多靠前”。

配菜师傅的月考核表就该这么记:食材找到了记 1 分,但真能“优先捞出需要的食材、把不相关的往后放”,才是让大厨最省心的配菜师傅。MRR 鼓励的正是这种“把正确的东西排前面”的能力。

MRR=1∣Q∣∑i=1∣Q∣1rankiMRR = \displaystyle\frac{1}{|Q|} \sum_{i=1}^{|Q|} \frac{1}{rank_i}
MRR 衡量“标准文档平均排第几合适”:排第 1 得 1 分、排第 2 得 0.5、排第 3 得 0.33,越靠前分数越高。
  1. 问题集合Q 是一组带“标准文档”标注的评测问题,i 遍历其中的每一个问题。
    Q={q1,q2,…,q∣Q∣}Q = \{q_1, q_2, \dots, q_{|Q|}\}
  2. 倒数排名rank_i 是第 i 个问题中标准文档在检索结果里的排名位置,取倒数得到该问题的贡献分。
    1ranki=1标准文档的排名位置\frac{1}{rank_i} = \frac{1}{\text{标准文档的排名位置}}
  3. 取平均把所有问题的贡献分求和后除以问题总数,得到 MRR。
    1∣Q∣∑i=1∣Q∣1ranki\frac{1}{|Q|} \sum_{i=1}^{|Q|} \frac{1}{rank_i}

生成质量评估

大厨的菜端上桌,顾客最怕什么?不是口味淡,而是“货不对板”——点的是红烧肉,上来一盘水煮鱼。生成回答也一样,最怕不忠实:模型不照着检索到的材料写,自己脑补出材料里没有的内容,这就是幻觉。

生成质量评估有两个核心维度:忠实性(Faithfulness)和答案相关性(Answer Relevance)。忠实性问“回答是不是严格基于检索上下文,有没有编造”;答案相关性问“回答有没有真正回应问题,有没有跑题”。此外还要检查有害内容、信息量等。RAGAS 和 TruLens 都提供基于 LLM 裁判的自动评分。

忠实性的计算思路很直观:把回答拆成若干条论断,逐条去检索上下文中找支撑,有支撑的论断占比就是忠实性。占比越高,说明回答越“脚踏实地”。

这就是“每道菜都要能说清原料来源”。忠实性高的回答,就像每一筷子夹起来都有据可查;忠实性低,顾客迟早会发现“这盘菜里有没见过的神秘食材”。

Faithfulness=NsupportedNtotalFaithfulness = \displaystyle\frac{N_{supported}}{N_{total}}
忠实性 = 回答中“能从检索上下文找到依据”的论断占比,越接近 1 越不容易产生幻觉。
  1. 拆解论断把生成答案拆成 n 条独立论断(claim),每条表示一个事实断言。
    Answer={claim1,claim2,…,claimn}Answer = \{claim_1, claim_2, \dots, claim_n\}
  2. 逐条找底稿对每条论断,让 LLM 判断它能否由检索上下文推出,能推出的就计入 N_supported。
    Nsupported=∑j=1n1[claimj supported by context]N_{supported} = \displaystyle\sum_{j=1}^{n} \mathbb{1}[claim_j \text{ supported by context}]
  3. 算占比被支撑的论断数除以论断总数,得到 0 到 1 的忠实性分数。
    NsupportedNtotal∈[0,1]\frac{N_{supported}}{N_{total}} \in [0, 1]

RAGAS框架

老板想请一批试吃员来打分,但雇人太贵、标准还不统一。于是老板雇了一家叫 RAGAS 的第三方质检机构:机构自己出题、自己判卷、出具标准化报告。最妙的是,这份考卷是机构用 AI 自动生成的——从菜谱里挑要点反推出考题,不用你一道道人肉编写。

RAGAS(Retrieval Augmented Generation Assessment)是一套开源评估框架,核心思路是“无标注自治评测”:先从知识库文档中用 LLM 合成评测问题集,再让 LLM 当裁判给 RAG 系统打分。它的指标覆盖链路两端:上下文相关性、上下文精确率/召回率属于检索侧;忠实性、答案相关性属于生成侧。

答案相关性的算法很妙:让大模型从最终答案反推“它回答了什么问题”,再把这些反推问题和原始问题的嵌入向量做余弦相似度,相似度越高说明答案越切题。答案不是越长越好,而是越“正中靶心”越好。

RAGAS 就像那位“神秘顾客机构”:不打扰厨房、自动出卷、按统一标准打分,还能一次铺到整条链路。有了它,老板不用再靠“我觉得今天的菜不错”这种模糊感觉管理质量。

AnswerRelevance=1N∑i=1Ncos⁡(eq,egeni)AnswerRelevance = \displaystyle\frac{1}{N} \sum_{i=1}^{N} \cos(\mathbf{e}_{q}, \mathbf{e}_{gen_i})
答案相关性 = 用“从答案反推的问题”和“原始问题”的语义相似度,来衡量回答是否切题。
  1. 反推问题让大模型从最终答案反推 N 个“它可能回答的问题”,覆盖答案的各个侧面。
    geni∼LLM(answer),i=1,2,…,Ngen_i \sim LLM(answer), \quad i = 1, 2, \dots, N
  2. 嵌入化把原始问题 q 与每个反推问题 gen_i 分别映射成语义向量。
    eq=Embed(q),egeni=Embed(geni)\mathbf{e}_q = Embed(q), \quad \mathbf{e}_{gen_i} = Embed(gen_i)
  3. 余弦相似度取平均逐对计算向量夹角余弦后取平均,分数越高表示答案越贴合问题。
    cos⁡(eq,egeni)=eq⋅egeni∥eq∥⋅∥egeni∥\cos(\mathbf{e}_q, \mathbf{e}_{gen_i}) = \frac{\mathbf{e}_q \cdot \mathbf{e}_{gen_i}}{\|\mathbf{e}_q\| \cdot \|\mathbf{e}_{gen_i}\|}

TruLens框架

RAGAS 管“考”,TruLens 管“考加监控”。TruLens 更像在厨房里装了联网摄像头和电子台秤:每道菜从配菜到下锅到出锅全程留痕(链路追踪),同时内置三台自动化检测仪(反馈函数),随时量“这道菜有没有偏题、有没有按菜谱来”。

TruLens 是另一个开源评估与监控框架,它的招牌是 RAG 三元组(RAG Triad):上下文相关性(Context Relevance,检索到的上下文与问题是否相关)、接地性(Groundedness,回答是否扎根于上下文,等价于忠实性)、答案相关性(Answer Relevance,回答是否回应问题)。三个指标恰好对应 RAG 的三个命门:检索、生成、整体。

TruLens 使用反馈函数实现自动化评分:你可以把一段查询、上下文和回答传给一个打分函数,它调用 LLM 或嵌入相似度,返回 0 到 1 的分数。同时 TruLens 会记录每次请求的完整链路,哪个环节分数低,直接在记录里高亮,归因非常直观。

有了 TruLens 的“摄像头”,老板可以回放每一道有问题的菜:到底是配菜错、还是火候错,一目了然。评估不再是“事后诸葛亮”,而是“全程有账可查”。

Groundedness=1N∑i=1N1[sentencei grounded in context]Groundedness = \displaystyle\frac{1}{N} \sum_{i=1}^{N} \mathbb{1}[sentence_i \text{ grounded in context}]
Groundedness = 回答中“能在上下文中找到底稿”的句子占比,是 TruLens 版的忠实性指标。
  1. 切分句子把生成回答按句子边界切分为 N 个独立句子。
    Answer={sentence1,sentence2,…,sentenceN}Answer = \{sentence_1, sentence_2, \dots, sentence_N\}
  2. 逐句判定对每个句子向 LLM 提问:该句是否能在检索上下文中找到支撑?找到记 1,没找到记 0。
    1[sentencei is grounded]∈{0,1}\mathbb{1}[sentence_i \text{ is grounded}] \in \{0, 1\}
  3. 取均值所有句子的判定值取平均,得到“有底稿”句子的占比。
    1N∑i=1N1[sentencei is grounded in context]\frac{1}{N} \sum_{i=1}^{N} \mathbb{1}[sentence_i \text{ is grounded in context}]

端到端评测

质检分两种场景:赛场和实战场。赛场上,请一批专业试吃员(评测集)关起门来按标准打分,出分快、可比性强,这是离线评测;实战场里开门营业,盯顾客真实反应——上菜速度、退菜率、回头客比例,这是在线监控。想验证一道新菜是否真的更好,就同一晚分两桌做 A/B 实验。

离线评测用“黄金测试集”(标注好标准文档与理想回答的问题集)跑一遍完整链路,得到各层分数,优点是快、可控、可回归。在线监控则对真实流量持续统计:回答采纳率、用户点踩率、召回延迟等,防止“考场满分、实战翻车”。A/B 测试把新旧版本分别暴露给两组真实用户,用统计学差异判断新版是否真的更好。

衡量 A/B 实验效果常用相对提升率(Lift):把新旧版本的核心指标做差,再除以基线,得到百分比提升。注意要让两个版本同时同分布地跑,排除时间因素干扰。

周末营业结束,老板把“试吃员评分”和“实战台帐”摆在一起看:赛场证明新菜本身不难吃,实战证明顾客确实更爱点,A/B 又证明不是运气——三个证据合在一起,才敢把新菜正式写进菜单。

Lift=ratenew−ratebaseratebase×100%Lift = \displaystyle\frac{rate_{new} - rate_{base}}{rate_{base}} \times 100\%
Lift = 新版指标相对基线的提升百分比,用于判断 A/B 实验是否真的带来改进。
  1. 统一口径rate 是 A/B 两个版本共同的核心比率指标,比如“回答采纳率”或“差评率”,定义必须一致。
    ratebase,ratenewrate_{base}, \quad rate_{new}
  2. 计算差值新版比率减去基线比率得到绝对变化量,正数表示提升、负数表示回退。
    Δ=ratenew−ratebase\Delta = rate_{new} - rate_{base}
  3. 归一化放大用差值除以基线再乘 100%,得到相对提升百分比,方便与不同指标横向对比。
    ratenew−ratebaseratebase×100%\frac{rate_{new} - rate_{base}}{rate_{base}} \times 100\%

业务闭环优化

餐厅最终目标是赚钱和口碑。技术指标再漂亮,翻台率上不去、回头客变少,老板也得着急。所以品控体系不能停在“打分”,要形成闭环:每月把差评倒推回具体环节——是食材不新鲜、火候不对还是上菜太慢——然后针对性改配方、换供应商、调流程,下个月再复测。

评估体系的终极形态是“反馈闭环”:把线上失败案例收集回来,通过 TruLens 式链路追踪归因到具体环节,针对检索或生成做优化,离线复测,上线 A/B 验证,再回到收集,循环往复。评估指标还要与业务指标对齐,比如把“答案采纳率”“净推荐值 NPS”纳入考虑,避免单纯刷技术分数。

业务层常用 NPS(Net Promoter Score,净推荐值)衡量用户对系统的真实态度:让用户按推荐意愿打 0~10 分,9 分以上是推荐者,6 分以下是贬损者,两者占比差就是 NPS。NPS 不是技术指标,但它能捕捉“机器分数看着高、用户就是不买账”的偏差。

从“顾客差评”到“新菜改进”再到“复测验证”,闭环让品控从一次性考试变成每天都在进行的经营习惯。这正是 RAG 评估体系的终极价值:它不是一个报告,而是一套让系统持续变好的引擎。

NPS=Npromoters−NdetractorsNsurvey×100%NPS = \displaystyle\frac{N_{promoters} - N_{detractors}}{N_{survey}} \times 100\%
NPS = 推荐者人数与贬损者人数之差占总调查人数的比例,是业务层的“口碑温度计”。
  1. 用户打分向用户发放 0 到 10 分的“是否愿意推荐本系统”问卷,样本总数为 N_survey。
    score∈{0,1,…,10}score \in \{0, 1, \dots, 10\}
  2. 分群计数9 分及以上计入推荐者,6 分及以下计入贬损者,7、8 分为中立不参与计算。
    Npromoters=#{score≥9},Ndetractors=#{score≤6}N_{promoters} = \#\{score \geq 9\}, \quad N_{detractors} = \#\{score \leq 6\}
  3. 算占比差推荐者减贬损者的人数差,除以总调查人数再乘 100%,得到净推荐值。
    Npromoters−NdetractorsNsurvey×100%\frac{N_{promoters} - N_{detractors}}{N_{survey}} \times 100\%

AI 应用场景

智能客服的“答非所问”定位

阶段:离线评测与分层归因

解决的问题:传统做法是运营人员凭用户投诉人工猜测问题出在哪,效率低且容易误判。用 RAGAS 分层评测,把“检索不佳”和“生成不佳”分开定位,先修地基再修楼。

具体案例:某金融智能客服上线后投诉集中在“答非所问”。团队用 RAGAS 在 2000 条真实 query 上评测,发现忠实性 0.9、答案相关性 0.72、上下文相关性仅 0.58,问题锁定在检索层。优化混合检索并调整文档切分策略后,上下文相关性升到 0.85,投诉量下降 40%。

知识库扩容后的在线守护

阶段:在线监控与告警

解决的问题:文档库每周更新,靠人工抽查防回归不现实。用 TruLens 反馈函数对线上请求自动打分,RAG 三元组分数跌破阈值就触发告警,在用户感知之前发现问题。

具体案例:某法律问答系统扩容 5000 份新法规后,TruLens 监控发现接地性从 0.93 跌到 0.78,链路记录显示模型引用新文档时严重断章取义。回滚文档预处理并修正切分策略后分数恢复,全程没有等待用户投诉。

从技术指标到业务增长的闭环

阶段:业务指标对齐与持续优化

解决的问题:技术分数上涨但业务转化没变化,说明指标与业务脱节。通过把业务差评回流成评测用例,让评估体系始终对准用户真实需求。

具体案例:某电商导购 RAG 的 NPS 连续两月下滑。团队把差评案例加入黄金测试集,离线复测发现答案相关性是短板,定位到“回答过于模板化”。调整提示词并引入商品评论摘要后,NPS 回升 12 个点。

Python 演示

python65 行
"""迷你 RAG 评估演示: Hit@k, MRR 与忠实性(玩具版).""" KB = {    "python_basics": "Python is a scripting language with OOP support.",    "rag_retrieval": "RAG combines retrieval and generation for answers.",    "mrr_quality": "MRR is the mean reciprocal rank of the golden doc.",} QUERIES = [    ("python basics syntax", "python_basics"),    ("what is rag retrieval", "rag_retrieval"),    ("measure retrieval quality", "mrr_quality"),]  def _score(query, doc_id):    """玩具评分: 查询与文档 id 的词面重合度."""    tokens = query.lower().split()    return sum(1 for t in tokens if t in doc_id)  def retrieve(query, k=2):    """玩具检索器: 按词面重合排序返回前 k 个文档 id."""    ranked = sorted(KB.keys(), key=lambda key: _score(query, key), reverse=True)    return ranked[:k]  def hit_rate(k=2):    """命中率: 标准文档进入 top-k 的查询占比."""    hits = sum(1 for q, gold in QUERIES if gold in retrieve(q, k))    return hits / len(QUERIES)  def mrr(k=3):    """平均倒数排名: 鼓励把标准文档排得更靠前."""    total = 0.0    for q, gold in QUERIES:        ranked = retrieve(q, k)        rank = ranked.index(gold) + 1 if gold in ranked else 0        total += 1.0 / rank if rank else 0.0    return total / len(QUERIES)  def faithfulness(answer_claims, context):    """玩具忠实性: 论断全部关键词能在上下文中找到支撑才算有据可查."""    supported = 0    for claim in answer_claims:        if all(token in context for token in claim.split()):            supported += 1    return supported / len(answer_claims)  def main():    print("=== RAG layered evaluation demo ===")    for q, _ in QUERIES:        print("query:", q, "-> top2:", retrieve(q, 2))    print("Hit@2 =", round(hit_rate(), 3))    print("MRR   =", round(mrr(), 3))    context = KB["rag_retrieval"]    claims = ["RAG combines retrieval generation", "RAG will replace humans"]    print("Faithfulness =", round(faithfulness(claims, context), 3))  if __name__ == "__main__":    main()
目的:用玩具版检索器演示 RAG 分层评估中的命中率、MRR 与忠实性计算,帮助读者直观理解评估公式如何落地成代码。
  1. ranked = sorted(KB.keys(), key=lambda key: _score(query, key), reverse=True)模拟检索器按“查询与文档标题的词面重合度”打分并排序,体现“相关度排序”的思想。
  2. hits = sum(1 for q, gold in QUERIES if gold in retrieve(q, k))统计标准文档进入 top-k 的查询数量,除以总数就是命中率。
  3. rank = ranked.index(gold) + 1 if gold in ranked else 0找到标准文档在结果中的排名;没被召回记 0,这是命中率与 MRR 的分水岭。
  4. total += 1.0 / rank if rank else 0.0按倒数排名累加贡献,排第 1 得 1 分、第 2 得 0.5 分,体现 MRR 对排序位置的敏感。
  5. if all(token in context for token in claim.split())逐条论断检查关键词是否都能在上下文中找到支撑,是忠实性计算的玩具版实现。

常见误区

误区“RAGAS 各项分数都刷到 0.9 以上了,说明我们的 RAG 系统已经很优秀,可以放心上线。”

正解技术指标高只代表“机器视角”的质量好,不等于用户真正买账。RAGAS/TruLens 用 LLM 裁判打分,存在偏好更长回答等偏差;如果测试问题与真实用户提问分布不一致,分数再高也是“考场状元、实战失利”。正确做法是让技术指标与在线业务指标(采纳率、NPS)互相对照,两个视角都健康才算真的好。

为何常见:自动化评测数字客观、报告好看,人容易把“数字高”直接等同于“效果好”,忽略了指标本身的局限。

误区“我们只需要关心忠实性,答案不胡说八道就够了,其他指标无所谓。”

正解RAG 是一条“检索→生成”链路,单点指标无法定位问题。忠实性高但答案跑题(答案相关性低)照样没用;检索环节全挂了(上下文相关性低)时忠实性反而可能虚高,因为模型没东西可编。必须分层评估,四层指标一起看才能归因——就像餐厅只查食材不查火候,顾客差评来了照样一头雾水。

为何常见:一个指标好量化、好跟进,人本能地回避搭建整套指标体系的高成本。

误区“黄金测试集全部通过,线上应该也一样稳定吧?”

正解离线测试集是“赛场”,线上是“实战场”。真实查询分布更长尾、更新更快,离线集永远无法完全覆盖。线上还要监控延迟、点踩率、上下文动态变化,并通过 A/B 测试才能确认“赛场成绩”能迁移到“战场”。离线达标只是入场券,不是免检证书。

为何常见:离线评测可以反复跑、数字可复现,给人“一切尽在掌握”的确定感;而线上充满了不确定性,让人本能地想回避。

误区“RAGAS/TruLens 都是大模型打的分,机器最客观,不需要再人工复核。”

正解LLM 裁判也有已知偏差:偏爱更长更详细的回答、对数字和否定词敏感、不同模型打分尺度不一致。正确做法是把 LLM 打分当作“初筛”,定期抽样人工复核校准,最好用一小批人工标注样本做一致性检验。就像试吃员的打分也要定期和顾客真实反馈对表。

为何常见:自动化评测太省人力,一旦用顺手,就抛掉了昂贵但必要的人工抽样环节。

误区“上线前把评估体系跑一遍、出个报告,质量工作就算完成了。”

正解知识库在变、用户查询在变、模型在升级,评估必须持续。正确做法是建立反馈闭环:定期回流 bad case、维护测试集、离线复测、在线监控、A/B 验证,让评估跟着系统一起演进。测试集一旦冻结,就会和真实世界逐渐脱节,分数变成自欺欺人。

为何常见:传统软件开发习惯“测试通过即验收”,而 RAG 是一个数据与模型都在持续漂移的动态系统,静态评估天然不适用。

面试题

Q1. 搭建 RAG 评估体系时,第一步通常应该做什么?

单选题 · easy

  • A.明确评估分层目标← 正确答案
  • B.直接看线上效果
  • C.只优化生成模型
  • D.放弃所有评测工作

答案:A。先定“评估什么”,才能谈“怎么评估”。把 RAG 链路拆成分层目标,再选择合适的指标;就像餐厅先确定质检项,再雇试吃员。跳过分层直接看线上效果,遇到问题将无法归因。

Q2. 检索质量中的命中率(Hit@k)衡量的是?

单选题 · easy

  • A.答案是否忠实于文档
  • B.标准文档是否被召回← 正确答案
  • C.用户点击率的高低
  • D.模型生成速度的快慢

答案:B。命中率只看“标准文档有没有进前 k 个召回”,不管排序、不管生成质量。它回答的是“配菜师傅有没有把该用的食材捞出来”;捞出来排得好不好,要交给 MRR 来衡量。

Q3. 某问题的标准文档在检索结果中排第 2 位,该问题对 MRR 的贡献是?

单选题 · mid

  • A.0.5← 正确答案
  • B.1.0
  • C.2.0
  • D.0.25

答案:A。MRR 取标准文档命中位置的倒数:排第 1 得 1,排第 2 得 1/2=0.5。选项 B、C 把倒数当成原值或倒数计算错误,D 把第二位误当成第四位。最终再对所有问题取平均得到 MRR。

Q4. 忠实性(Faithfulness)衡量的是生成回答的哪一方面?

单选题 · easy

  • A.回答忠于上下文← 正确答案
  • B.检索结果覆盖率
  • C.模型推理速度快慢
  • D.用户交互是否顺畅

答案:A。忠实性衡量回答中的论断能否在检索上下文中找到依据,用来发现大模型的“脑补”幻觉。检索覆盖率属于检索质量,推理速度和交互体验属于工程与体验范畴,都不是忠实性的考察对象。

Q5. RAGAS 如何自动构建无标注评测集?

单选题 · mid

  • A.人工逐条编写
  • B.从文档反推生成← 正确答案
  • C.从互联网抓取
  • D.随机词条拼接

答案:B。RAGAS 的特色是让 LLM 从知识库文档中提取要点并反推评测问题,自动构建评测集,省去人工标注。人工编写成本太高,抓取和随机拼接无法保证问题与知识库相关且质量稳定。

Q6. 一个完整的分层评估体系通常包含哪些层面?

多选题 · mid

  • A.生成质量层面← 正确答案
  • B.端到端效果层面← 正确答案
  • C.界面美观度层面
  • D.检索质量层面← 正确答案

答案:ABD。四层模型是检索质量、生成质量、端到端效果、业务指标,每层对应不同故障模式。界面美观度不在 RAG 评估范围内——就像餐厅品控查食材、烹饪、上菜流程和口碑,不看装修色调。

Q7. TruLens 的反馈函数(Feedback Function)能做什么?

单选题 · mid

  • A.自动为环节打分← 正确答案
  • B.直接替换知识库
  • C.压缩所有向量
  • D.渲染前端页面

答案:A。反馈函数是 TruLens 的自动化评价器,接收查询、上下文、回答等组件,调用 LLM 或规则返回 0~1 分,可挂到链路任意环节,相当于厨房里自动测温的电子秤。它不负责替换知识库、压缩向量或渲染页面。

Q8. 关于 TruLens RAG 三元组,下列说法正确的有?

多选题 · hard

  • A.检查回答是否跑题← 正确答案
  • B.检查部署是否稳定
  • C.检查上下文是否相关← 正确答案
  • D.检查回答是否接地← 正确答案

答案:ACD。RAG 三元组 = 上下文相关性(选项 C)+ 接地性(选项 D)+ 答案相关性(选项 A),三个指标覆盖“检索到生成”的命门。部署稳定性属于工程运维指标,不在三元组考察范围内。

Q9. 一个可持续的评估反馈闭环包含哪些环节?

多选题 · hard

  • A.针对性迭代优化← 正确答案
  • B.永久冻结测试集
  • C.对失败案例归因← 正确答案
  • D.优化后重新评测← 正确答案

答案:ACD。反馈闭环 = 收集 bad case → 归因(C)→ 优化(A)→ 复测(D)→ 上线验证,循环往复。测试集冻结会随数据漂移逐渐失效,必须持续回流维护,所以 B 是错误做法。

Q10. 在线 A/B 测试相对离线评测的主要优势是?

单选题 · mid

  • A.反映真实用户分布← 正确答案
  • B.测试成本完全相同
  • C.无需业务指标支持
  • D.可以替代离线评测

答案:A。A/B 在真实流量上分桶对照,能看到真实用户分布下的行为变化,这是离线黄金集“考场”模拟不出来的。A/B 的成本更高、需要业务指标支撑,并且补充而非取代离线评测。