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>
4.2 KiB
4.2 KiB
MeasureBench
概述
MeasureBench 是一个全面的基准测试,用于评估视觉语言模型(VLMs)从测量仪器中读取数值的能力。它涵盖了 真实世界照片 和 合成生成图像 两大类,包含 4 种设计类别下的 26 种仪器类型。
任务描述
- 任务类型:开放式视觉问答(仪器读数)
- 输入:一张测量仪器的图像 + 一个读数问题
- 输出:仪器当前的读数(数值或时间,带单位)
- 领域:电流表、时钟、温度计、秤、速度表等共 26 种仪器类型
主要特性
- 总计 2,442 个样本,分为两个子集:real_world(1,272)和 synthetic_test(1,170)
- 26 种仪器类型,4 种设计类别(表盘式、数字式、模拟式、线性式)
- 接受围绕正确值的一个容差区间,而非要求完全精确匹配
- 对于时钟:通过多个有效区间处理 12 小时制与 24 小时制的歧义
- 单位识别与数值准确性分别进行评估
评估说明
- 默认子集:real_world 和 synthetic_test(视为独立子集)
- 主要指标:Accuracy(
accuracy)——all_correct:数值 和 单位均正确 - 次要指标:number_acc(仅数值)、unit_acc(仅单位)
- 两种评估器:
interval_matching(单一有效范围)和multi_interval_matching(例如时钟的上午/下午) - 模型输出应在最后一行采用格式
Answer: <value> <unit> - 每个样本的元数据中记录了
image_type;按类型划分的结果可在评审文件的subset_key列中查看,但无法通过subset_list单独选择 - 论文 | GitHub
属性
| 属性 | 值 |
|---|---|
| 基准测试名称 | measure_bench |
| 数据集ID | evalscope/MeasureBench |
| 论文 | Paper |
| 标签 | MultiModal, QA, Reasoning |
| 指标 | accuracy, number_acc, unit_acc |
| 默认示例数 | 0-shot |
| 评估子集 | real_world |
数据统计
| 指标 | 值 |
|---|---|
| 总样本数 | 2,442 |
| 提示词长度(平均) | 150.9 字符 |
| 提示词长度(最小/最大) | 126 / 215 字符 |
各子集统计:
| 子集 | 样本数 | 提示词平均长度 | 提示词最小长度 | 提示词最大长度 |
|---|---|---|---|---|
real_world |
1,272 | 153.83 | 131 | 215 |
synthetic_test |
1,170 | 147.71 | 126 | 192 |
图像统计:
| 指标 | 值 |
|---|---|
| 图像总数 | 2,442 |
| 每样本图像数 | 最小: 1, 最大: 1, 平均: 1 |
| 分辨率范围 | 108x79 - 3025x1599 |
| 格式 | jpeg, png |
样例示例
子集: real_world
{
"input": [
{
"id": "1341f508",
"content": [
{
"image": "[BASE64_IMAGE: jpeg, ~75.8KB]"
},
{
"text": "What is the reading of the instrument?\nProvide your final answer on the last line in the format: Answer: <value> <unit>. For example: Answer: 42.5 A"
}
]
}
],
"target": "",
"id": 0,
"group_id": 0,
"subset_key": "ammeter",
"metadata": {
"question_id": "ammeter_0",
"image_type": "ammeter",
"design": "dial",
"evaluator": "interval_matching",
"evaluator_kwargs": "{\"interval\": [9.5, 9.7], \"units\": [\"A\", \"Ampere\"]}"
}
}
提示模板
未定义提示模板。
使用方法
使用 CLI
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets measure_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=['measure_bench'],
dataset_args={
'measure_bench': {
# subset_list: ['real_world', 'synthetic_test'] # 可选,用于评估特定子集
}
},
limit=10, # 正式评估时请删除此行
)
run_task(task_cfg=task_cfg)