跳到内容

多模态忠实度

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。

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

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

  • 步骤 1:根据给定的上下文评估生成的响应。

    • 响应:“猫很可爱。”
  • 步骤 2:验证响应是否可以从给定的上下文中推断出来。

    • 响应:否
  • 步骤 3:使用结果确定忠实度分数。

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

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