3.5 KiB
3.5 KiB
MIA-Bench
概述
MIA-Bench 是一个多模态指令遵循基准测试,旨在评估视觉-语言模型在图像基础上遵循复杂、组合式指令的能力。每个样本包含一张图像和一条多组件指令,模型的响应由大语言模型(LLM)评委按组件分别打分。
任务描述
- 任务类型:多模态指令遵循
- 输入:图像 + 多组件指令
- 输出:自由格式的回答,需满足所有指令组件的要求
- 领域:视觉理解、指令遵循、语言生成
主要特点
- 包含 400 个测试样本,涵盖从基础到高级的多样化指令类型
- 每条指令被分解为 1–5 个评分组件,并配有加权分数
- 组件类型包括:描述(describe)、长度限制(length_limit)、语言学要求(linguistics)、格式(format)等
- 采用 LLM 作为评委进行评分:评委独立评估每个组件,并给出加权总分(0–10 分范围,归一化至 0–1)
- 无预设参考答案;评分完全依赖评委判断
评估说明
- 默认使用 test 划分进行评估(400 个样本)
- 主要指标:total_score(各样本归一化后 0–1 总分的平均值)
- 需配置一个能力强的 LLM 评委(例如 GPT-4o、Qwen-Max),通过
judge_model_args设置 - 评委策略应设置为
JudgeStrategy.LLM
属性
| 属性 | 值 |
|---|---|
| 基准测试名称 | mia_bench |
| 数据集ID | lmms-lab/MIA-Bench |
| 论文 | N/A |
| 标签 | InstructionFollowing, MultiModal, QA |
| 指标 | total_score |
| 默认示例数量 | 0-shot |
| 评估划分 | test |
数据统计
| 指标 | 值 |
|---|---|
| 总样本数 | 400 |
| 提示词长度(平均) | 137.81 字符 |
| 提示词长度(最小/最大) | 34 / 327 字符 |
图像统计信息:
| 指标 | 值 |
|---|---|
| 总图像数 | 400 |
| 每样本图像数 | 最小: 1, 最大: 1, 平均: 1 |
| 分辨率范围 | 135x240 - 3264x4928 |
| 格式 | jpeg, mpo, webp |
样例示例
子集: default
{
"input": [
{
"id": "9156e81c",
"content": [
{
"image": "[BASE64_IMAGE: jpeg, ~195.9KB]"
},
{
"text": "Explain the activity taking place in the image using exactly two sentences, including one metaphor."
}
]
}
],
"target": "",
"id": 0,
"group_id": 0,
"metadata": {
"instruction": "Explain the activity taking place in the image using exactly two sentences, including one metaphor.",
"type": "advanced",
"num_of_component": 3,
"components": [
"Explain the activity taking place in the image",
"using exactly two sentences",
"including one metaphor"
],
"component_weight": [
4,
3,
3
],
"component_type": [
"describe",
"length_limit",
"linguistics"
]
}
}
提示模板
未定义提示模板。
使用方法
使用 CLI
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets mia_bench \
--limit 10 # 正式评估时请删除此行
使用 Python
from evalscope import run_task
from evalscope.config import TaskConfig
task_cfg = TaskConfig(
model='YOUR_MODEL',
api_url='OPENAI_API_COMPAT_URL',
api_key='EMPTY_TOKEN',
datasets=['mia_bench'],
limit=10, # 正式评估时请删除此行
)
run_task(task_cfg=task_cfg)