TIR-Bench#
概述#
TIR-Bench(Thinking-with-Images Reasoning Benchmark)是一个全面的多模态基准测试,用于评估视觉语言模型的具身视觉推理能力。该基准涵盖多种任务类别,要求模型具备空间、组合式及多步骤的视觉推理能力。
任务描述#
任务类型:多任务视觉推理(选择题、OCR、单词搜索、找不同、拼图等)
输入:一张或两张图像 + 问题(大多数任务采用选择题格式)
输出:答案字母(选择题)或数字/文本形式的答案(取决于任务类型)
领域:instrument(仪器)、color(颜色)、refcoco、rotation_game(旋转游戏)、math(数学)、word_search(单词搜索)、visual_search(视觉搜索)、ocr、symbolic(符号)、spot_difference(找不同)、contrast(对比)、jigsaw(拼图)、maze(迷宫)
核心特性#
包含13种多样化的视觉推理任务类别,共计1,215个测试样本
覆盖单图和双图推理场景
答案形式包括字母选项(A-J)、整数、浮点数和文本
采用任务特定评分机制,并辅以LLM-as-judge作为后备方案,确保评估的鲁棒性
评估说明#
默认使用 test 划分进行评估(共1,215个样本)
主要指标:准确率(acc)
图像数据通过 ModelScope 下载为
data.zip并自动解压基于规则的评分方式:
OCR(子串匹配)
拼图(grid IoU)
找不同(set IoU)
单词搜索(数值匹配)
其他所有任务(选择题 / 数值判断)
推荐设置:将
judge_strategy=JudgeStrategy.LLM_RECALL并提供judge_model_args,以启用 LLM-as-judge 作为召回机制——仅当基于规则的评分结果为0时才调用判别模型,在避免不必要 API 开销的同时提升评估准确性
属性#
属性 |
值 |
|---|---|
基准测试名称 |
|
数据集ID |
|
论文 |
|
标签 |
|
指标 |
|
默认示例数 |
0-shot |
评估划分 |
|
数据统计#
指标 |
值 |
|---|---|
总样本数 |
1,215 |
提示词长度(平均) |
384.97 字符 |
提示词长度(最小/最大) |
19 / 4039 字符 |
各子集统计数据:
子集 |
样本数 |
提示词平均长度 |
提示词最小长度 |
提示词最大长度 |
|---|---|---|---|---|
|
80 |
110.96 |
57 |
196 |
|
100 |
130.26 |
98 |
241 |
|
120 |
144.51 |
132 |
182 |
|
75 |
146.44 |
140 |
148 |
|
120 |
126.69 |
50 |
397 |
|
100 |
126.72 |
24 |
307 |
|
120 |
111.64 |
19 |
501 |
|
60 |
35.08 |
29 |
116 |
|
50 |
88.18 |
66 |
243 |
|
100 |
1114.79 |
93 |
1379 |
|
50 |
48.1 |
31 |
123 |
|
120 |
605 |
605 |
605 |
|
120 |
1527.06 |
626 |
4039 |
图像统计数据:
指标 |
值 |
|---|---|
图像总数 |
1,255 |
每样本图像数 |
最小: 1, 最大: 2, 平均: 1.03 |
分辨率范围 |
60x23 - 6944x9280 |
格式 |
jpeg, mpo, png, webp |
样例示例#
子集: instrument
{
"input": [
{
"id": "dd25f10d",
"content": [
{
"image": "[BASE64_IMAGE: jpg, ~2.9MB]"
},
{
"text": "According to the image, what is the thermometer reading in Fahrenheit? Answer as an integer like 1,2,3."
}
]
}
],
"target": "72",
"id": 0,
"group_id": 0,
"subset_key": "instrument",
"metadata": {
"task": "instrument",
"meta_data": {},
"id": 6
}
}
提示模板#
未定义提示模板。
使用方法#
使用 CLI#
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets tir_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=['tir_bench'],
dataset_args={
'tir_bench': {
# subset_list: ['instrument', 'color', 'refcoco'] # 可选,用于评估特定子集
}
},
limit=10, # 正式评估时请删除此行
)
run_task(task_cfg=task_cfg)