对比学习比如CLIP的文本编码器有一个问题,它只见过图文对数据,在数万亿token文本上训出来的LLM和它比,语义理解的深度和广度根本不是一个量级。 很自然会想到,现在LLM这么强,直接用Llama来替换CLIP的文本编码器不就行了?微软和同济大学的团队在这篇论文里就做了这个实验,结论是:行不通。 原因有点出乎意料。他们设计了一个叫CRA的指标来衡量文本编码器的区分能力。给一堆图片描述,能不能区分哪几条说的是同一张图、哪几条说的是不同图。CLIP的文本编码器CRA是66%,Llama3-8B直接上线只有18.4% 为什么LLM反而更差?因为自回归训练的本质是预测下一个token,模型的输出特征天然是为“接下来会出现什么词”服务的,完全没有被优化成能区分不同语义的嵌入向量,discriminability极差。所以LLM知识丰富是真的,但它的输出形式根本不适配对比学习的需求 知道了问题在哪,这篇论文提出的核心思路就是先改造LLM,再用,分两阶段进行。 1️⃣第一阶段叫Caption对比微调。把Llama3的因果注意力机制改成双向的,先用掩码预测任务MNTP warmup一下,再用SimCSE对比学习来训练。同一张图的不同caption是正样本对,不同图的caption是负样本对。 用LoRA做高效微调,只训练一个epoch,CRA就从18.4%飙到了73.0%,超过了原始CLIP文本编码器。为了不把LLM原本的语言能力训坏,还混入了通用文本数据 2️⃣第二阶段才是LLM2CLIP:冻结所有LLM的梯度,在LLM输出后加几层轻量的adapter,然后只训练CLIP的视觉编码器和这些adapter。视觉编码器对齐的目标,从原来的CLIP文本特征换成了LLM输出的、信息密度高得多的特征向量。 结果在短文本检索,Flickr30K的图到文准确率从89.7升到92.0;长文本场景图到文从91.9升到98.6,文到图从89.3升到99.0等等。 最强的是跨语言,EVA02-L在中文Flickr检索上的图到文准确率原本只有4.4%(这很正常,它压根没见过中文数据),但接上LLM2CLIP之后直接跳到86.9%,超过了那些专门用亿级中文数据训练的模型。 因为LLM的表示空间天然编码了多语言的语义,视觉编码器对齐了LLM的特征之后,就间接继承了这种能力。