0)评测准备:数据与对象
一条评测样本通常包含:
• question:用户问题
• contexts:检索返回的前 k 个片段(c₁…c_k),每条含原文与位置信息
• answer:系统最终给出的生成答案
• ground-truth(可选):人工给的标准答案/事实句子/“应命中”的证据片段清单
有些指标必须有 ground-truth(尤其“上下文召回率/精度”),没有 GT 也能做,但要用“由答案反推的基本事实”或 LLM-judge 替代。
⸻
1)忠实度(Faithfulness / Groundedness)
目标:答案中的每个事实性断言是否都能从已检索的上下文里被支持(可被蕴含/可证),且不与之矛盾。
1.1 定义与打分
把答案拆成原子事实(claims){a_i}。对每个 a_i,在 \text{contexts} 中找是否存在一句或一组句子 S_i 支持它(逻辑“蕴含”或高相似+不矛盾)。
• 逐断言判定:
si={1若 contexts⇒ai 且无矛盾0否则
s_i=\begin{cases}
1 & \text{若 } \text{contexts} \Rightarrow a_i \text{ 且无矛盾}\\
0 & \text{否则}
\end{cases}
si={10若 contexts⇒ai 且无矛盾否则
• 忠实度:
Faithfulness=∑isi∣{ai}∣\text{Faithfulness}=\frac{\sum_i s_i}{|\{a_i\}|}Faithfulness=∣{ai}∣∑isi
• 可加入重要性权重 w_i(主事实更重):
Faithfulnessw=∑iwisi∑iwi\text{Faithfulness}_w=\frac{\sum_i w_i s_i}{\sum_i w_i}Faithfulnessw=∑iwi∑iwisi
若你没有把答案拆成断言,也可以整体判 0/1 或 0–5/0–10 级别评分(LLM-judge)。
1.2 自动化实现路径
• NLI/Entailment(推荐):把 (S, a_i) 喂给自然语言蕴含模型(如 DeBERTa/RoBERTa-MNLI),取“entail”概率>阈值即支持;若“contradiction”高则判矛盾。
• 词面/检索对齐:先从 contexts 里找与 a_i 最高相似的句子(向量相似/稀疏检索),再做 NLI。
• LLM 评审:让评审模型逐条对齐“证据句 → 断言”,输出支持/不支持/矛盾及理由。
1.3 常见坑
• 只做“重叠”而不做“蕴含”会误杀改写/同义;
• 答案中的“常识补全”如果不在 contexts,也要判不忠实(RAG 的规训);
• 忠实度高≠答案相关(可能忠实地描述了不相干的东西)。
诊断含义:忠实度低 → 多半是生成环节越界(hallucination)或检索证据不够(见 §4 召回)。
⸻
2)答案相关性(Answer Relevance)
目标:答案是否直接、恰当地解决了问题(question)。
2.1 定义与打分
三种常见打分法:
1. LLM-judge(最实用):给评审模型一个清晰 rubric(是否回答了、是否跑题、是否多余/有害信息),打 0–5 分或 0/1。
2. 与参考答案对齐:若有 ground-truth answer,用 语义相似/F1/ROUGE/BLEU 或 NLI(“A 是否蕴含 GT?”)评估。
3. QAG(问答一致性):把 GT 里的关键信息生成若干子问,检查答案能否正确回应这些子问(yes/no/无法判断),汇总得分。
建议输出两维:相关性(是否答到点)+ 完整性(是否漏答关键点)。
2.2 常见坑
• 高相似≠真正回答(特别是问法复杂/多子意图);
• 只评“相关”不评“正确/忠实”会掩盖一本正经地胡说。
诊断含义:答案相关性低 → 重写 prompt、改指令、或把检索结果摘要成更聚焦的子上下文(如 DSL 选择重要段落再喂给 LLM)。
⸻
3)上下文精度(Context Precision / Ranking Quality)
目标:检索返回的 Top-k 里,相关的证据是否被排在前面(排序质量)。
3.1 定义与指标选择
先要有每个返回片段 c_j 的相关性标签 rel(c_j)\in{0,1,2…}(与 ground-truth 事实/证据或由答案派生的断言对齐得到)。
常用排序指标:
• Precision@k:前 k 条里相关的比例。
P@k=∑j≤k1[rel(cj)>0]k\mathrm{P}@k=\frac{\sum_{j\le k}\mathbb{1}[rel(c_j)>0]}{k}P@k=k∑j≤k1[rel(cj)>0]
• MRR@k:第一个相关结果的倒数排名。
MRR@k=1N∑1min(rank of 1st relevant,k)\mathrm{MRR}@k=\frac{1}{N}\sum \frac{1}{\min(\text{rank of 1st relevant},k)}MRR@k=N1∑min(rank of 1st relevant,k)1
• nDCG@k(推荐):考虑相关性的等级与位置折扣:
DCG@k=∑j=1k2rel(cj)−1log2(j+1);nDCG@k=DCG@kIDCG@k\mathrm{DCG}@k=\sum_{j=1}^{k}\frac{2^{rel(c_j)}-1}{\log_2(j+1)};\quad \mathrm{nDCG}@k=\frac{\mathrm{DCG}@k}{\mathrm{IDCG}@k}DCG@k=j=1∑klog2(j+1)2rel(cj)−1;nDCG@k=IDCG@kDCG@k
如果你想与“精度”的文字描述更贴合,也可报告 P@k 或 Avg Precision。
3.2 标注与自动化
• 基于 GT 证据:把 GT 的句子/段落与返回片段做重叠/相似/蕴含对齐,命中则 rel=1;
• 基于答案断言:抽取答案的 claims,凡能支持任一 claim 的片段记为相关。
• 等级相关性:完全支持=2,部分支持=1,不相关=0。
诊断含义:精度低 → 排序器/相似度有问题(embedding/稀疏权重/重排器),或 chunk 切分导致好证据被“稀释”。
⸻
4)上下文召回率(Context Recall / Coverage)
目标:检索到的上下文覆盖了多少 GT 事实/证据(覆盖率)。
4.1 定义与打分
令 \mathcal{G}= GT 事实集合或 GT 证据句集合,\mathcal{C}= 已检索的 Top-k 片段合集。把每个 g\in\mathcal{G} 与 \mathcal{C} 对齐(相似/蕴含/重叠命中即“覆盖”):
Recall@k=∣{ g∈G:∃c∈C, c⇒g }∣∣G∣\text{Recall}@k=\frac{|\{\,g\in\mathcal{G}: \exists c\in\mathcal{C},\ c \Rightarrow g\,\}|}{|\mathcal{G}|}Recall@k=∣G∣∣{g∈G:∃c∈C, c⇒g}∣
没有 GT 时,可用“由答案抽取的 claims”作为 \mathcal{G} 的代理(注意这会被答案质量影响)。
4.2 诊断含义
召回低 → 检索器/索引漏查(查询扩展、BM25/向量融合、跨字段、同义/改写)或 chunk 粒度/覆盖不足;这往往直接拖累忠实度与答案完整性。
⸻
5)四指标如何一起看(快速定位问题)
现象 可能问题 优先改哪里
召回低、精度高、忠实度低 找不到必要证据 检索召回(查询扩展、k↑、融合检索、chunk 优化)
召回高、精度低、忠实度低 噪声多,模型“走神” 排序/重排(nDCG@k↑)、长上下文裁剪、证据摘要
召回/精度都高、忠实度低 生成越权/指令不严 提示词与约束(只依据上下文)、答案模板/引用
忠实度高、相关性低 答了别的问题 Prompt/任务定义、意图解析、多轮澄清
相关性高、忠实度低 编得很像但无证 强化引用检查、NLI 约束、拒答策略
⸻
6)落地实现:一套可复用的评测流水线(简版)
1. 数据准备:为每条样本整理 question, contexts(top-k with ids), answer;若有 GT,再给 gt_facts / gt_citations。
2. 断言抽取(答案 → claims):句法/LLM,把复杂句拆成可检的原子命题。
3. 句子对齐:为每个 claim/gt_fact,在 contexts 里找最可能的证据句(向量相似 + BM25 混排),再用 NLI 判支持/矛盾。
4. 打分:
• 忠实度 = 支持的 claims / 全部 claims
• 答案相关性 = LLM-judge(0–5)或与 GT 的 NLI/相似度
• 上下文精度 = nDCG@k / P@k(相关性来自支持 claims 或命中 GT)
• 上下文召回 = 被覆盖的 GT 事实 / 全部 GT 事实
5. 报告:按数据集/意图类型/长度分桶统计,画分布 + 置信区间;保存对齐证据与判定理由(方便误差分析)。
没有 GT 时:上下文精度/召回可用“答案断言”为 proxy;但要注明“参考答案缺失”的不确定性。
⸻
7)评分刻度与阈值(参考)
• 忠实度:≥0.9 优,0.75–0.9 可用,<0.75 需治理。
• 答案相关性(0–5):≥4 佳,≤3 需改(视业务)。
• nDCG@k:≥0.85 排序较稳,<0.7 排序需优化。
• Recall@k:≥0.9 适合高可靠场景;若代价过高,可用 k 小一点+重排+证据摘要权衡。
⸻
8)常见工程细节
• 中文切分统一(字/词),英文字母大小写/标点归一;
• 多参考更稳(多个 GT 答案/证据);
• 平滑与阈值记录在案(NLI/相似度阈值、k 值、chunk 长度);
• 对 LLM-judge,用角色化 rubric、多样本少样例与交叉评审降低 bias;
• 评测与训练数据隔离,避免检索器“看过题”。
327

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



