PerceptionBench 把视觉任务拆成感知和推理两层、模型答错时能落到具体题型上看

文章导读
PerceptionBench 的实用价值在于把一次笼统的“模型答错”拆成可以指认的结论:错在感知层还是推理层,落在哪一类题型,卡在哪个环节。只读总分的话,汇报时只能写“表现一般”,迭代时也不知道该改提示词、换模型还是补数据。读 PerceptionBench 结果需要固定顺序:先看题型构成,再看整体,然后按题型下钻到错题,最后把结论写成别人能复核的表述,并给结论标上样本边界。
📋 目录
  1. Ⅰ 先读题型构成再读整体结果
  2. Ⅱ 把一次答错对应到具体题型
  3. Ⅲ 在同一题型内比较不同模型或不同配置
  4. Ⅳ 把诊断结论写进迭代说明
  5. Ⅴ 给结论设一个成立的边界
A A

PerceptionBench 的实用价值在于把一次笼统的“模型答错”拆成可以指认的结论:错在感知层还是推理层,落在哪一类题型,卡在哪个环节。只读总分的话,汇报时只能写“表现一般”,迭代时也不知道该改提示词、换模型还是补数据。读 PerceptionBench 结果需要固定顺序:先看题型构成,再看整体,然后按题型下钻到错题,最后把结论写成别人能复核的表述,并给结论标上样本边界。

判断:PerceptionBench 的分层与分题型结果,适合用来做错误归因,不适合单独用来排队模型优劣。操作:先整理题型清单(以仓库文档定义为唯一来源),再按“错题—题型—环节”建记录表,只在同一题型、同一判分方式、同一题集版本内做比较。验证:结果文件中的题型字段、判分字段与题集版本号能否对上。边界:题型覆盖不全或某类错题样本过少时,结论只能写成“疑似”,并注明未覆盖项。

先读题型构成再读整体结果

整体分数通常是各题型结果的加权平均,题型配比一变,总分就跟着变。评测集里感知类题目占比高、模型恰好在感知类上偏弱,总分会被压低,但这不代表推理层也差;反过来,少数难题型被大量简单题型稀释,总分看起来正常,问题却被掩盖。因此先看构成,再看整体,才能判断总分的变化来自能力变化还是题目构成变化。

题型清单建议从仓库文档或任务定义文件中整理,不要凭印象起名字。整理成一张固定清单,后续所有记录表、比较表都引用同一套名称:

  • 题型名:逐字照抄仓库文档中的定义,不自行简化或合并
  • 所属层:感知层或推理层,按仓库划分填写
  • 题目数量:该题型在本次评测集中的条数
  • 判分方式:规则匹配、人工标注对照还是模型判分,逐一注明
  • 题集版本:用于区分不同批次的评测集

如果结果文件是结构化输出,可以先按层和题型统计条数,确认构成与清单一致。下面的骨架字段名需按实际输出替换,不要直接照抄:

# 统计每层、每题型的结果条数(字段名以实际结果文件为准)
jq -r '.results[] | [.layer, .task_type] | @tsv' run_result.json \
  | sort | uniq -c | sort -rn

验证方式很简单:统计出的题型名应与仓库文档清单逐字对应,出现清单外的题型名,说明结果文件来自不同版本或题型定义已变更,此时不要直接与历史结果对比。

PerceptionBench 把视觉任务拆成感知和推理两层、模型答错时能落到具体题型上看

把一次答错对应到具体题型

只记住“某张图答错了”无法归因,也无法复现。建议对每条错题记录到题型和环节两级,形成可筛选的记录表。字段建议如下:

字段填写要求
题目 ID / 样本 ID与结果文件中的标识一致,便于回查原题
题型使用清单中的题型名,不写笼统的“看图题”
所属层感知层或推理层
错误现象只写可观察的输出差异,如“将图中蓝色物体说成红色”
归因环节识别、计数、空间关系、指代、步骤推理等,按该题型的判分点拆
判分方式与清单一致
备注是否属于样本本身歧义、标注问题

一条填写示例(题型名与环节名为占位,请替换为仓库文档中的实际名称):

题目ID: sample-0000(占位)
题型: 以仓库文档题型名为准
所属层: 感知层
错误现象: 图中为两只杯子,模型输出“一只”
归因环节: 计数
判分方式: 规则匹配
备注: 需回查原题是否遮挡导致歧义

三级记录的意义在于:同一题型下多条错题若都落在同一个环节,才构成可行动的结论;若错题分散在不同环节,说明该题型结论还不成立,应先扩大样本。

PerceptionBench 把视觉任务拆成感知和推理两层、模型答错时能落到具体题型上看

在同一题型内比较不同模型或不同配置

比较要在可比口径下进行。可用的比较方式:同一题型、同一题集版本、同一判分方式、同一提示词模板与解码参数下,比较模型 A 与模型 B;或同一模型在仅改动一个配置项时的结果差异。每次只动一个变量,变化才能归到该变量上。

以下比较方式无效,原因分别是:

  • 跨题型比总分:题型难度与配比不同,总分差异无法区分能力差异与题目差异
  • 不同判分方式之间比:规则匹配与模型判分的宽松程度不同,结果不可换算
  • 题集版本不同却直接对比:题目本身已变,差异来源无法拆分
  • 提示词、解码参数不同却归因于模型能力:改动项混杂,结论无法复现
  • 某一题型样本量远小于另一题型仍按同一精度解读:小样本波动会被误读为能力差异

比较结果建议同时列出该题型题目数量与错题数量,让读者自行判断可信度,而不是只给一个结论词。

把诊断结论写进迭代说明

迭代说明要让别人能复核,建议按“现象、对应题型、已排除项、下一步验证方式”四段写。示例(数值与题型名称为占位,按实际结果替换):

PerceptionBench 把视觉任务拆成感知和推理两层、模型答错时能落到具体题型上看
现象:在该题型的计数类题目上,模型输出数量与图中目标数量不一致,
      错误集中在多目标场景。
对应题型:以仓库文档题型名为准(感知层,判分方式为规则匹配)。
已排除项:已核对题集版本一致、判分脚本未变更;抽样回查原图无明显遮挡,
      暂不认为是标注问题。
下一步验证方式:补充同题型的多目标样本后重跑;同时固定其余配置,
      仅替换提示词中对“逐个数出目标”的表述,观察该题型错题是否变化。
      验证以该题型结果文件为准,不引用整体总分。

“已排除项”一栏是关键:写清哪些原因已经查过,别人才能不重复排查;“下一步验证方式”要可执行,并指明用哪个题型、哪份结果文件来验证。

给结论设一个成立的边界

PerceptionBench 的分题型结果容易被过度外推:某题型只有少量错题就写“模型不擅长这类任务”,或结果文件里根本没有某题型却当作已通过。

  • 样本过少时:在结论里标注该题型的题目数量与错题数量,表述改为“疑似”,并写明“待样本扩充后复核”
  • 题型覆盖不全时:逐项标注“未覆盖”,不并入通过项,也不并入失败项
  • 补充样本前:建议先看该题型能否稳定复现同类错误再下结论;具体需要多少条样本,结合仓库评测集规模与判分稳定性确认,不宜用固定数字对外承诺

把这些标注写进迭代说明,比给出一个看似确定的结论更有用:读者知道结论适用范围,也知道下一步补什么数据。