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

3.9 KiB
Raw Permalink Blame History

VisFactor

概述

VisFactor 使用从 Factor-Referenced Cognitive Test (FRCT) 改编而来的 20 个以视觉为中心的子测试,评估多模态大语言模型的基础视觉认知能力。它聚焦于支撑高层视觉推理的基本能力,而非衡量单一下游任务的表现。

任务描述

  • 任务类型:包含二元判断和简短自由回答的视觉认知评估
  • 输入1 至 4 张图像,与任务特定指令交错排列
  • 输出:一个 JSON 对象,包含布尔值、单词、数字、坐标对或字母形式的答案
  • 领域:可视化与空间处理、知觉闭合、视觉记忆及推理

主要特性

  • 包含 3,046 行数据,对应 20 个 FRCT 子测试中的 808 个测试项
  • 采用基于规则的变体和分组一致性检查,将平均随机猜测准确率降至约 2.9%
  • 保留 VLMEvalKit 实现中的官方零样本提示及其图像顺序
  • 覆盖隐藏图形识别、格式塔完形、视觉记忆、心理旋转、路径查找、折纸推理等相关能力

评估说明

  • 使用官方 VisFactor.tsv 在 ModelScope 镜像中的 test 划分
  • 提取最后一个 {"answer": ...} 对象,并应用官方针对不同类别的标准化规则
  • 单个逻辑测试项可能包含多行数据,仅当所有行均正确时才计为正确
  • 报告每个子测试在测试项级别的准确率;主得分是所涵盖子测试的未加权宏平均值
  • 评分过程完全确定,无需依赖 LLM 评判器

属性

属性
基准测试名称 visfactor
数据集ID lmms-lab-encoder/visfactor
论文 Paper
标签 MultiModal, QA, Reasoning
指标 accuracy
默认示例数 0-shot
评估划分 test

数据统计

指标
总样本数 3,046
提示词长度(平均) 463.45 字符
提示词长度(最小/最大) 188 / 932 字符

图像统计信息:

指标
图像总数 6,048
每样本图像数 最小: 1, 最大: 4, 平均: 1.99
分辨率范围 100x100 - 668x911
格式 jpeg

样例示例

子集: default

{
  "input": [
    {
      "id": "1a4f53fe",
      "content": [
        {
          "text": "Look at the two images:\n\nBelow is the first image, one simple shape:"
        },
        {
          "image": "[BASE64_IMAGE: jpeg, ~2.6KB]"
        },
        {
          "text": "Below is the second image, a larger, complex pattern:"
        },
        {
          "image": "[BASE64_IMAGE: jpeg, ~8.5KB]"
        },
        {
          "text": "Task: Decide whether the shape in the first image is hidden anywhere inside the second image. The shape will never be rotated, flipped, or resized. The shape will always be right-side-up and exactly the same size as in the first image.\n\nOutput: Respond with only one word: “TRUE” if it is present, “FALSE” if it is not, in JSON format as follows: {\"answer\": YOUR_ANSWER_HERE}."
        }
      ]
    }
  ],
  "target": "T",
  "id": 0,
  "group_id": 0,
  "metadata": {
    "index": 0,
    "category_id": "CF1",
    "category_name": "Hidden Figures Test",
    "eval_index": 0,
    "additional": ""
  }
}

提示模板

未定义提示模板。

使用方法

使用 CLI

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

run_task(task_cfg=task_cfg)