POPE基准的Yes/No提取漏洞:VLM幻觉评测被token选择混淆

POPE基准中Yes/No读数方式错配可使VLM幻觉F1漂移6分以上,属协议级评测漏洞。
该研究复现LLaVA-1.5-7B在POPE幻觉基准上的表现时,发现硬编码的yes/no token ID(3582/1217)在9000道题中从未被模型生成——模型实际输出的是带空格前缀的" Yes"(3869)和" No"(1939),根源在于SentencePiece对提示词后缀的空格处理。改用分词器派生的八token查找表后,adversarial split的F1移动6.13分,超过调研六篇论文中五篇报告的对抗增益。这一混淆在四个VLM、三个分词器家族上得到验证:硬编码ID跨词表移植使F1跌至0.00。研究还通过3000题探针发现错误预测反而吸引更多图像注意力(d=-0.46),与grounding修正假设相反。作者呼吁披露读数token集合来源与推理精度。
POPE基准的Yes/No提取漏洞:VLM幻觉评测被token选择混淆
一项针对POPE幻觉基准的复现研究揭示了一个被忽视的评测陷阱:视觉语言模型(VLM)的Yes/No答案提取方式本身就能让F1分数产生数点漂移,而这个变量在多数已发表工作中从未被披露。

复现起点:一个偏高1.21到8.67个点的基线
研究者的初衷是复现一个近期的幻觉缓解结果。在LLaVA-1.5-7B上,他们测得的adversarial split F1为82.21,比计划对照的三个adversarial基线(81.00、79.30、73.54)高出1.21到8.67个点。
这个差距本身并不罕见,但当研究者翻开评测代码后,发现了一个能独立移动F1的读数选择——也就是说,分数差异可能并非来自方法优劣,而是来自"怎么读模型的答案"。
核心发现:两个从未被生成的token ID
双token logit读数的失效
传统做法用两个词表ID来判定yes还是no:3582对应"yes",1217对应"no"。研究者在覆盖全部三个split的9,000道贪心解码问题上做了统计,结果这两个ID一次都没有被模型生成过。
模型实际输出的是" Yes"(token 3869)和" No"(token 1939)。原因在于SentencePiece在提示词后缀"ASSISTANT:"之后会附加一个空格字节,导致模型面对的是带空格前缀的表面形式,而非裸词。
SentencePiece 是 Google 提出的一种基于子词(subword)的分词算法,被 LLaMA、LLaVA 等模型广泛采用。它的关键特性之一是将空格视为普通字符(用 ▁ 表示),而不是像 WordPiece 那样在预处理阶段剥离。因此当提示词以“ASSISTANT:”结尾时,分词器会在冒号后保留一个空格字节,模型下一个 token 的预测实际上是在“ ▁Yes”这种带空格前缀的表面上进行的。这解释了为什么裸词 ID(3582/1217)从未被生成:模型词表中这些 ID 对应的就是无空格版本,而实际解码路径落在带空格变体上。理解这一点对复现任何基于 logit 的 Yes/No 读数都至关重要。
六点一三分的adversarial漂移
改用覆盖空格前缀形式的八token查找表后,LLaVA-1.5-7B在adversarial、popular、random三个split上的F1分别为0.8221、0.8498和0.8713。仅此一项读数修正,adversarial split就移动了6.13分——这个幅度超过了研究者调研的六篇论文中五篇所报告的adversarial增益。
这意味着,部分文献中宣称的"幻觉缓解效果",可能至少有相当一部分来自评测协议的差异,而非模型能力的真实提升。
F1 分数是精确率与召回率的调和平均,对正类(yes)的判定阈值和读数方式高度敏感。在 POPE 这类二分类基准中,yes 通常代表“物体存在”,no 代表“不存在”。若读数表只覆盖裸词 ID 而模型实际输出带空格变体,模型的所有 yes 预测都会被判为“未识别”,导致召回率骤降;反之若读数表覆盖了带空格变体但漏掉裸词,则可能把部分 no 误判为 yes,推高精确率却压低召回。两种错配的方向和幅度不同,这正是 F1 能移动数点的机制。研究者采用的八 token 查找表同时覆盖了带空格与不带空格的 yes/no 变体(含大小写),从而消除了这一读数歧义。
协议级混淆:跨越三种分词器家族的验证
这不是某个模型的偶发问题。研究者对另外四个VLM、覆盖三个分词器家族做了四读数审计,结论是混淆属于协议层面而非模型层面。
最直观的证据:把LLaVA-1.5的token ID原样移植到两个词表不相交的模型上,F1直接跌到0.00;而使用分词器派生的读数,F1稳定保持在0.80到0.92之间。一个评测细节的错配,足以让整个基准结果失去意义。
分词器家族指不同模型采用的子词切分方案,常见的有 SentencePiece(LLaMA 系)、BPE(GPT 系)和 WordPiece(BERT 系)。不同家族的词表互不相交,同一个语义 token 的 ID 完全不同。例如 LLaVA-1.5 的“ Yes”是 3869,而在另一个分词器家族中 3869 可能对应完全无关的子词。因此把某个模型的硬编码 ID 直接移植到另一模型,读数会彻底失效——这正是 F1 跌至 0.00 的原因。研究者强调“分词器派生”的读数方式:先用目标模型的分词器对“yes”/“no”及其空格变体做编码,动态获得 ID 集合,再用于 logit 比较。这一做法在不同分词器家族间具有可移植性,也是跨模型评测协议应当遵循的最小规范。
为什么对抗性split抵抗logit级干预
在固定基线上,研究者尝试了九种推理时修正方法,没有一种能超过基线。他们进一步分析了对抗性split为何如此顽固。
一项3,000题的探针实验给出了反直觉的结果:错误预测反而比正确预测吸引了更多图像注意力(Cohen's d = -0.46,p = 1.4×10⁻²⁴)。这与基于grounding的修正方法的核心假设正好相反——那些方法默认模型答错是因为"没看够图",但数据显示模型在答错时看得更多。
尚未解决的部分:精度匹配
研究者坦承一个悬而未决的问题:他们的参考运行在4-bit NF4量化下,因此无法判断在读数与精度都匹配的条件下,已报告的增益还能保留多少。这个比较在读数协议和数值精度同时对齐之前,无法给出结论。
对VLM评测实践的含义
这项审计的价值不在于否定某个具体方法,而在于指出一个系统性盲区:多数论文不说明其Yes/No读数方式,读者无法判断分数是否可比。对于依赖POPE等基准评估幻觉的工作,至少应当做到两点——披露读数所用的token集合及其来源(硬编码ID还是分词器派生),以及报告推理精度。
在基准分数被广泛用作模型选型依据的当下,评测协议的透明度与模型能力本身同样重要。
相关推荐

花旗AI编程代理Devon:年省30%技术外包费,1.4万工程师已使用
花旗集团利用AI编程代理Devon,一年内削减30%技术供应商费用,1.4万工程师使用,产品发布提速30%-40%。本文分析其对IT外包行业的冲击及未来人机协作模式。

从生日派对到千亿AI帝国:新一代PayPal黑帮崛起
2015年一张生日派对合影,十年后催生Scale AI、Cognition AI等千亿估值AI公司。解析新一代PayPal黑帮的创业路径、互相投资生态,以及Peter Thiel的Founders Fund如何完成代际传承。

GrokBot临床数据管理AI代理:5分钟组建10人专家团队
GrokBot 推出面向临床数据管理的 AI 代理模板,通过 MCP 服务器和自然语言指令,五分钟内组建 10 个专家代理加 1 个协调者的团队,自动完成数据验证、质疑管理与报告撰写。