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.9 KiB
4.9 KiB
VLMs Are Biased
概述
VLMs Are Biased(VLMBias)用于评估视觉-语言模型(VLM)在回答客观视觉问题时,是依据图像内容作答,还是依赖于记忆中的先验知识。该基准测试使用反事实图像(counterfactual images),这些图像的可见属性与常见概念相冲突,例如带有四条纹的阿迪达斯风格标志,或拥有异常腿数的动物。
任务描述
- 任务类型:自由形式的视觉问答(计数与识别)
- 输入:一张反事实图像或对照图像,配以计数、二元识别或简短回答类问题
- 输出:一个数字、
Yes/No,或用花括号括起的简短身份标识 - 领域:动物、商标、旗帜、国际象棋棋子、游戏棋盘、视错觉和图案网格
核心特性
- 主要的
main划分包含 2,784 个客观视觉问题,覆盖 1,392 张反事实图像,分辨率分别为 384、768 和 1152 像素 - 五个官方分析划分涵盖二元识别、图像内标题注入、原始未修改对照图像,以及去除背景的变体
- 每条反事实记录同时提供视觉上正确的
ground_truth和基于先验知识的expected_bias - 该基准测试涵盖七个主题和十九个子主题,支持细粒度分析,无需创建合成的 EvalScope 子集
评估说明
- 数据集提示词按原文使用,包括其要求的花括号答案格式
- 主要指标:准确率(
acc),采用官方提供的大小写不敏感比较方法(去除外层花括号后);若精确文本匹配失败,则比较其中的数字序列 - 次要指标:偏见比率(
bias_ratio,越低越好),即在相同归一化条件下,预测结果与expected_bias一致的比例 - 准确率也按主题分别报告,与官方 lmms-eval 集成一致
original划分不计算bias_ratio,因为这些对照样本未定义expected_bias- 六个官方数据集划分作为独立的 EvalScope 子集公开,并默认全部参与评估;若仅选择
main子集,可复现论文中的主要基准结果 - 生成应具有确定性且简洁;官方 lmms-eval 设置使用
temperature=0,最多生成 32 个新 token - 论文 | GitHub | 项目主页
属性
| 属性 | 值 |
|---|---|
| 基准测试名称 | vlms_are_biased |
| 数据集ID | evalscope/vlms-are-biased |
| 论文 | Paper |
| 标签 | MultiModal, QA, Reasoning |
| 指标 | accuracy, bias_ratio |
| 默认示例数 | 0-shot |
| 评估划分 | main |
数据统计
| 指标 | 值 |
|---|---|
| 总样本数 | 11,594 |
| 提示词长度(平均) | 90.01 字符 |
| 提示词长度(最小/最大) | 60 / 138 字符 |
各子集统计信息:
| 子集 | 样本数 | 提示词平均长度 | 提示词最小长度 | 提示词最大长度 |
|---|---|---|---|---|
main |
2,784 | 91.52 | 78 | 129 |
identification |
1,392 | 83.27 | 68 | 102 |
withtitle |
2,784 | 91.52 | 78 | 129 |
original |
458 | 85.03 | 60 | 130 |
remove_background_q1q2 |
2,784 | 94.23 | 78 | 138 |
remove_background_q3 |
1,392 | 83.91 | 70 | 102 |
图像统计信息:
| 指标 | 值 |
|---|---|
| 图像总数 | 11,594 |
| 每样本图像数 | 最小: 1, 最大: 1, 平均: 1 |
| 分辨率范围 | 384x183 - 1862x1430 |
| 格式 | png |
样例示例
子集: main
{
"input": [
{
"id": "3872fe66",
"content": [
{
"image": "[BASE64_IMAGE: png, ~1.9KB]"
},
{
"text": "Are the horizontal and vertical lines equal in length? Answer in curly brackets, e.g., {Yes} or {No}."
}
]
}
],
"target": "Yes",
"id": 0,
"group_id": 0,
"metadata": {
"id": "VerticalHorizontal_001_Q1_notitle_px384",
"topic": "Optical Illusion",
"sub_topic": "Vertical-Horizontal illusion",
"type_of_question": "Q1",
"expected_bias": "No",
"with_title": false,
"pixel": 384
}
}
提示模板
未定义提示模板。
使用方法
使用 CLI
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets vlms_are_biased \
--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=['vlms_are_biased'],
dataset_args={
'vlms_are_biased': {
# subset_list: ['main', 'identification', 'withtitle'] # 可选,用于评估特定子集
}
},
limit=10, # 正式评估时请删除此行
)
run_task(task_cfg=task_cfg)