ZeroBench#

概述#

ZeroBench 是一个面向大语言多模态模型(LMMs)的高难度视觉推理基准测试。它包含 100 个高质量、人工精心筛选的问题,涵盖多个领域、多种推理类型和图像类型,旨在超越当前模型的能力边界。

任务描述#

  • 任务类型:高级视觉推理

  • 输入:一张或多张图像 + 高难度视觉推理问题

  • 输出:逐步推理过程,并在最后用花括号给出最终答案

  • 领域:视觉推理、感知、多步推理

核心特点#

  • 包含 100 个高质量、人工精心筛选的问题

  • 专为挑战前沿模型而设计(使用贪心解码时,零样本准确率为 0)

  • 覆盖多样化的领域、推理类型和图像类型

  • 目前尚无模型能达到 5/5 的可靠性评分

  • 用于测试当前视觉推理能力的极限

评估说明#

  • 默认评估使用 zerobench 划分

  • 主要指标:由 LLM 评判的 准确率(Accuracy)

  • 答案格式必须为:{final answer}

  • 包含子问题划分,便于详细分析

  • 使用图像压缩以处理大尺寸图像

属性#

属性

基准测试名称

zerobench

数据集 ID

evalscope/zerobench

论文

N/A

标签

Knowledge, MultiModal, QA

指标

acc

默认示例数量

0-shot

评估划分

zerobench

训练划分

zerobench_subquestions

数据统计#

指标

总样本数

100

提示词长度(平均)

645.72 字符

提示词长度(最小/最大)

139 / 1998 字符

图像统计信息:

指标

图像总数

108

每样本图像数

最小: 1, 最大: 3, 平均: 1.08

分辨率范围

512x297 - 5559x4070

图像格式

jpeg, png

样例示例#

子集: default

{
  "input": [
    {
      "id": "f3276b25",
      "content": [
        {
          "text": "I want to purchase all the Montellier bottles from the top three shelves. How much do I save by purchasing the bottles with a loyalty card? Give your final answer in dollars.\n\n\n\nLet's think step by step and give the final answer in curly braces,\nlike this: {final answer}\"\n"
        },
        {
          "image": "[BASE64_IMAGE: png, ~462.4KB]"
        }
      ]
    }
  ],
  "target": "11.90",
  "id": 0,
  "group_id": 0,
  "metadata": {
    "question_id": "1",
    "question_images": [
      "images/1_0.png"
    ],
    "image_attribution": "Own"
  }
}

提示模板#

提示模板:

{question}



Let's think step by step and give the final answer in curly braces,
like this: {{final answer}}"

使用方法#

使用命令行(CLI)#

evalscope eval \
    --model YOUR_MODEL \
    --api-url OPENAI_API_COMPAT_URL \
    --api-key EMPTY_TOKEN \
    --datasets zerobench \
    --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=['zerobench'],
    limit=10,  # 正式评估时请删除此行
)

run_task(task_cfg=task_cfg)