AI看图找相同的红色电话,却分不清"红盘子配黑椅子"和"黑盘子配红椅子" Chinese original

先说一个可能会让你愣一下的事实。你以为检索模型分不清细微差别是因为它笨,理解不了图片内容。实际上不是这样。同一个AI模型,如果换一种工作方式,立刻就能分清楚。这听起来有点反常,一个模型怎么会又聪明又笨呢?答案藏在它"怎么工作"这件事里,而这正是今天要讲的这篇论文想解决的问题。

**问题出在哪:模型有能力,但没用对地方**

先说清楚背景。现在做图文检索的AI模型,大多是基于MLLM改造的。

MLLM*:多模态大语言模型,简单理解就是既能看图又能读文字、还能像聊天机器人那样推理的AI,比如Qwen3-VL、GPT-5背后的技术路线都属于这一类。

用MLLM做检索有两种玩法。第一种叫嵌入模型,做法是把一段文字和一张图片分别压缩成一个数字向量,两个向量在空间里靠得越近,就说明这段文字和这张图越匹配。这套逻辑速度快,因为提前把所有图片都压缩好存起来了,用户搜索时只需要比对向量,不需要每次都重新分析图片。

第二种玩法叫重排序模型,做法完全不同,它不提前压缩,而是把查询文字和候选图片放在一起,让模型同时看着两者,通过交叉注意力机制逐字逐句地对比,再打一个匹配分。

交叉注意力*:一种让模型在处理两段信息时能互相"对照检查"的机制,类似于你对照原文逐句核对翻译是否准确,而不是凭第一印象打分。

问题来了。研究团队发现,同样一个"红色电话放在木质台面上"这样的查询,当你把两张候选图片直接放给重排序模型对比时,它能准确判断出哪张图更符合,哪张图只是背景里有个电话(存在但不是主体),哪张图压根是个完全不相关的场景。但同样的底层模型,一旦换成先把图片压缩成向量再比较相似度的嵌入模式,就分不清了。

论文里给出一个具体案例:查询是"粉色熟虾放在金色圆形烤盘食物上面",两张候选图A和B,重排序模型和更大的MLLM都判断A比B更符合查询,可嵌入模型给出的相似度分数却区分不出A和B谁更好。这说明这个AI大脑本身是能理解这种细粒度差异的,只是被压缩成一个向量之后,这些细节信息丢了。

这就是这篇论文的出发点:既然模型的"大脑"能做对,只是"表达方式"(向量嵌入)把信息丢了,那能不能把这个"会做对"的判断能力,教给"表达方式不行"的那部分?

这种能力和输出方式脱节的现象,让我想到一个很生活化的场景。你让一个厨师品尝两道菜,然后详细描述哪道更好、好在哪里,他能说得头头是道。但如果你只让他给两道菜各打一个1到10的分数,不允许多说话,很可能两道菜都打了7分,因为综合考量下来分数难以体现出细节上的差别。厨师的味觉判断能力没变,但打分这个"压缩表达"的方式把细节抹平了。如果不改变打分方式,单靠训练厨师"多尝几次菜"根本没用,因为问题不在味觉,而在打分本身能承载多少信息。

**五个等级:把"对不对"变成"有多对"**

传统的训练方法有个天生的缺陷。绝大多数对比学习会把候选样本简单分成"对的"和"错的"两类,所有"错的"样本都被同等对待,不管这个错误是差了十万八千里,还是就差了一个细节。

对比学习*:一种常见的AI训练方式,让模型学会把匹配的图文对拉近,不匹配的推远,但通常不区分"错得有多离谱"。

这就像是一场考试,只有对和错两种判分,一个答案完全跑题的学生和一个只是把某个数字算错了的学生,拿到的都是零分。这种评分方式必然会丢失信息,因为它压根没打算区分"错误的程度"。研究团队意识到,真正的问题可能不在模型能力,而在训练数据和训练目标的设计上太粗糙了。

于是他们设计了一套五级匹配体系。

L5完全匹配*:图片里的所有物体、属性、关系都跟查询完全对应。

L4部分呈现*:查询提到的一切都在图里,没有任何错误,只是这个场景在图片里占比很小,不是视觉重心。

L3属性错误*:物体对了,但属性错了,比如查询要红杯子,图里给了个绿杯子。

L2物体错误*:直接换了物体,比如查询要杯子,图里给了个碗。

L1完全不匹配*:图片跟查询压根不是一回事。

这五个等级构成一条完整的"相似度光谱",从完美匹配一路滑到彻底无关。这套体系背后的逻辑很清楚:与其粗暴地把世界分成黑和白,不如承认现实里存在无数种"灰",然后老老实实把这些"灰"的层次画出来。

**造数据:从一张随机图片生长出五张图**

有了分级标准,接下来的问题是怎么造出符合这五个等级的训练数据。这一步其实是整篇论文里工程量最大的部分。

流程是这样的。先从LAION-400M这个包含4亿张图文对的数据集里随便抽一张种子图,再用Qwen3-VL-32B这个模型把图片"翻译"成结构化信息,提取出图里有哪些物体、每个物体有什么颜色形状材质姿态,物体之间有什么空间关系或互动关系。

