什么是 上下文精确率(Context Precision)?

上下文精确率(Context Precision)是一项对排序敏感的 RAG 评估指标,它奖励相关检索上下文排在无关上下文之前,常按各相关位置的前缀精确率平均值计算。

快速了解

规范文档官方规范

工作原理

排序敏感的计算方法

设第 1 到 K 位的二元相关性标签为 v_k,则 CP@K = sum(Precision@k * v_k) / sum(v_k),其中 Precision@k 是前 k 个结果中的相关项比例。若评估列表没有相关项,应明确约定运行口径,通常记为 0,并单独暴露「无相关结果」状态。这种类似 Average Precision 的算法不同于普通 precision@K。

相关性标签决定分数含义

标签可以来自标准证据 ID、人工判断、参考答案支持关系或 LLM 裁判,但这些协议不能混用。文档级标签可能认可一份宽泛来源,主张级标签则要求片段支持具体事实。为了让实验可比较,应记录问题集、语料与索引版本、K、相关性判定规则、裁判版本和重复分块处理策略。

必须与覆盖和生成指标联合使用

降低 top-k 可能提高精确率,却删除回答所需证据;重排序可以改善顺序,却不能补回候选召回阶段漏掉的内容;重复的相关分块若不去重,还会夸大表面价值。因此应联合分析上下文召回率、答案忠实度、任务成功率、延迟和 Token 消耗,并先检查逐问题标签再调整生产阈值。

主要特点

  • 奖励在排序列表中更早出现的相关上下文
  • 不同于 top-k 结果中相关项所占的简单比例
  • 依赖明确的相关性规则、K、语料版本和去重策略
  • 可使用标准 ID、人工标签、参考答案支持关系或校准后的裁判标签
  • 不能衡量是否召回了回答所需的全部证据
  • 可用于诊断候选召回、重排序、过滤与上下文组装

常见用途

  1. 在固定标注问题集上比较检索器或重排器
  2. 发现相关证据被噪声结果压在较低位置的问题
  3. 调优 top-k、元数据过滤、分块和查询改写
  4. 监控语料或嵌入模型变化后的检索回归
  5. 在保留必要证据覆盖的前提下减少上下文浪费

示例

loading...
Loading code...

常见问题

上下文精确率等于 precision@K 吗?

在常用的 RAGAS 定义中并不相同。普通 precision@K 是前 K 个结果中的相关项比例;上下文精确率会在每个相关结果所在位置计算前缀精确率再取平均,因此把相关证据排得更靠前会提高得分。

上下文精确率低说明什么?

它表示评估列表中没有相关证据,或相关证据排在过多无关结果之后。需要查看逐排名标签,区分候选召回弱、重排序失败、分块过宽、证据重复或相关性标注错误。

上下文精确率提高后,RAG 答案会不会反而变差?

会。减少 top-k 可能去掉噪声并提高精确率,但同时删掉某项必要事实,导致上下文召回率和答案完整性下降。生成器也可能忽略优质上下文,因此检索与生成指标必须联合判断。

上下文相关性标签应该如何生成?

任务允许时优先使用稳定的标准证据 ID;否则使用有文档记录的人工或裁判规则,判断每段上下文能否支持问题或参考主张。自动标签应通过人工样本校准,并保留原始标签供错误分析。

不同系统的上下文精确率可以直接比较吗?

只有问题集、语料版本、K、相关性定义、证据粒度、重复处理和裁判都一致时才可直接比较。缺少这些协议信息的单一分数不可移植,任一输入变化都可能让分数改变,却不代表检索真正改善。

相关术语

相关文章