上下文召回率
上下文召回率衡量成功检索到的相关文档(或信息片段)的数量。它关注的是不遗漏重要结果。更高的召回率意味着遗漏的相关文档更少。简而言之,召回率是关于不错过任何重要内容。由于它涉及不错过任何内容,因此计算上下文召回率总是需要一个参考来进行比较。
基于LLM的上下文召回率
LLMContextRecall
使用 user_input
、reference
和 retrieved_contexts
计算,其值范围在0到1之间,值越高表示性能越好。该指标使用 reference
作为 reference_contexts
的代理,这也使得它更容易使用,因为注释参考上下文可能非常耗时。为了从 reference
估计上下文召回率,参考文献被分解为声明,每个 reference
答案中的声明都会被分析,以确定它是否可以归因于检索到的上下文。在理想情况下,参考答案中的所有声明都应该可以归因于检索到的上下文。
计算上下文召回率的公式如下:
\[
\text{context recall} = {|\text{可以归因于上下文的GT声明数量}| \over |\text{GT中的声明总数}|}
\]
示例
from ragas.dataset_schema import SingleTurnSample
from ragas.metrics import LLMContextRecall
sample = SingleTurnSample(
user_input="埃菲尔铁塔位于哪里?",
response="埃菲尔铁塔位于巴黎。",
reference="埃菲尔铁塔位于巴黎。",
retrieved_contexts=["巴黎是法国的首都。"],
)
context_recall = LLMContextRecall()
await context_recall.single_turn_ascore(sample)
非LLM的上下文召回率
NonLLMContextRecall
指标使用 retrieved_contexts
和 reference_contexts
计算,其值范围在0到1之间,值越高表示性能越好。该指标使用非LLM的字符串比较指标来识别检索到的上下文是否相关。你可以使用任何非LLM的指标作为距离度量来识别检索到的上下文是否相关。
计算上下文召回率的公式如下:
\[
\text{context recall} = {|\text{检索到的相关上下文数量}| \over |\text{参考上下文总数}|}
\]