拿到这份结构化信息后,系统会随机挑选一个"配方",决定这次要用几个物体、几个属性来组成查询语句。这个配方连同五级定义一起丢给MLLM,让它生成一句检索查询,再配上五段对应五个等级的图片描述文字。最后用一个叫Z-Image-Turbo的图像生成模型,把这五段文字分别画成五张图,凑成一组完整的候选图片列表。

这个过程有点像给一张原始照片"生出五个平行世界的版本"。原图是一个红色电话放在木桌上,系统会生成一个完全符合描述的版本、一个电话被挤到角落里的版本、一个电话颜色变了的版本、一个电话换成别的物体的版本,再加一个跟电话八竿子打不着的场景。五张图各自代表一个匹配等级,共同构成一条完整的训练样本链。

生成完之后还有质检环节。系统会用MLLM检查两件事:图片是否忠实还原了它对应的那段描述文字,以及图片和查询的匹配关系是否真的符合它被分配的那个等级。任何一张图不合格,整组五张图全部废弃重来,这一步淘汰了22.10%的合成数据。除了机器质检,研究团队还额外找人工标注员抽查了50组共250张图片,严格要求五张图全部达标才算这组数据合格,最终通过率是94%。

这套流程解决了此前方法的一个老毛病。以前有些方法造负样本是简单粗暴地把图里的物体抠出来换个位置,或者干脆生成质量很差的图,这样造出的"错误样本"往往错得很不自然,也很单一。相比之下,这套五级生成流程能造出丰富、渐进、贴近真实场景的困难负样本,这也是后面训练效果好的一个重要前提。

**Rank-KL:让学生模仿老师打分的细腻程度,而不是简单抄答案**

有了分级数据,下一步是怎么把这些数据用在训练上。论文对比了三种训练目标:对比学习、CoSENT,以及他们自己提出的Rank-KL。

CoSENT*:一种成对比较的训练方式,不要求模型给出绝对分数,只要求模型能正确判断"A比B更匹配"这种相对顺序。

Rank-KL的核心思路是蒸馏。

蒸馏*:让一个能力强但运行代价高的"老师"模型,把它的判断结果教给一个运行代价低的"学生"模型,学生尽量模仿老师的输出规律,从而在不牺牲太多效果的前提下换取效率。

具体做法是,拿重排序模型(老师)给这组五张候选图打的分,和嵌入模型(学生)用向量相似度算出的分,分别转换成两组概率分布,然后用KL散度衡量这两组分布之间差了多少,训练目标就是让学生的分布尽量贴近老师的分布。

KL散度*:一种衡量两个概率分布相似程度的数学指标,数值越小说明两个分布越接近。

这个设计的巧妙之处在于,它不是简单地告诉学生"哪个对哪个错",而是把老师那种"精细排序的感觉"整体传递过去。如果老师认为L4比L3好、L3比L2好,学生的向量空间里也要呈现出同样的排序关系,而不只是记住"L5是对的,其他都是错的"这种粗糙结论。

这就像带一个新学徒品酒。如果只告诉他"这瓶合格,那瓶不合格",他永远学不会分辨"合格里也有更好和差一点的"。但如果师傅把自己对十瓶酒从最好到最差的完整排序讲给他,并解释每一瓶为什么排在这个位置,学徒学到的就是一整套细腻的判断标准,而不是一个简单的二元开关。如果不这样做,只用对错两类标签训练,学徒(也就是嵌入模型)永远只会做"及格线"判断,遇到两瓶都及格但明显有差距的酒,他就懵了,这恰恰就是论文开头那个案例里嵌入模型分不清A和B的原因。

论文还做了一个额外的诊断实验,很有意思。他们测试了嵌入向量在不同维度(从512到1536)下的表现,发现"替换属性"这种粗粒度任务几乎不受维度影响,但"交换属性"这种需要精细绑定关系的任务,维度越大表现越好。这说明压缩向量的过程本身就在悄悄丢掉一部分精细信息,维度越小丢得越多,这也印证了为什么要专门做蒸馏来补救这个损失。

**实验结果:重排序模型涨了10.7分,嵌入模型也稳步提升**

说了这么多设计思路,数据说话才是硬道理。

论文在三个专门测试组合推理能力的基准上做了评测,分别是COLA(测试属性物体绑定关系)、SUGARCREPE++(测试五种细粒度扰动的敏感度)、NEGBENCH(测试对否定句的理解)。

在重排序模型这条线上,CORE-RERANKER-8B拿到了82.7%的综合平均分,比此前最强的Jina-Reranker高出10.7个百分点。这里有个额外发现值得展开说说:现有的一些重排序模型微调方法会严重破坏模型对否定句的敏感度。比如Qwen3VL-Reranker-8B在NEGBENCH上只有0.261分,远低于它没微调之前的基础模型(0.739分)。这相当于本来会做的题,微调之后反而不会做了。而CORE-RERANKER-8B在NEGBENCH上拿到0.698分,基本保住了原来的水平,同时其他任务还在涨分。这说明常规的微调方式存在一个隐藏代价,专门做好否定敏感度需要在训练数据里专门纳入这方面的考量,不能只顾着优化组合推理能力。

