噪声敏感度
NoiseSensitivity
衡量系统在使用相关或不相关检索文档时提供错误响应的频率。分数范围从0到1,较低的值表示更好的性能。噪声敏感度是通过 user_input
、reference
、response
和 retrieved_contexts
计算的。
为了估计噪声敏感度,检查生成响应中的每个声明,以确定它是否基于真实情况是正确的,以及它是否可以归因于相关(或不相关)的检索上下文。理想情况下,答案中的所有声明都应由相关的检索上下文支持。
示例
from ragas.dataset_schema import SingleTurnSample
from ragas.metrics import NoiseSensitivity
sample = SingleTurnSample(
user_input="印度人寿保险公司(LIC)以什么著称?",
response="印度人寿保险公司(LIC)是印度最大的保险公司,以其庞大的投资组合而闻名。LIC 为国家的金融稳定做出了贡献。",
reference="印度人寿保险公司(LIC)是印度最大的保险公司,成立于1956年,通过国有化保险业而成立。它以管理庞大的投资组合而闻名。",
retrieved_contexts=[
"印度人寿保险公司(LIC)成立于1956年,随后印度保险业的国有化。",
"LIC 是印度最大的保险公司,拥有庞大的保单持有人网络和巨额投资。",
"作为印度最大的机构投资者,LIC 管理着大量资金,为国家金融稳定做出了贡献。",
"印度经济是世界上增长最快的经济体之一,得益于金融、技术、制造等行业的贡献。"
]
)
scorer = NoiseSensitivity()
await scorer.single_turn_ascore(sample)
要计算不相关上下文的噪声敏感度,可以将 focus
参数设置为 irrelevant
。
计算方法
示例
问题:印度人寿保险公司(LIC)以什么著称?
真实情况:印度人寿保险公司(LIC)是印度最大的保险公司,成立于1956年,通过国有化保险业而成立。它以管理庞大的投资组合而闻名。
相关检索: - 印度人寿保险公司(LIC)成立于1956年,随后印度保险业的国有化。 - LIC 是印度最大的保险公司,拥有庞大的保单持有人网络,并在金融部门中扮演重要角色。 - 作为印度最大的机构投资者,LIC 管理着大量的生命基金,为国家金融稳定做出了贡献。
不相关检索: - 印度经济是世界上增长最快的经济体之一,得益于金融、技术、制造等行业的贡献。
让我们看看如何计算相关上下文的噪声敏感度:
-
步骤1: 识别可以从真实情况推断出的相关上下文。
-
真实情况: 印度人寿保险公司(LIC)是印度最大的保险公司,成立于1956年,通过国有化保险业而成立。它以管理庞大的投资组合而闻名。
-
上下文:
- 上下文1:印度人寿保险公司(LIC)成立于1956年,随后印度保险业的国有化。
- 上下文2:LIC 是印度最大的保险公司,拥有庞大的保单持有人网络,并在金融部门中扮演重要角色。
- 上下文3:作为印度最大的机构投资者,LIC 管理着大量的资金,为国家金融稳定做出了贡献。
-
-
步骤2: 验证生成答案中的声明是否可以从相关上下文中推断出来。
-
答案: 印度人寿保险公司(LIC)是印度最大的保险公司,以其庞大的投资组合而闻名。LIC 为国家的金融稳定做出了贡献。
-
上下文:
- 上下文1:印度人寿保险公司(LIC)成立于1956年,随后印度保险业的国有化。
- 上下文2:LIC 是印度最大的保险公司,拥有庞大的保单持有人网络,并在金融部门中扮演重要角色。
- 上下文3:作为印度最大的机构投资者,LIC 管理着大量的资金,为国家金融稳定做出了贡献。
-
步骤 3: 识别答案中的任何错误声明(即,答案陈述中没有得到事实支持的部分)。
-
事实依据: 印度人寿保险公司(LIC)是印度最大的保险公司,成立于1956年,通过国有化保险业而成立。它以管理大量投资组合而闻名。
-
答案: 印度人寿保险公司(LIC)是印度最大的保险公司,以其庞大的投资组合而闻名。LIC对国家的金融稳定做出了贡献。
解释:事实依据中并未提及LIC对国家金融稳定做出贡献的内容。因此,答案中的这一陈述是错误的。
错误陈述:1 总声明数:3
-
-
步骤 4: 使用以下公式计算噪声敏感度:
\[ \text{噪声敏感度} = { \text{1} \over \text{3} } = 0.333 \]
这导致噪声敏感度得分为0.333,表明答案中三分之一的声明是错误的。
鸣谢:噪声敏感度概念由RAGChecker引入。