← 返回 PaperDaily
视觉与图像
零样本图像描述卡壳3年?3个检查点把CIDEr拉到117.6,无需任何配对数据
零样本图像描述三年没挪窝,这篇论文用多检查点对齐评分框架,推理阶段把CIDEr从108.0干到117.6。不重训描述器、不吃配对数据,全靠把评分器插在更多位置上——早该这么干了!
龙哥读论文
阅读 4
查看原文
原论文信息如下:
零样本图像描述(ZIC)从2024年IFCap把COCO Karpathy CIDEr推到108.0后,赛道就陷入“百花齐放,但谁也没跑远”的僵局。各路方法在检索、过滤、解码上修修补补,指标仍在108附近打转。唯一跳出数字的NES,靠Stable Diffusion生成合成图像做训练增强才摸到109.9,属于“作弊”式突围。
为什么卡壳?这篇来自越南胡志明市经济大学团队的工作给出了扎心诊断:整个流水线里,图像和文本的对齐评分只在检索那一刻被计算了一次,之后就再也没人管了。检索出来啥就是啥,描述器生成光束时只认语言模型的概率,完全不看候选描述跟图片对不对得上。这就像相亲只看照片就决定结婚,婚后全靠语言模型脑补——那能不翻车吗?
这篇论文提出的Adjudicated Captioning框架,思路说白了就一句话:在流水线的多个检查点都安排上对齐评分,而不是只信检索那一次。具体干了三件事:换一个更强的检索编码器、在检索和生成之间插一个交叉注意力验证器、在输出端挂两个自监督学习的重排序器。全程不重训描述器,不用任何配对图像-文本标签,纯推理阶段动手,就把COCO Karpathy CIDEr从108.0拉到了117.6,顺带把SPICE也推到了21.9,甚至超过了有监督的ClipCap基线。
这篇文章就来拆一拆,这套多检查点对齐评分到底是怎么设计的,每个组件各自解决了什么问题,以及这个思路除了图像描述之外还能往哪儿搬。
先看整体对比图,感受一下从单检查点到多检查点的变化:
问题背景及相关工作:一个“单点评分”的结构性困局
先把背景交代清楚。零样本图像描述这个方向,严格设定下要求描述器只见过文本语料,不能见配对图像-文本数据。但因为推理时总得有个图文对齐的信号,所以大家约定俗成允许使用外部冻结的、在配对数据上预训练过的评分器——比如CLIP。IFCap就是这个赛道的标杆:用CLIP ViT-B/32做检索,把检索到的文本当软提示和硬提示喂给GPT-2,COCO Karpathy测试集CIDEr 108.0,这个纪录保持了近两年没人动。
回顾一下这条赛道上各家的做法:ZeroCap和MAGIC在解码过程中逐步用CLIP分数重新打分部分序列;CapDec在训练时给文本特征加高斯噪声,让映射网络在推理时面对图像特征也不慌;DeCap干脆扔掉前缀直接解码CLIP空间;ViECap加实体感知硬提示;MeaCap加记忆库;IFCap用图像式噪声注入加频率过滤实体。这些方法各有各的巧思,但有一个共同的结构性特征:图文对齐关系只在初始检索那一步被评分一次,之后解码器就全靠语言模型概率自嗨了。
这个设计在早期没啥问题,因为CLIP就是当时能用的最强图文匹配模型。但随着OpenCLIP的ViT-bigG/14这类更大规模、在LAION-2B上训练的编码器出现,大家习惯性地还在用ViT-B/32做检索底座。论文里做了一个很有意思的测量:在IFCap的检索结果上,检索编码器的余弦相似度和BLIP的交叉注意力匹配分数之间的排序相关性只有斯皮尔曼ρ≈0.4。翻译成人话就是:两个评分器对“哪条检索和图片最匹配”的看法大约六成时间不一致。单靠一个双编码器打分,检索池子里的噪声相当大。
再加上输出端的问题:描述器生成20条候选光束,最后选哪条完全看GPT-2的log概率。GPT-2是个语言模型,它觉得“通顺”的句子不一定和图片内容对得上。论文里观察到,在输出端加一个冻结的图文评分器来选,大约35%的情况下会选出和语言模型概率排序不一样的候选,而且只要选出来的不一样,CIDEr就会涨。这说明语言模型概率这个选择标准,确实是漏掉了大量视觉接地信息。
这条赛道上还有一拨人走的是“曲线救国”路线:既然严格文本训练推不动,那就用Stable Diffusion把训练语料里的每一条caption渲染成一张合成图,然后在合成图+文本对上训练。SynTIC到了101.1,PCM-Net用补丁级跨模态混合修补渲染质量到了103.8,NES用注意力级负实体抑制最高到了109.9。这些方法确实有效果,但代价是训练时要额外生成百万级图像,而且改了描述器的权重。本文提出的框架不需要生成任何图像,纯推理阶段在冻结的IFCap描述器上加组件,CIDEr还比NES高了7.7个点。相当于别人又炼丹又炼器才勉强涨了1.9,这边直接换了个打法就超过去了。
方法概述:四阶段流水线,三个对齐检查点
整个框架是四阶段流水线,从输入到输出依次是:更强的双编码器检索、交叉注意力验证器、不变的IFCap描述器、学习型光束重排序器。先看整体的架构图:
逐段拆解每个阶段,看清楚每个模块的输入、输出和承担的职责。
阶段1:用ViT-bigG/14替换ViT-B/32做检索
IFCap原来用OpenAI CLIP ViT-B/32(1.51亿参数,400M图文对训练)做检索编码器。本文直接换成OpenCLIP ViT-bigG/14(约25亿参数,LAION-2B训练),图片编码、文本编码和语料库索引全部来自这个模型。这是一个很朴素的“大力出奇迹”操作,但论文的消融实验显示,单是这一步替换就贡献了+3.6 CIDEr,是全部组件里最大的一项收益。计算公式很简单:对测试图片I,从566,747条训练描述里按余弦相似度取前9个候选。
为什么换编码器效果这么明显?因为双编码器的检索质量直接决定了后续所有环节的上限。ViT-B/32是2021年的模型,ViT-bigG/14是2023年的模型,中间隔了整整一代CLIP缩放规律的红利。检索索引这么多年没人更新过,这本身就挺离谱的——计算机视觉其他领域早就把骨干网络换了一茬又一茬了。
检索出来的前9个候选,在进入描述器之前,先经过一个冻结的交叉注意力验证器重新打分,只保留前5个。这个验证器用的是BLIP的图文匹配头(ITM head),输出一个(0,1)之间的软max匹配分数。论文里测量了验证器分数和检索编码器余弦在全部5000张测试图上的排序相关性:斯皮尔曼ρ≈0.41±0.18(标准差)。这个数字说明两个评分器之间的信息重叠度不高,验证器确实能提供双编码器给不了的信息——毕竟双编码器是分别编码图片和文本再算内积,BLIP的交叉注意力是让文本token真正去看图片区域的,两者的对齐建模能力不在一个量级。
这里有一个细节值得注意:IFCap的实体过滤器原本的阈值是K=5/L=9,即一个名词要出现在9条检索描述中的至少5条里才被放进硬提示。验证器把检索池从9缩到5之后,如果还用K=5就要求所有5条检索都提到同一个名词,硬提示会几乎为空。论文把阈值重新标定到K=3/L=5,准入比例从5/9≈56%调整到3/5=60%,保持了相近的实体进入率。这个重标定不是玄学调参,而是有代数依据的:在L=5的条件下,K=3是离原比例最近的整数阈值。
这个模块的输入是测试图片和前9条检索描述,输出是验证器裁决后的5条检索池。这个检索池同时送给后面的描述器做软提示和硬提示,也送给阶段4的MemAttend做记忆token。有意思的是,如果把验证器单独拎出来用(不重标K),或者只重标K不用验证器,效果都是负的——一个把池子缩小但排序不变,一个把阈值改了但池子还是原来那么吵。只有两者配合,才能起到“1+1>2”的效果。
图像描述卡的瓶颈:为什么2024年后零样本描述生成再无进步?
先看一个让人哭笑不得的现象。零样本图像描述(Zero-Shot Image Captioning,简称ZIC)这个赛道,从2024年IFCap把COCO Karpathy测试集的CIDEr刷到108.0之后,将近两年没有任何严格设定下的方法能突破这个数字。CIDEr(Consensus-based Image Description Evaluation)是图像描述领域最常用的评估指标,它衡量生成描述与人类参考描述之间的n-gram一致性,值越高代表描述质量越好。唯一越过这道线的NES(Negative Entity Suppression),还是靠Stable Diffusion生成合成图像来训练增强才勉强摸到109.9,严格来说已经不属于"零样本"范畴了。
为什么卡壳?这篇论文给了一个非常扎心的诊断:整个流水线里,图像和文本的对齐评分只在检索那一刻被计算了一次,之后就再也不看了。这就像相亲只看了一张照片就决定结婚,中间再也不见面,婚后过得怎么样全靠语言模型自己脑补——那能不翻车吗?
展开说,现有严格零样本描述流水线有两个结构性的弱点。第一,检索用的双编码器(比如CLIP)是分别编码图片和文本再算余弦相似度,这种独立嵌入的方式天生没有交叉注意力,对分布外图片的排序只能说"大致靠谱"。第二,描述器生成光束(beam)时,选择最终描述只依赖语言模型(这里是GPT-2)的log概率,语言模型觉得"语法通顺"的句子未必和图片内容对齐。论文里做了一个很有说服力的统计:在输出端用一个冻结的图文评分器来重新选择候选,大约35%的情况下会选出和语言模型概率排序不一样的描述,而且只要选的不一样,CIDEr就涨。说明语言模型概率这个标准确实漏掉了大量视觉信息。
更离谱的是,这个赛道的从业者们对"换一个更强的检索底座"这件事集体无感。OpenCLIP ViT-bigG/14这种25亿参数、在LAION-2B上训练的编码器早就出来了,但大家还是习惯性地用2021年的ViT-B/32做检索。论文里做了一个简单的替换实验:仅仅把检索编码器换掉,CIDEr就涨了3.6个点,是全部组件里最大的一项收益。相当于大家都在研究怎么把饭菜做得更好吃,结果发现锅早就该换了。
解法拆解:三个检查点、两个冻结评分器、两个微型重排序器
本文提出的Adjudicated Captioning框架,核心思路就一句话:在流水线的多个检查点做对齐评分,而不是只在检索时做一次。整个框架由四个阶段组成,每个阶段各司其职,下面逐一拆解。
阶段一:换用更强的检索编码器。检索公式很简单:对测试图片I,从566,747条训练描述里按余弦相似度取前9个候选。IFCap用的是OpenAI CLIP ViT-B/32(1.51亿参数,400M图文对训练),本文直接换成OpenCLIP ViT-bigG/14(约25亿参数,LAION-2B训练),图片编码、文本编码和语料库索引全部来自这个模型。这一步的收益最大,+3.6 CIDEr,是免费午餐中的免费午餐。
阶段二:交叉注意力验证器。检索出来的前9个候选,在进入描述器之前,先经过一个冻结的交叉注意力验证器重新打分,只保留前5个。这个验证器用的是BLIP的图文匹配头(ITM head,Image-Text Matching head,即图像-文本匹配头),输出一个(0,1)之间的softmax匹配分数。论文测量了验证器分数和检索编码器余弦在全部5000张测试图上的排序相关性:斯皮尔曼ρ≈0.4。这个数字意味着两个评分器的看法大约六成时间不一致。双编码器是各自嵌入再算内积,而BLIP的交叉注意力让文本token真正与图像区域交互,两者的对齐建模能力不在一个量级。
有一个细节必须注意:IFCap的实体过滤器原本的阈值是K=5/L=9,即一个名词要出现在9条检索描述中的至少5条里才被放进硬提示。验证器把检索池从9缩到5之后,如果还用K=5就要求所有5条检索都提到同一个名词,硬提示会几乎为空。论文把阈值重新标定到K=3/L=5,准入比例从5/9≈56%调整到3/5=60%,保持了相近的实体进入率。这个重标定在L=5的条件下,K=3是离原比例最近的整数阈值。
阶段三:不变的IFCap描述器。这个阶段就是原封不动的IFCap,描述器本身不重训、不微调。它的作用是把图片特征和验证后的检索池作为软提示和硬提示,喂给GPT-2生成一个20宽的beam。
阶段四:学习型光束重排序器。这是整个框架中唯一需要训练的部分,包含两个互补的模块。TriFuse是一个只有113个参数的MLP(多层感知机),输入每个候选的3维特征向量——GPT-2的log概率、检索编码器的余弦相似度、验证器的匹配分数,经过两层宽度为8的隐藏层(GELU激活)输出一个标量分数。MemAttend则是一个参数稍大的记忆增强Transformer编码器(17.4K参数),它让20个beam候选token交叉注意力到5个验证后的检索记忆token上,建模候选之间的交互关系。两个模块的分数做z归一化后以β=0.75的凸组合选出最终描述。
核心机制:Borda共识蒸馏如何做到无配对数据训练
TriFuse和MemAttend是流水线里唯一的可训练模块,它们的训练方式堪称"空手套白狼"——不需要任何配对图像-文本标签,也不需要任何人工标注的参考描述。整个过程叫Borda共识蒸馏(Borda-consensus distillation)。
先解释Borda共识是什么。Borda计数是一种经典的投票排序方法:每个投票人对候选人给出一个排序,第1名得K-1分,第2名得K-2分,以此类推,最后统计总分。本文把这个思想用在了光束重排序上——三个冻结的评分器(GPT-2语言模型、检索编码器、验证器)各自对20个beam候选输出一个分数,排序后每个候选在三个评分器下各有一个排名。Borda共识分数就是三个排名分值的平均值。
这个分数再经过softmax变成伪标签分布,作为训练目标。TriFuse的训练损失是列表式softmax交叉熵(ListNet风格),优化器是Adam,学习率1e-2,训练100个epoch。整个训练过程在一张GPU上不到一分钟就能完成,因为TriFuse只有113个参数,MemAttend也就17.4K个参数。这个训练开销对于深度学习领域来说几乎可以忽略不计。
为什么Borda共识能work?直觉是这样的:一个候选如果同时被语言模型(认为语法通顺)、检索编码器(认为与图片语义相关)、验证器(认为与图片区域匹配)三方认可,那它大概率是一个高质量的描述。学习预测这个共识分数,本质上是让重排序器模仿三个专家投票的"综合判断",从而选出比单一评分器更靠谱的结果。论文的实验也印证了这一点:如果用一个固定的线性融合(比如α·LM概率 + (1-α)·检索余弦),效果不仅比不上学习型重排序器,连"无学习固定融合"基线(在阶段4直接对三个分数做算术平均)都打不过。因为线性融合的权重是全局的超参数,而TriFuse学习的是一种基于每个候选特征组合的非线性函数,能捕捉不同评分器在各情况下的相对优劣。
结果说话:+9.6 CIDEr从何而来,各部分贡献几何
先看这张按训练体制分组的COCO Karpathy测试集CIDEr对比图,非常直观:
完整的结果表如下。左表是三类方法的COCO Karpathy测试集对比,右表是幻觉评估指标(CHAIR,即Caption Hallucination Assessment with Image Relevance,图像相关性描述幻觉评估):
消融实验分解了每个组件的贡献,来看表VII的全因子消融:
这里有一个有趣的细节:训练无关的固定融合基线(表IV中的Training-free行)已经能达到115.8 CIDEr,也就是说+9.6的增益中有+7.8来自纯粹的架构干预(换检索器+验证器+阈值重标定),剩下的+1.8才来自学习型重排序器。这从另一个角度说明:零样本描述生成的瓶颈确实不在语言模型本身,而在于对齐评分的设计。重排序器虽然只贡献了1.8个CIDEr,但它是在固定融合之上的增量,而且在SPICE、BLEU-4、METEOR等所有指标上都有一致提升,说明它不是噪声,而是学到了三个评分器之间的互补关系。
跨数据集迁移方面,同样的推理配方(阶段1+2+4的栈),在Flickr30k上提升+8.1 CIDEr,在NoCaps上整体+5.7,且in-domain、near-domain、out-domain三个子集都有稳定增益。特别值得注意的是out-domain子集涨了+5.9,通常COCO训练的描述器在分布外场景退化最严重,这里反而增幅最大,说明多检查点评分对分布漂移有一定的抵抗能力。
一个值得关注的消融是验证器底座的替换实验(表V):如果把COCO微调过的BLIP-ITM头换成Flickr30k微调的版本(训练分布与COCO不重叠),CIDEr仍然能达到114.0,比IFCap高6.0。这说明架构干预本身的收益大于验证器对COCO的特异性适应,但确实有约3.6个点的收益与Verifier在COCO上的微调相关。论文对这一点很坦诚,没有过度宣称。
可复用的思维:多检查点对齐评分还能用在哪里?
这套"多检查点对齐评分"的思路其实可以迁移到很多场景,不局限于图像描述。
最直接的一个是文档检索增强生成(RAG)。当前的RAG管线和ZIC高度相似:检索一次、把内容拼进上下文、让LLM生成答案,生成过程中不再校验检索到的文档和最终答案之间的对齐关系。如果把本文的思路搬过去,可以在生成阶段之后加一个"答案-文档相关性评分器",用LLM自身的概率加上检索模型的分数做一个Borda共识重排序,选出与原文更一致的答案。最近的研究表明,RAG系统里"幻觉"的一个重要来源就是检索到的文档与最终答案没有二次验证——本文的方法恰好提供了一个极低成本(只需要113参数的小MLP)的修复路径。
龙迷三问
这篇论文到底在解决什么问题?零样本图像描述长期卡在CIDEr 108.0,本文提出多检查点对齐评分框架,用更强检索编码器、交叉注意力验证器和自监督光束重排序器,不重训描述器、不用配对数据,将COCO Kar…
这篇工作最值得看的点是什么?COCO Karpathy测试集CIDEr 117.6/SPICE 21.9,超过IFCap +9.6 CIDEr,超过合成图像增强方法NES +7.7 CIDEr,甚至超过配对监督基线ClipCap(113.1);跨域迁移Flickr3…
这篇工作的边界或风险在哪里?优点:(1) 清晰揭示严格ZIC领域长期停滞的架构性原因——单检查点对齐评分,并提出多检查点评分范式;(2) 训练机制完全自监督,不违反严格文本-only约束,仅需约17.5K可训练参数且训练极快;(3) 训练无关的固定融合基线和完整管道…
如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~龙哥点评
论文创新性分数:★★★★☆
在严格零样本图像描述生成框架下,通过在检索、验证和输出三个环节分别增设更强的冻结对齐评分器(OpenCLIP ViT-bigG/14检索编码器、BLIP交叉注意力验证器)以及自监督训练的小参数光束重排序器(TriFuse MLP与MemA…
学术研究价值:★★★★☆
在严格零样本图像描述生成框架下,通过在检索、验证和输出三个环节分别增设更强的冻结对齐评分器(OpenCLIP ViT-bigG/14检索编码器、BLIP交叉注意力验证器)以及自监督训练的小参数光束重…
稳定性:★★★☆☆
优点:(1) 清晰揭示严格ZIC领域长期停滞的架构性原因——单检查点对齐评分,并提出多检查点评分范式;(2) 训练机制完全自监督,不违反严格文本-only约束,仅需约17.5K可训练参数且训练极快;(3) 训练无关的固定融合基线和完整管道…
适应性以及泛化能力:★★★☆☆
优点:(1) 清晰揭示严格ZIC领域长期停滞的架构性原因——单检查点对齐评分,并提出多检查点评分范式;(2) 训练机制完全自监督,不违反严格文本-only约束,仅需约17.5K可训练参数且训练极快;(3) 训练无关的固定融合基线和完整管道…
硬件需求及成本:★★★☆☆
单图额外推理开销约2.5秒(L4 GPU),其中ViT-bigG/14图像编码+top-9余弦约0.05秒,BLIP-ITM验证重排约1.0秒,beam特征提取约1.4秒,TriFuse/MemAttend前向亚毫秒;一次性语料编码约5 …
复现难度:★★★☆☆
现有材料未确认完整代码、配置、数据处理脚本和权重是否齐备,复现难度暂按中性评价。
产品化成熟度:★★★☆☆
优点:(1) 清晰揭示严格ZIC领域长期停滞的架构性原因——单检查点对齐评分,并提出多检查点评分范式;(2) 训练机制完全自监督,不违反严格文本-only约束,仅需约17.5K可训练参数且训练极快;(3) 训练无关的固定融合基线和完整管道…
可能的问题:优点:(1) 清晰揭示严格ZIC领域长期停滞的架构性原因——单检查点对齐评分,并提出多检查点评分范式;(2) 训练机制完全自监督,不违反严格文本-only约束,仅需约17.5K可训练参数且训练极快;(3) 训练无关的固定融合基线和完整管道…
*本文仅代表个人理解及观点,不构成任何论文审核或者项目落地推荐意见,具体以相关组织评审结果为准。欢迎就论文内容交流探讨,理性发言哦~ 想了解更多原文细节的小伙伴,可以点击"阅读原文",查看更多原论文细节哦!