在嵌入模型这条线上,CORE-EMBED-8B拿到0.666的综合平均分,是所有被测嵌入模型里最高的,比它的底座模型VL-EMB-8B(0.609分)提升了5.7个百分点。虽然这个提升幅度没有重排序模型那么夸张,但论文也坦诚地指出,这恰恰说明蒸馏只能部分地把重排序模型的能力转移到嵌入空间里,想要完全打通这道墙还有距离。

更让人在意的是,这种训练带来的提升不是"死记硬背"式的,它能泛化到完全没参与训练的场景。在MCMR这个多条件检索基准上(跟组合数据合成流程完全无关的独立测试集),CORE-EMBED-8B把R@1指标从0.375提升到0.412,MRR@10从0.469提升到0.506。同时,在COCO和Flickr30K这两个经典的通用图文检索基准上,性能没有出现下降,甚至部分指标还有提升。这说明这次训练不是拆了东墙补西墙,通用检索能力保住了,组合推理能力还长了上去。

论文里还专门做了一组对照实验,验证Rank-KL确实比另外两种训练目标更好用。用同样的数据、同样的底座模型、同样的训练预算,对比对比学习、CoSENT和Rank-KL三种目标,结果是CL(对比学习)在综合平均分上还不如不训练的原始模型(0.553对0.604),相当于训练反而带来了负作用。CoSENT有所提升(0.593),但不及原始模型的某些子项。只有Rank-KL全面超过了原始模型(0.641对0.604),而且在专门构建的分级验证集上拿到了最高的NDCG@10分数(0.850)。

NDCG@10*:一种衡量排序质量的指标,分数越高说明模型给出的候选排序越接近理想排序,常用于搜索和推荐系统的效果评估。

这组对比结果很有说服力,它直接回答了"为什么选Rank-KL"这个问题:能用上多少层级信息,训练效果就有多少提升,CL完全不看层级结构,效果最差;CoSENT看了层级的相对顺序,效果中等;Rank-KL把老师模型给出的具体分数分布都学过来了,效果最好。

**写在后面**

读完这篇论文,一个让我意外的点是,这场"AI分不清红盘子和黑盘子"的问题,根源竟然不是模型看不懂图,而是打分方式太粗糙。这多少有点颠覆直觉,因为我们通常会下意识地把AI犯错归结为"它还不够聪明",但这篇论文用了一个很干脆的实验证明,同一个大脑,换一种输出习惯,立刻就变聪明了。这提示我们,评估AI能力的时候,光看它最终给出的分数或答案可能不够,还要看它中间那套"表达机制"有没有把它真正拥有的判断力憋住。

另一个值得单独说的细节是,论文提到用微调过的重排序模型当老师效果反而不如用没微调的原始重排序模型当老师。研究团队给出的解释是"分数尖锐化":微调之后的模型学会了给出非常自信、非常极端的分数(几乎就是0和1),但这种自信恰恰抹掉了层级之间那种细腻的过渡感,而这种过渡感正是蒸馏最需要传递的东西。这个反直觉的发现提醒人,有时候一个"更专业"的老师,反而因为过于确定,丢失了教学生所需要的那种模糊的、有层次的信息。这跟教育里常说的一个道理很像,一个特别自信、说话总是非黑即白的老师,未必比一个愿意讲"这个介于对错之间"的老师教得更好。

这篇论文没有解决的问题也很明确,它自己也说了,嵌入模型的提升幅度明显小于重排序模型,COLA这个最难的任务上嵌入模型几乎没什么进步。这说明"把重排序模型的判断力塞进一个向量里"这件事,本身可能存在某种理论上限,而不只是训练方法不够好。这个上限到底在哪,要靠什么办法打破,恐怕是留给后续研究者的一道真正的题。

Q&A

Q1:CORE框架解决的核心问题是什么?

A:MLLM嵌入模型(把图文压缩成向量再比相似度的检索方式)经常分不清属性和物体的组合关系,比如"红盘子配黑椅子"和"黑盘子配红椅子",但同一个模型用重排序方式(直接对比图文再打分)却能分清楚,CORE就是把重排序模型的这种判断力蒸馏给嵌入模型。

Q2:Rank-KL和普通对比学习训练方式有什么不同?

A:普通对比学习只区分"对"和"错"两类,所有错误样本一视同仁。Rank-KL则让嵌入模型模仿重排序模型打出的五级精细分数分布,保留"错得多严重"这种层次信息,实验显示Rank-KL是唯一让综合表现超过训练前基线的训练目标。

Q3:CORE训练出来的模型效果如何?

A:CORE-RERANKER-8B在三个组合推理基准上综合得分82.7%,比此前最好的重排序模型高10.7个百分点;CORE-EMBED-8B在嵌入模型里综合得分最高,且在完全独立的MCMR检索基准和COCO、Flickr30K通用检索任务上都没有掉分。

作者声明:作品含AI生成内容
举报/反馈
Share to: Weibo Qzone
Interested in cooperating on this story?
We will get back to you within 1 business day
Leave a Message