你有没有过这样的经历,用手机拍了一张花的照片,问AI"这是什么花",结果它信誓旦旦地告诉你一个错误答案。你可能会觉得是AI不够聪明,但真相可能更有意思:问题很可能出在你的问题本身,还有你拍的那张照片。
腾讯元宝团队最近做了一件挺较真的事。他们发现市面上评测AI识图能力的基准测试,几乎都在一个理想化的世界里进行:图片是清晰的,问题是完整的。可现实生活中,谁会精心构图再发问?你可能是在颠簸的公交车上匆匆拍下一张模糊照片,顺手打出几个字的问题,还可能手滑打错字。这种"随手拍随口问"的场景,恰恰是目前所有测试都没覆盖到的盲区。
于是他们造了一个新的测试集,叫SnapBench,专门用来检验AI在这种"糟糕条件"下到底靠不靠谱。
先搞清楚,这事到底难在哪
这类交互有个学术名字,叫snap-and-ask,直译就是"拍了就问"。
snap-and-ask:指用户用手机摄像头拍摄一个物体,同时用简短文字提问,AI系统需要从图库中找出用户真正想问的那个目标物体的交互模式
这个任务和常见的"图文检索"任务长得像,但骨子里不一样。研究团队指出了两个关键差异。
第一个差异是,提问往往非常笼统。你问"这是什么花",这句话本身信息量极少,它没法帮你从樱花、梅花、木兰之间做出区分。真正能区分它们的证据全部藏在那张照片里。这就要求AI必须具备在一堆长得很像的"近似候选项"里挑出正确答案的能力,而不是简单地把图片和一段宽泛的描述配对上就算完事。
第二个差异是,输入天生就不干净。手机拍的照片经常糊、经常被裁掉一部分、经常光线不好,还可能被界面上的按钮图标挡住一角。而文字问题呢,常常写得很短,打字打错,或者本来就没说清楚重点。这些不是极端情况,而是手机使用中每天都在发生的常态。
团队做了个挺有说服力的小调查。他们从真实的产品日志里随机抽了5000条用户上传的"图片加问题"记录,用自动化方法去检测这些图片和文字有没有质量问题。结果是,71%的记录至少有一边存在瑕疵,而两边同时都有问题的比例高达35%。
这组数字什么概念?差不多是说,每三个用户里,就有一个人的照片和问题同时是不完美的。如果你设计的AI系统只在干净输入上测试过,那它面对的其实是一个被过滤掉大部分真实场景的"温室实验"。
这就好比一个厨师只在恒温恒湿的中央厨房里练过手艺,从没在颠簸的外卖电动车后座上颠过锅。真到了实战场景,油温不稳、食材参差不齐,厨师原本练就的那套精细动作可能完全用不上。如果不做这种"脏输入"下的专门训练和测试,系统在实验室里表现得再漂亮,一到用户手里就露馅。
已有的测试集为什么不够用
在SnapBench之前,业内已经有不少检索类的评测基准了,但它们各有各的局限。
像MS COCO、Flickr30K这类经典的图文检索数据集,测的是"图片配文字描述"这种干净的对齐关系,文字通常是完整规范的一句话说明,不是用户随口问的短句子。
还有一类叫composed retrieval的基准,比如FashionIQ、CIRR,它们的玩法是给一张参考图,再用文字描述"我要一个和这个类似但颜色不同的",本质是在做修改和调整,和snap-and-ask里"直接问这张照片里是什么"的诉求完全不是一回事。
至于专门测试鲁棒性的基准,比如大名鼎鼎的ImageNet-C,它确实会给图片加噪声、加模糊,但它有个致命短板:每次换一张被腐蚀的图,对应的标签集合(也就是正确答案范围)也跟着换了。这样一来,你没法确定性能下降到底是因为图片变模糊了,还是因为换了一批本来就更难分辨的样本,两个变量搅在一起,没法拆开看。
SnapBench的核心设计原则解决了这个问题,叫配对协议。
配对协议:指同一个查询的清晰版本和被腐蚀版本,共享完全相同的目标实体、候选图库和正确答案标签,唯一的区别只在于输入条件本身
这样一来,任何性能上的变化,都能干净利落地归因到"腐蚀"这一个变量上,而不会被其他因素污染。这就像做药物临床试验必须设置安慰剂对照组,吃了药症状变化了,你才能说是药起了作用,而不是病人自己好转的。如果不做这种严格对照,任何"变好"或"变差"的结论都站不住脚。
SnapBench到底长什么样
这个基准包含1145条查询和9085个候选图库项目,覆盖53种受控的腐蚀条件,其中45种针对图片,8种针对文字,背后还有真人标注做支撑。
构建过程分成四个阶段。
第一步是生成"实体中心"的问题。团队从一个私有图片库里挑出主体清晰、没有严重遮挡的图片,交给Gemini-3-Flash模型生成一个粗粒度的实体标签和一句自然的英文提问,比如"这是什么植物"。这里特意要求问题只能给出大类,不能透露具体品种、品牌这些细节答案,否则测试就失去意义了,因为答案已经写在问题里了。生成之后还要过一道语义审查,由GPT-5.4-mini检查是否存在无实体、问题不通顺、答案泄漏等问题,不合格的会被打回重做,最多修三轮。
第二步是收集图库素材。每张候选图片都配上一句由私有Qwen-VL模型生成的、专注实体本身的英文描述,过滤掉那些信息量太低或者重复的条目。
第三步是模拟真实世界的各种"拍糊了""问岔了"的场景,这是整个基准里最具巧思的部分,下面细讲。
第四步是人工标注和图库最终组装。每条清晰查询会先用检索系统预筛出30个候选项,交给标注员按四个维度打分:视觉相似度、实体相关性、描述准确性、以及文字是否真的回答了用户的问题。综合得分决定这个候选项最终是正样本、难负样本还是被淘汰的易负样本。
难负样本:指和目标实体视觉上或语义上高度相似、但并非用户真正想要的那个候选项,比如你想找的是樱花,图库里同时存在梅花和木兰的照片作为干扰项
这套标注流程动用了10名标注员,每人先要通过一轮3000条数据的资格考核,准确率达到90%才能上岗,标注过程中还有20%到30%的抽检复核,最终审核通过率是95%。这种严格程度,说明团队对标注质量的要求几乎是学术界少见的高标准。
图片和文字是怎么被"弄脏"的
图片端的腐蚀被归纳成四大类操作,分别叫ADD、REMOVE、DEGRADE、TRANSFORM。
ADD是往图片上叠加东西,比如水印、涂鸦、界面按钮遮挡、马赛克。REMOVE是让可见内容变少,比如裁剪掉一部分或者把分辨率降低。DEGRADE是让图片质量变差,比如加模糊、加压缩痕迹、改变光线明暗。TRANSFORM是做几何形变,比如旋转、透视错位、镜头畸变。
这四类总共细分出15种具体操作,每种操作还设置了三个严重程度,轻中重,一共组合出45种图片腐蚀条件。
文字端则设计了8种操作,分三个层级。字符级的操作模拟打字手滑,比如多打一个字母、少打一个字母、打成键盘上相邻的字母、两个字母顺序颠倒。词语级的操作会重复某个词或者交换相邻词语的位置。句子级的操作要么在问题前后加一句寒暄式的话,要么干脆把整个问题简化成最笼统的"这是什么"。
研究团队还专门做了一次真实性验证,用200张从真实生产环境抓取的、未经人工挑选的照片,提前写下三个可证伪的预测,然后逐一检验。结果三个预测全部成立:图片腐蚀里最伤的两类(降质和裁剪)在真实照片上依然是伤害最大的两类;16个模型在真实腐蚀数据上的排名和在合成数据上的排名高度相关,相关系数达到0.83;两边同时腐蚀的场景里,损失依然表现出超出简单相加的叠加效应。这说明团队设计的这套合成腐蚀,不是自娱自乐的实验室游戏,它确实能预测真实世界里会发生什么。
16个模型跑下来,发现了什么
团队拿16个主流的视觉语言检索模型跑了一遍这套测试,包括CLIP、SigLIP这类双塔编码器,也包括GME、Qwen3-VL-Embedding、Ops-MM这类基于大模型的嵌入方案。
双塔编码器:指图片和文字分别用两个独立的编码器处理,再通过计算相似度来做匹配的模型架构,是早期多模态检索的主流方案
结果排在最前面的是Ops-MM-7B,清晰输入下的准确率是79.1%,但即便是这个最强选手,也没有任何一个模型能突破80%这条线。这本身就说明SnapBench这套题目出得够难,没有留下太多"刷分空间"。
更值得琢磨的是三个反直觉的发现。
第一个发现是,图片质量差是伤害最大的因素,而且清晰状态下的成绩完全没法预测抗腐蚀能力。SigLIP-SO400M在干净输入下排名靠前,可一旦遇到严重腐蚀就掉得很惨;反倒是GME-2B清晰时成绩一般,腐蚀后平均掉分却更少。这就好比考试成绩好的学生,不一定抗压能力强,平时成绩中等的学生,在突发状况面前反而稳得住。
第二个发现,也是整篇论文里最出人意料的一点,叫粗糙文本拖累效应。
粗糙文本拖累:指在图片本身已经能给出准确答案的情况下,加入一句笼统的文字提问(比如"这是什么花")反而会让检索准确率下降,因为这句宽泛的话会把很多同类别的候选项分数都拉高,稀释掉原本很清晰的视觉排序
这个发现颠覆了一个常识性预期。你可能会以为,给AI多一点信息(哪怕是笼统的问题),总不会让它变得更差吧。但数据显示,联合检索模式在清晰输入和各种腐蚀条件下,平均比纯图片检索低了11.21个百分点。这说明当前的检索系统在权衡"该多信图片还是多信文字"这件事上,普遍存在校准失灵的问题:文字信号被赋予的权重,远超过它实际能提供的信息价值。
团队还做了一个巧妙的验证实验,直接把GME-7B模型上一个粗糙问题("这是什么花")替换成精确的实体标签("一株郁金香"),结果这种拖累效应从7.68个百分点骤降到0.17个百分点,消除幅度高达97.8%。这个实验清楚地证明,问题不出在文字本身,而出在文字的粒度太粗。
第三个发现叫超线性叠加效应,也就是说,图片和文字同时腐蚀带来的伤害,比两边分别单独腐蚀的伤害之和还要大。
平均下来,联合腐蚀导致的检索下降幅度是13.6个百分点,而按照"简单相加"的朴素预期只应该有6.0个百分点,多出来的7.6个百分点没法用单独测试图片或单独测试文字来预测。
这就好比一个人同时感冒又扭伤了脚,他的行动能力不是"感冒的影响加上扭伤的影响"这么简单地叠加,两种病痛互相牵制,让他连拄拐都变得更费劲,整体的行动困难程度会比你预想的糟糕得多。如果研究者只测单一模态的鲁棒性,永远不会发现这种协同放大的效应,这正是SnapBench坚持要同时腐蚀两个模态的原因所在。
图片腐蚀还藏着一个"悬崖"现象
团队进一步拆解了图片腐蚀的规律,发现它并不是一条平滑下滑的曲线,而是分成了两种截然不同的模式。
一部分操作,比如马赛克、水印、低光照、降采样、裁剪,呈现的是悬崖式下跌:轻度和中度腐蚀时几乎不掉分,可一旦到了重度腐蚀,分数瞬间暴跌。另一部分操作,比如透视变形、界面遮挡、涂鸦、运动模糊、旋转,则是渐进式下滑,分数随着腐蚀程度增加平缓地往下走。
团队还专门做了一次人工判断实验,拿750张重度腐蚀的图片,让人来判断"这张图里的目标物体你还认得出来吗"。结果发现,悬崖型腐蚀在重度条件下,只有10%的图片人眼还能认出目标,而这类操作贡献了89%的性能损失;渐进型腐蚀在重度条件下,依然有95%的图片人眼能认出目标,损失只占6%。
这个区分很重要。它意味着悬崖型腐蚀在最严重的档位上测的其实不是模型有多强,而是这个任务本身还能不能被回答,这是一个"能不能"的问题,不是"强不强"的问题。而渐进型腐蚀测出的下滑,才是真正意义上的模型鲁棒性缺陷。
面对这些问题,他们给出了什么解法
发现问题之后,团队提出了一个叫MOOR的轻量级方案。
MOOR:全称Modality-anchored, Outlier-aware, Optimal Reweighting,是一种不需要额外训练、完全基于模型自身输出分数来动态调整图片和文字权重的自适应融合方法
MOOR的核心思路是,每次检索时同时计算四条相似度路径:图对图、文对文、图对文、文对图。以图对图这条路径为锚点,用皮尔逊相关系数衡量其他路径和它的一致程度,再用一个钟形函数给出权重:如果某条辅助路径和锚点完全一致(说明它是冗余的,没提供新信息),或者完全不相关(说明它不可靠),这个权重都会趋近于零;只有当它和锚点保持适度的一致又带来了额外信息时,权重才会被拉高。
这套设计的精妙之处在于它的自适应性。清晰输入下,文字路径和图片路径的相关性通常很高(约0.8),属于冗余区间,权重会被压得很低,这自然就避免了粗糙文本的拖累。而一旦图片被严重腐蚀,图片路径本身的信噪比下降,文字路径和它的相关性会滑向0.5这个最优区间,权重自动被拉高,系统就自然而然地开始更依赖文字信息了。
整个过程没有一个可学习的参数,完全靠统计特性驱动。这就像一个经验丰富的老中医,望闻问切时会根据当下哪种诊断信号更可靠来临时调整判断依据:如果病人说不清症状,就多看舌苔脉象;如果舌苔脉象也模糊不清,就多问病史。这种权重分配不是提前写死的固定公式,而是随着信号质量实时调整的。如果系统始终按照固定权重来融合两种信息,遇到信号质量剧烈波动的场景就完全没有招架之力。
实测下来,MOOR在清晰、文字腐蚀、图片腐蚀三种条件下,相比固定融合方式都取得了提升。双塔类模型的提升尤其明显,平均能拿到6到9个百分点,基于大模型的嵌入方案提升幅度稍小但依然稳定。团队还测算了一个理论上限,也就是每条查询单独找到的最优权重,发现16个模型的最优权重标准差普遍在0.086到0.138之间,远远不是一个"可以忽略"的小波动。这说明固定权重这件事本身就是不合理的,最优权重是随着每条查询变化的,不存在一个放之四海而皆准的黄金比例。
这个思路和一个更早的工作EviRank有些渊源又不完全相同。EviRank是通过提取结构化的相关性证据来对候选结果重新排序,相当于引入了额外的外部信息;而MOOR完全不引入任何新证据,只是重新分配模型已经输出的四条分数路径之间的权重,是一种更节俭、更轻量的校准方式。
这项工作留下的思考
读完这份研究,最让我意外的不是那16个模型的排名,而是那个97.8%的数字。把一个笼统问题换成精确的实体标签,拖累效应几乎完全消失,这说明问题真的不在于AI理解不了用户的意图,而在于系统把用户随口说的一句模糊话,当成了和图片同等分量的证据来对待。
这让我想起一个和检索完全不相关的场景:医生问诊时,病人说"我这里不舒服",这句话信息量很低,但一个好医生不会因为这句模糊的主诉就直接下判断,他会主要依赖体检和检查结果,把病人这句话当成一个大致方向的提示而已。可要是换成一个刚入行、还没学会权衡信息可靠性的实习医生,可能就会被这句模糊的主诉带偏,忽略了体检结果里更明确的信号。当前不少AI检索系统,某种程度上就处在那个"实习医生"的阶段。
还有一点值得单独说一说,团队那个真实数据验证实验里,预测的三件事全部命中,这在学术论文里其实不算特别常见。很多论文提出一套合成腐蚀方案后,并不会真的花力气去回头验证这套方案是否贴合现实,SnapBench团队做了这一步,说明他们对这套基准的实用性是有底气的。
不过SnapBench目前依然是一个受控实验环境,53种腐蚀条件是程序生成的,不是从真实用户上传里直接抓取的原始瑕疵样本。真实世界里各种问题往往是混杂在一起、不成比例地发生的,这和论文里工整的四类操作、三档强度的设计终究有差距。这个基准解决的是"能不能公平地对比不同腐蚀条件下的性能变化"这个问题,但它没有,也不打算完全复刻真实世界杂乱无章的分布。这个边界,团队自己也在论文里坦诚地写明了。
下次你拍照问AI认花草认建筑的时候,不妨想想,你打出的那句"这是什么"到底提供了多少有效信息,又有多少AI真正需要的证据,其实全都藏在那张可能拍糊了的照片里。
Q&A
Q1:SnapBench是什么?
A:SnapBench是腾讯元宝团队推出的多模态检索基准测试集,专门用于评测AI在"拍照加提问"场景下的表现,包含1145条查询、9085个图库项目和53种受控的图片文字腐蚀条件,用来检验AI面对模糊照片和不完整问题时是否还能准确找到答案。
Q2:为什么加入文字问题反而会让AI检索准确率下降?
A:这叫粗糙文本拖累效应,当用户问题过于笼统时(比如"这是什么花"),这句话会让很多同类别候选项的分数都被拉高,稀释掉原本清晰的图片排序,导致联合检索反而不如单纯用图片检索准确。
Q3:MOOR是怎么解决这个问题的?
A:MOOR是一种不需要训练的自适应融合方法,它会实时计算图片和文字两条路径的相关性,如果文字信号和图片路径高度冗余或完全不相关就自动降低它的权重,只有信号质量真正有用时才提高权重,从而根据每次查询动态调整该信多少文字、信多少图片。







