PerceptionBench 的实用价值在于把一次笼统的“模型答错”拆成可以指认的结论:错在感知层还是推理层,落在哪一类题型,卡在哪个环节。只读总分的话,汇报时只能写“表现一般”,迭代时也不知道该改提示词、换模型还是补数据。读 PerceptionBench 结果需要固定顺序:先看题型构成,再看整体,然后按题型下钻到错题,最后把结论写成别人能复核的表述,并给结论标上样本边界。
判断:PerceptionBench 的分层与分题型结果,适合用来做错误归因,不适合单独用来排队模型优劣。操作:先整理题型清单(以仓库文档定义为唯一来源),再按“错题—题型—环节”建记录表,只在同一题型、同一判分方式、同一题集版本内做比较。验证:结果文件中的题型字段、判分字段与题集版本号能否对上。边界:题型覆盖不全或某类错题样本过少时,结论只能写成“疑似”,并注明未覆盖项。
先读题型构成再读整体结果
整体分数通常是各题型结果的加权平均,题型配比一变,总分就跟着变。评测集里感知类题目占比高、模型恰好在感知类上偏弱,总分会被压低,但这不代表推理层也差;反过来,少数难题型被大量简单题型稀释,总分看起来正常,问题却被掩盖。因此先看构成,再看整体,才能判断总分的变化来自能力变化还是题目构成变化。
题型清单建议从仓库文档或任务定义文件中整理,不要凭印象起名字。整理成一张固定清单,后续所有记录表、比较表都引用同一套名称:
- 题型名:逐字照抄仓库文档中的定义,不自行简化或合并
- 所属层:感知层或推理层,按仓库划分填写
- 题目数量:该题型在本次评测集中的条数
- 判分方式:规则匹配、人工标注对照还是模型判分,逐一注明
- 题集版本:用于区分不同批次的评测集
如果结果文件是结构化输出,可以先按层和题型统计条数,确认构成与清单一致。下面的骨架字段名需按实际输出替换,不要直接照抄:
# 统计每层、每题型的结果条数(字段名以实际结果文件为准)
jq -r '.results[] | [.layer, .task_type] | @tsv' run_result.json \
| sort | uniq -c | sort -rn
验证方式很简单:统计出的题型名应与仓库文档清单逐字对应,出现清单外的题型名,说明结果文件来自不同版本或题型定义已变更,此时不要直接与历史结果对比。
把一次答错对应到具体题型
只记住“某张图答错了”无法归因,也无法复现。建议对每条错题记录到题型和环节两级,形成可筛选的记录表。字段建议如下:
| 字段 | 填写要求 |
|---|---|
| 题目 ID / 样本 ID | 与结果文件中的标识一致,便于回查原题 |
| 题型 | 使用清单中的题型名,不写笼统的“看图题” |
| 所属层 | 感知层或推理层 |
| 错误现象 | 只写可观察的输出差异,如“将图中蓝色物体说成红色” |
| 归因环节 | 识别、计数、空间关系、指代、步骤推理等,按该题型的判分点拆 |
| 判分方式 | 与清单一致 |
| 备注 | 是否属于样本本身歧义、标注问题 |
一条填写示例(题型名与环节名为占位,请替换为仓库文档中的实际名称):
题目ID: sample-0000(占位)
题型: 以仓库文档题型名为准
所属层: 感知层
错误现象: 图中为两只杯子,模型输出“一只”
归因环节: 计数
判分方式: 规则匹配
备注: 需回查原题是否遮挡导致歧义
三级记录的意义在于:同一题型下多条错题若都落在同一个环节,才构成可行动的结论;若错题分散在不同环节,说明该题型结论还不成立,应先扩大样本。
在同一题型内比较不同模型或不同配置
比较要在可比口径下进行。可用的比较方式:同一题型、同一题集版本、同一判分方式、同一提示词模板与解码参数下,比较模型 A 与模型 B;或同一模型在仅改动一个配置项时的结果差异。每次只动一个变量,变化才能归到该变量上。
以下比较方式无效,原因分别是:
- 跨题型比总分:题型难度与配比不同,总分差异无法区分能力差异与题目差异
- 不同判分方式之间比:规则匹配与模型判分的宽松程度不同,结果不可换算
- 题集版本不同却直接对比:题目本身已变,差异来源无法拆分
- 提示词、解码参数不同却归因于模型能力:改动项混杂,结论无法复现
- 某一题型样本量远小于另一题型仍按同一精度解读:小样本波动会被误读为能力差异
比较结果建议同时列出该题型题目数量与错题数量,让读者自行判断可信度,而不是只给一个结论词。
把诊断结论写进迭代说明
迭代说明要让别人能复核,建议按“现象、对应题型、已排除项、下一步验证方式”四段写。示例(数值与题型名称为占位,按实际结果替换):
现象:在该题型的计数类题目上,模型输出数量与图中目标数量不一致,
错误集中在多目标场景。
对应题型:以仓库文档题型名为准(感知层,判分方式为规则匹配)。
已排除项:已核对题集版本一致、判分脚本未变更;抽样回查原图无明显遮挡,
暂不认为是标注问题。
下一步验证方式:补充同题型的多目标样本后重跑;同时固定其余配置,
仅替换提示词中对“逐个数出目标”的表述,观察该题型错题是否变化。
验证以该题型结果文件为准,不引用整体总分。
“已排除项”一栏是关键:写清哪些原因已经查过,别人才能不重复排查;“下一步验证方式”要可执行,并指明用哪个题型、哪份结果文件来验证。
给结论设一个成立的边界
PerceptionBench 的分题型结果容易被过度外推:某题型只有少量错题就写“模型不擅长这类任务”,或结果文件里根本没有某题型却当作已通过。
- 样本过少时:在结论里标注该题型的题目数量与错题数量,表述改为“疑似”,并写明“待样本扩充后复核”
- 题型覆盖不全时:逐项标注“未覆盖”,不并入通过项,也不并入失败项
- 补充样本前:建议先看该题型能否稳定复现同类错误再下结论;具体需要多少条样本,结合仓库评测集规模与判分稳定性确认,不宜用固定数字对外承诺
把这些标注写进迭代说明,比给出一个看似确定的结论更有用:读者知道结论适用范围,也知道下一步补什么数据。