多模态忠实度
MultiModalFaithfulness
MultiModalFaithfulness 指标衡量生成答案与视觉和文本上下文的事实一致性。它根据答案、检索到的文本上下文和视觉上下文计算得出。答案缩放至 (0,1) 范围,分数越高表示忠实度越好。
如果答案中的所有声明都能从提供的视觉或文本上下文中推断出来,则认为生成的答案是忠实的。为了确定这一点,直接根据提供的上下文评估响应,忠实度分数为 0 或 1。
示例(推荐 – Collections API)
from openai import AsyncOpenAI
from ragas.llms.base import llm_factory
from ragas.metrics.collections import MultiModalFaithfulness
# Setup – use a vision-capable model
client = AsyncOpenAI()
llm = llm_factory("gpt-4o", client=client) # Vision-capable model required
# Create metric instance
metric = MultiModalFaithfulness(llm=llm)
# Evaluate faithfulness
result = await metric.ascore(
response="The Tesla Model X is an electric SUV.",
retrieved_contexts=[
"path/to/tesla_image.jpg", # Image context
"Tesla manufactures electric vehicles." # Text context
]
)
print(f"Faithfulness Score: {result.value}") # 1.0 (faithful) or 0.0 (not faithful)
示例(旧版 API – 已弃用)
已弃用
旧版 API 已弃用,将在未来版本中移除。请迁移到上面显示的 Collections API。
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:使用结果确定忠实度分数

在此示例中,响应"猫很可爱"无法从特斯拉 Model X 的图片中推断出来,因此忠实度分数为 0。
支持的上下文类型
该指标支持多种上下文输入类型:
- 文本上下文 :纯文本字符串
- 图片 URL :指向图片的 HTTP/HTTPS URL
- 本地图片路径 :本地图片的文件路径(jpg、png、gif、webp、bmp)
- Base64 数据 URI :内联的 Base64 编码图片
要求
- 需要具备视觉能力的 LLM(例如 gpt-4o、gpt-4-vision-preview、claude-3-opus、gemini-pro-vision)
- 对于 Collections API,使用 llm_factory 创建 LLM 实例

