2026-07-08 08:57:50 +00:00

150 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# MMBench
## 概述
MMBench 是一个系统性设计的基准测试,用于在 20 个细粒度能力维度上评估视觉-语言模型。它采用了一种新颖的 CircularEval 策略,并提供英文和中文两个版本,以支持跨语言评估。
## 任务描述
- **任务类型**视觉多选问答Visual Multiple-Choice Q&A
- **输入**:包含问题和 24 个选项的图像
- **输出**单个正确答案字母A、B、C 或 D
- **语言**包含英文en和中文cn子集
## 主要特性
- 定义了 20 个细粒度能力维度
- 采用 CircularEval 策略的系统化评估流程
- 支持双语(英文和中文)
- 问题中包含上下文提示hints
- 考察感知、推理和知识能力
## 评估说明
- 默认配置使用 **0-shot** 评估
- 使用思维链Chain-of-Thought, CoT提示
- 在开发集dev split上进行评估
- 包含两个子集:`cn`(中文)和 `en`(英文)
- 结果包含按类别划分的详细指标
## 属性
| 属性 | 值 |
|----------|-------|
| **基准测试名称** | `mm_bench` |
| **数据集 ID** | [lmms-lab/MMBench](https://modelscope.cn/datasets/lmms-lab/MMBench/summary) |
| **论文** | N/A |
| **标签** | `Knowledge`, `MultiModal`, `QA` |
| **指标** | `acc` |
| **默认示例数** | 0-shot |
| **评估分割** | `dev` |
## 数据统计
| 指标 | 值 |
|--------|-------|
| 总样本数 | 8,658 |
| 提示词长度(平均) | 372.3 字符 |
| 提示词长度(最小/最大) | 241 / 2395 字符 |
**各子集统计数据:**
| 子集 | 样本数 | 提示平均长度 | 提示最小长度 | 提示最大长度 |
|--------|---------|-------------|------------|------------|
| `cn` | 4,329 | 312.28 | 241 | 1681 |
| `en` | 4,329 | 432.33 | 256 | 2395 |
**图像统计数据:**
| 指标 | 值 |
|--------|-------|
| 总图像数 | 8,658 |
| 每样本图像数 | 最小: 1, 最大: 1, 平均: 1 |
| 分辨率范围 | 106x56 - 512x512 |
| 格式 | jpeg |
## 样例示例
**子集**: `cn`
```json
{
"input": [
{
"id": "00b49734",
"content": [
{
"text": "Answer the following multiple choice question. The last line of your response should be of the following format: 'ANSWER: [LETTER]' (without quotes) where [LETTER] is one of A,B. Think step by step before answering.\n\n下面的文章描述了一个实验。阅读文章然后按照以下说明进行操作。\n\nMadelyn在雪板的底部涂上了一层薄蜡然后直接下坡滑行。然后她去掉了蜡再次直接下坡滑行。她重复了这个过程四次每次都交替使用薄蜡或不使用薄蜡滑行。她的朋友Tucker计时每次滑行的时间。Madelyn和Tucker计算了使用薄蜡滑行和不使用薄蜡滑行时直接下坡所需的平均时间。\n图滑雪板下坡。麦德琳和塔克的实验能最好回答哪个问题\n\nA) 当麦德琳的雪板上有一层薄蜡或一层厚蜡时,它是否能在较短的时间内滑下山坡?\nB) 当麦德琳的雪板上有一层蜡或没有蜡时,它是否能在较短的时间内滑下山坡?"
},
{
"image": "[BASE64_IMAGE: jpeg, ~11.7KB]"
}
]
}
],
"choices": [
"当麦德琳的雪板上有一层薄蜡或一层厚蜡时,它是否能在较短的时间内滑下山坡?",
"当麦德琳的雪板上有一层蜡或没有蜡时,它是否能在较短的时间内滑下山坡?"
],
"target": "B",
"id": 0,
"group_id": 0,
"metadata": {
"index": 241,
"category": "identity_reasoning",
"source": "scienceqa",
"L2-category": "attribute_reasoning",
"comment": "nan",
"split": "dev"
}
}
```
## 提示模板
**提示模板:**
```text
Answer the following multiple choice question. The last line of your response should be of the following format: 'ANSWER: [LETTER]' (without quotes) where [LETTER] is one of {letters}. Think step by step before answering.
{question}
{choices}
```
## 使用方法
### 使用命令行CLI
```bash
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets mm_bench \
--limit 10 # 正式评估时请删除此行
```
### 使用 Python
```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=['mm_bench'],
dataset_args={
'mm_bench': {
# subset_list: ['cn', 'en'] # 可选,用于指定评估特定子集
}
},
limit=10, # 正式评估时请删除此行
)
run_task(task_cfg=task_cfg)
```