evalstone/evalscope/docs/zh/benchmarks/perception_bench.md
sora 13274243a0 Bump vendored EvalScope and add K3-ready DPV4 configs.
Keep K3 suite selection and report-schema scoring in bash, merge K3/vision dataset_args into dpv4 yamls, and pin EvalScope at 735d920ee911 with local patches.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 07:30:48 +00:00

149 lines
5.1 KiB
Markdown
Raw 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.

# PerceptionBench
## 概述
PerceptionBench 是由 Moonshot AI 推出的一项基准测试用于评估多模态大语言模型MLLM的原子级视觉感知能力。该基准采用自下而上的构建方式通过对前沿 MLLM 在 42 个现有基准上的最早失败点进行诊断,归纳出一个错误分类体系,其中“感知”分支定义了十种原子级感知能力。每个问题仅聚焦于单一能力,因此其难度来源于感知本身,而非推理或知识。
## 任务描述
- **任务类型**:视觉感知(开放式问答)
- **输入**:一张或多张图像与一个问题交错排列
- **输出**:自由格式的简短答案,且具有唯一确定的参考答案
- **领域**:涵盖十种原子级视觉感知能力
## 核心特性
- 包含 3,000 个经过验证的问题,覆盖十种原子级感知能力
- 其中 1,800 个问题60%是从源基准中归因失败案例分解出的原子子问题1,200 个问题40%)是在补充图像上全新编写的问题
- 子集遵循十种 `error_category` 标签:视觉关系、计数、属性、深度与 3D 感知、定位、比较、细粒度识别、上下文整合、OCR 和感知相关幻觉
- 支持多图像问题:图像通过 `<|image_N|>` 占位符交错嵌入问题中
- 对于包含 `hint`(坐标约定或图像尺寸)的样本,会通过系统消息传递该提示,与官方消息构建器保持一致
## 评估说明
- 默认评估使用 **train** 切分3,000 个样本,单切分数据集)
- 主要指标:**准确率Accuracy**,报告整体及各能力维度的结果
- 评分遵循官方协议:使用 LLM 评判器通过教师评分提示teacher-grading prompt将自由格式答案与参考答案对比并对每个样本返回严格的 0/1 判定(`[reason]` / `[judge] True|False`);论文中使用 GPT-oss-120B 作为评判器,在 300 个样本的人工审核中与人类判断的一致性达 99.7%
- 空输出或生成失败的答案直接记为 0 分,不调用评判器
- 需通过 `judge.models` 配置 LLM 评判器
- 数据集中图像以 base64 data URI 形式嵌入(首次使用时下载约 1.6 GB
## 属性
| 属性 | 值 |
|----------|-------|
| **基准测试名称** | `perception_bench` |
| **数据集ID** | [moonshotai/PerceptionBench](https://modelscope.cn/datasets/moonshotai/PerceptionBench/summary) |
| **论文** | [Paper](https://arxiv.org/abs/2607.24957) |
| **标签** | `MultiModal`, `QA` |
| **指标** | `accuracy` |
| **默认示例数** | 0-shot |
| **评估切分** | `train` |
## 数据统计
| 指标 | 值 |
|--------|-------|
| 总样本数 | 3,000 |
| 提示词长度(平均) | 233.87 字符 |
| 提示词长度(最小/最大) | 29 / 1076 字符 |
**各子集统计信息:**
| 子集 | 样本数 | 提示词平均长度 | 提示词最小长度 | 提示词最大长度 |
|--------|---------|-------------|------------|------------|
| `visual_relation_error` | 330 | 275.62 | 43 | 876 |
| `visual_counting_error` | 330 | 161.11 | 37 | 831 |
| `visual_attribute_error` | 330 | 225.58 | 34 | 1006 |
| `depth_3d_perception_error` | 330 | 278.5 | 60 | 976 |
| `visual_localization_error` | 330 | 284.79 | 62 | 1076 |
| `visual_comparison_error` | 279 | 270.14 | 39 | 801 |
| `fine_grained_recognition_error` | 290 | 225.91 | 44 | 917 |
| `context_integration_error` | 255 | 277.04 | 58 | 845 |
| `ocr_error` | 255 | 175.39 | 29 | 934 |
| `hallucination` | 271 | 150.94 | 42 | 515 |
**图像统计信息:**
| 指标 | 值 |
|--------|-------|
| 图像总数 | 3,567 |
| 每样本图像数 | 最小: 1, 最大: 8, 平均: 1.19 |
| 分辨率范围 | 101x64 - 5712x4953 |
| 格式 | jpeg, png, webp |
## 样例示例
**子集**: `visual_relation_error`
```json
{
"input": [
{
"id": "28bf28ec",
"content": [
{
"image": "[BASE64_IMAGE: png, ~97.9KB]"
},
{
"text": "How many arrows does the dashed box intersect with? Just answer with the number."
}
]
}
],
"target": "4",
"id": 0,
"group_id": 0,
"subset_key": "visual_relation_error",
"metadata": {
"index": 5,
"problem": "<|image_1|>How many arrows does the dashed box intersect with? Just answer with the number.",
"error_category": "visual_relation_error",
"source_bmk": "NA",
"source_idx": null
}
}
```
## 提示模板
*未定义提示模板。*
## 使用方法
### 通过 CLI 使用
```bash
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets perception_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=['perception_bench'],
dataset_args={
'perception_bench': {
# subset_list: ['visual_relation_error', 'visual_counting_error', 'visual_attribute_error'] # 可选,用于评估特定子集
}
},
limit=10, # 正式评估时请删除此行
)
run_task(task_cfg=task_cfg)
```