跳转到内容

多模态忠实度

MultiModalFaithfulness

MultiModalFaithfulness 指标衡量生成答案相对于视觉和文本上下文的事实一致性。它是根据答案、检索到的文本上下文和视觉上下文计算得出的。答案的分数被缩放到 (0,1) 范围内,分数越高表示忠实度越好。

如果答案中提出的所有主张都可以从提供的视觉或文本上下文中推断出来,则认为生成的答案是忠实的。为了确定这一点,会直接根据提供的上下文对回答进行评估,忠实度分数为 0 或 1。

示例

from ragas.dataset_schema import SingleTurnSample 
from ragas.metrics import MultiModalFaithfulness

sample = SingleTurnSample(
        user_input="What about the Tesla Model X?",
        response="Cats are cute.",
        retrieved_contexts=[
            "custom_eval/multimodal/images/tesla.jpg"
        ]
    )
scorer = MultiModalFaithfulness()
await scorer.single_turn_ascore(sample)

计算方法

示例

问题:关于特斯拉 Model X 的信息?

上下文(视觉):- 一张特斯拉 Model X 的图片 (custom_eval/multimodal/images/tesla.jpg)

高忠实度答案:特斯拉 Model X 是由特斯拉制造的一款电动 SUV。

低忠实度答案:猫很可爱。

让我们来看看如何使用低忠实度答案来计算忠实度

  • 第一步:根据给定的上下文评估生成的回答。

    • 回答:“猫很可爱。”
  • 第二步:验证回答是否可以从给定的上下文中推断出来。

    • 回答:否
  • 第三步:使用该结果来确定忠实度分数。

    \[ \text{忠实度} = 0 \]

在这个例子中,回答“猫很可爱”无法从特斯拉 Model X 的图片中推断出来,因此忠实度分数为 0。