多模态相关性

MultiModalRelevance

MultiModalRelevance 指标衡量生成答案与视觉和文本上下文的相关性。它根据用户输入、响应和检索到的上下文(视觉和文本)计算得出。答案缩放至 (0,1) 范围,分数越高表示相关性越好。

如果生成的答案与提供的视觉或文本上下文对齐,则认为它是相关的。为了确定这一点,直接根据提供的上下文评估响应,相关性分数为 0 或 1。

示例(推荐 - Collections API)

from openai import AsyncOpenAI
from ragas.llms.base import llm_factory
from ragas.metrics.collections import MultiModalRelevance

# Setup - use a vision-capable model
client = AsyncOpenAI()
llm = llm_factory("gpt-4o", client=client)  # Vision-capable model required

# Create metric instance
metric = MultiModalRelevance(llm=llm)

# Evaluate relevance
result = await metric.ascore(
    user_input="What about the Tesla Model X?",
    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"Relevance Score: {result.value}")  # 1.0 (relevant) or 0.0 (not relevant)

示例(旧版 API - 已弃用)

已弃用

旧版 API 已弃用,将在未来版本中移除。请迁移到上面显示的 Collections API。

from ragas.dataset_schema import SingleTurnSample
from ragas.metrics import MultiModalRelevance

sample = SingleTurnSample(
        user_input="What about the Tesla Model X?",
        response="Cats are cute.",
        retrieved_contexts=[
            "custom_eval/multimodal/images/tesla.jpg"
        ]
    )
scorer = MultiModalRelevance()
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 实例
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