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

5.1 KiB
Raw Permalink Blame History

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
论文 Paper
标签 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

{
  "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 使用

evalscope eval \
    --model YOUR_MODEL \
    --api-url OPENAI_API_COMPAT_URL \
    --api-key EMPTY_TOKEN \
    --datasets perception_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=['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)