
1. 从“看图说话”到“多模态理解”VL-PTMs的演进脉络如果你在几年前问我计算机视觉模型和自然语言处理模型能不能“坐在一起”好好聊天我可能会觉得这想法有点科幻。但今天这已经是现实并且正在深刻改变我们与机器交互的方式。Vision and Language Pre-Trained Models简称VL-PTMs或多模态预训练模型就是这场变革的核心引擎。它们不再是简单的“看图说话”工具而是具备了初步的跨模态理解、推理甚至创造能力。上一期我们梳理了VL-PTMs的早期探索和一些奠基性工作这一期我们将深入那些更复杂、更强大也更具实用价值的模型架构与算法思想。理解这些模型不仅是跟上技术前沿更是为了在构建自己的多模态应用时能做出更明智的技术选型避开我踩过的一些坑。2. 融合架构的集大成者ViLT与ALBEF的对比与选型当早期的VL-PTMs还在纠结于如何用目标检测器如Faster R-CNN提取区域特征导致模型臃肿、效率低下时一个根本性的问题被提了出来我们真的需要这么重的视觉编码器吗答案催生了两种截然不同的轻量化思路分别以ViLT和ALBEF为代表。2.1 ViLT极致的简洁与“词袋”式视觉处理ViLTVision-and-Language Transformer的核心理念非常激进它完全抛弃了任何额外的、预训练的视觉编码器。图像输入被简单地分割成一个个图像块Patch然后通过一个可学习的线性投影层将这些图像块的像素值直接映射成一个向量序列。这个过程和BERT处理文本时将单词通过词嵌入Word Embedding变成向量在思想上如出一辙。注意这里有一个非常关键的细节。ViLT使用的图像块划分借鉴了Vision TransformerViT的思想。但ViT的Patch Embedding通常是在大规模图像分类数据集如ImageNet上预训练好的而ViLT的视觉投影层是从头开始在多模态预训练任务中与文本端一起学习的。这意味着模型需要自己学会如何将原始的像素信息“翻译”成对语言理解有用的特征。这种设计带来了巨大的优势极致的速度与参数效率模型参数量大幅减少训练和推理速度显著提升。真正的端到端视觉和语言信号在最早的阶段就进行了融合有利于学习更紧密的跨模态对齐。但代价也同样明显训练数据饥渴由于视觉特征是从头学起ViLT需要海量的图文对数据才能达到不错的性能。如果数据量不足模型对视觉细节的理解能力会较弱。对细粒度理解不足将图像视为“词袋”缺乏对物体、属性等结构化信息的显式建模在一些需要精细定位或属性推理的任务上如VQA中的细节问答可能力不从心。实操心得如果你面对的是一个数据资源相对有限或者对推理速度、部署成本极其敏感且任务对细粒度视觉理解要求不高的场景例如简单的图像文本匹配、粗粒度的图像描述生成ViLT架构是一个值得考虑的轻量级选择。但在启动前务必评估你的数据量是否足以支撑其训练。2.2 ALBEF动量蒸馏与更早的模态融合ALBEFAlign before Fusing走了另一条路。它没有完全抛弃预训练的视觉编码器而是使用了一个轻量化的ViT如DeiT作为图像编码器。它的创新点不在于视觉编码器本身而在于其训练框架特别是“动量蒸馏”和“对齐后再融合”的思想。动量编码器与蒸馏ALBEF维护了两个模型一个在线模型参数实时更新和一个动量模型参数是在线模型的移动平均。在训练时对于同一个图文对动量模型会生成一个“软”的、更平滑的跨模态相似度目标。在线模型不仅要去拟合真实的“硬”标签如图文是否匹配还要去逼近动量模型产生的“软”目标。这个过程就像一位经验丰富的老师动量模型在指导新手学生在线模型能有效缓解数据中的噪声让模型学习到更鲁棒的表征。Align before Fuse在将视觉和语言特征送入多模态融合Transformer之前ALBEF先通过一个额外的对比学习任务让单模态的视觉特征和文本特征在向量空间里直接对齐。这相当于在深度融合前先让两种模态“认识一下”建立初步的对应关系使得后续的融合更加高效。下表对比了ViLT和ALBEF的核心特点特性维度ViLTALBEF视觉编码器无Patch投影层预训练ViT轻量核心创新极简的视觉端设计动量蒸馏训练框架训练效率参数量小但数据需求大需要维护动量模型稍复杂推理速度极快快数据需求非常大中等偏大细粒度理解较弱较强得益于预训练ViT适用场景轻量级匹配、粗粒度描述需要一定理解深度的VQA、检索等踩坑记录我曾在一个电商商品标题生成项目中尝试过ViLT。我们的商品图像背景复杂细节繁多。虽然ViLT训练很快但生成的标题总是倾向于描述最显眼的大物体对颜色、材质、特定花纹等属性捕捉很差。后来切换到基于ALBEF思想的模型并加入了针对属性的辅助预测任务效果才有了质的提升。这个教训是模型的选择必须与任务对视觉细节的要求深度匹配。3. 解锁零样本能力CLIP与ALIGN的范式革命如果说ViLT和ALBEF是在模型架构和训练技巧上做优化那么CLIP和ALIGN带来的则是一场范式级别的革命。它们不再局限于传统的“预训练-微调”模式而是开辟了“零样本”Zero-Shot和“提示学习”Prompt Learning的新战场。3.1 核心思想海量弱监督与对比学习CLIPContrastive Language-Image Pre-training和ALIGNA Large-scale ImaGe and Noisy-embedding的思路大道至简数据从互联网上收集海量的图像文本对。这里的文本不是精细的标注而是图像的“alt-text”、标题、描述等噪声很大的自然语言。架构使用两个独立的编码器——一个图像编码器如ViT或ResNet和一个文本编码器如Transformer。目标通过对比学习拉近匹配的图文对的向量表示推远不匹配的图文对。模型最终学会的是一个共享的、跨模态的语义空间。在这个空间里“一张狗的照片”的向量和“一只狗”这段文本的向量非常接近而和“一辆汽车”的文本向量则相距甚远。3.2 零样本预测如何让模型认识它从未见过的东西这是CLIP最神奇的地方。假设我们想让模型对一张图片做分类类别是“贵宾犬”、“吉娃娃”、“哈士奇”。传统方法需要收集这些狗类的标注数据来微调模型。而CLIP的做法是将类别标签构造成自然语言提示Prompt例如“一张贵宾犬的照片”、“一张吉娃娃的照片”、“一张哈士奇的照片”。用文本编码器得到这些提示句的向量。用图像编码器得到待分类图片的向量。计算图片向量与每一个提示句向量的余弦相似度。相似度最高的那个提示句对应的类别就是模型的预测结果。为什么这能work因为模型在预训练时已经见过无数包含“狗”、“照片”以及各种狗品种描述的图文对。它虽然没有被明确告知如何做“狗品种分类”但它学会了“贵宾犬”这个词的语义与某种视觉形态的强关联。通过提示工程我们只是“唤醒”了模型已有的知识。实操技巧提示工程Prompt Engineering。CLIP的性能对提示词非常敏感。“一张贵宾犬的照片”和“一只贵宾犬宠物”可能得到不同的相似度。常见的技巧包括使用多个提示模板例如[“一张{}的照片” “一个{}的剪影” “一幅{}的油画”]然后对多个提示的相似度取平均可以提升鲁棒性。加入上下文对于某些领域加入领域上下文更好如医疗图像“一张显示病变的X光片”。实践中我们通常会为任务准备一个提示词列表在验证集上测试选择效果最好的一组。这已经成为使用CLIP类模型的标配步骤。3.3 CLIP vs. ALIGN规模与噪声的较量CLIP和ALIGN在思想上同源但细节有差异CLIPOpenAI使用了4亿个精心筛选过的图文对数据质量相对较高。图像编码器探索了ResNet和ViT系列。ALIGNGoogle规模更大使用了18亿个噪声更大的图文对坚信“规模可以战胜噪声”。在架构上更简洁使用了纯Transformer的EfficientNet作为图像编码器。从效果上看在大规模下游任务上ALIGN因其巨大的数据量往往有微弱优势。但对于大多数开发者而言CLIP的开源生态更好相关研究和应用更丰富是入门和实践的首选。经验之谈不要只把CLIP当作一个零样本分类工具。它的图像和文本编码器是强大的特征提取器。我曾将其用于跨模态检索用文本搜图或用图搜文本无需微调效果立竿见影。异常检测计算产品图片与“正常产品”文本提示的相似度相似度过低则可能为异常。数据清洗为无标签图片生成伪标签或过滤掉图文不匹配的噪声数据。 将CLIP作为基础特征提取模块嵌入你的流水线常常能带来惊喜。4. 从理解到生成BLIP系列的统一架构演进前面的模型主要聚焦于理解Understanding判断图文是否匹配、回答关于图像的问题。而另一条重要的脉络是生成Generation根据图像生成流畅、准确的描述。BLIPBootstrapping Language-Image Pre-training系列模型则试图用一个统一的模型同时做好理解和生成两件事。4.1 BLIP v1三合一架构与自举数据过滤BLIP的核心设计是一个多任务模型它包含三个主要的“头”图像-文本匹配头ITM二分类判断图像和文本是否匹配。这是一个理解任务。图像-文本对比学习头ITC类似CLIP拉近匹配图文对的表示。这是对齐任务。语言建模头LM以图像和部分文本为条件自回归地生成下一个词。这是生成任务。这三个头共享同一个视觉编码器ViT和文本编码器但在Transformer层之后分叉。这种设计让模型在预训练时同时吸收三种任务的信号学到的表征既对齐又好用。但BLIP更关键的贡献在于其数据策略CapFiltCaptioning and Filtering。Captioning用预训练的生成模型为网络爬取的有噪声图像生成合成描述。Filtering用预训练的理解模型ITM过滤掉原始噪声数据和合成数据中图文不匹配的样本。将过滤后的高质量数据用于训练新的、更强的BLIP模型。这个过程可以迭代进行如同“自举”Bootstrapping用模型自己来提升训练数据的质量。这为解决多模态数据标注成本高、网络数据噪声大的问题提供了一个非常实用的框架。4.2 BLIP-2冻结大语言模型巧借Q-Former桥接BLIP-1虽然强大但预训练成本依然高昂。随着大语言模型LLMs如GPT、LLaMA展现出惊人的语言理解和生成能力一个自然的问题是我们能否直接利用这些冻结的、强大的LLMs为其注入视觉能力BLIP-2给出了一个优雅的答案。BLIP-2不再从头预训练一个庞大的多模态模型而是引入了Q-FormerQuerying Transformer作为视觉语言之间的“翻译官”或“适配器”。视觉端一个冻结的视觉编码器如CLIP的ViT或EVA-CLIP提取图像特征。Q-Former这是一组可学习的查询向量Queries。它们与图像特征通过交叉注意力进行交互“询问”图像中与文本相关的信息输出一组视觉感知的查询表示。语言端将这组查询表示线性投影后直接输入一个冻结的大语言模型如FlanT5、LLaMALLM将其视为特殊的视觉前缀Visual Prefix并在此基础上进行语言理解或生成。这样做的好处是颠覆性的大幅降低计算成本只需要训练轻量级的Q-Former参数约1亿视觉和语言的主干参数全部冻结。复用LLM能力直接继承了冻结LLM的所有知识、推理和指令跟随能力使其能完成复杂的视觉对话、推理等任务。模块化与灵活性可以轻松更换背后的视觉编码器或LLM适应不同需求。实战应用思考BLIP-2的架构已经成为当前多模态大模型如MiniGPT-4、LLaVA早期版本的主流范式。对于开发者而言它的意义在于提供了一条可行的路径如果你有一个现成的、强大的LLM无论是开源的还是通过API调用的想要为其增加视觉理解能力BLIP-2的“适配器”思想是最值得参考的蓝本。你可以基于一个预训练的Q-Former用自己领域的数据进行微调从而快速得到一个领域专用的视觉语言模型而无需承担从头训练的天文数字成本。5. 面向复杂推理的探索视觉语言模型如何“思考”早期的VQA模型更像是在做“模式匹配”从问题中找关键词再从图像中找对应的物体。但对于“为什么”、“怎么办”、“如果…会怎样”这类需要常识和逻辑推理的问题则束手无策。新一代的VL-PTMs开始尝试赋予模型初步的推理能力。5.1 思维链提示与视觉基础受文本领域思维链Chain-of-Thought CoT提示的启发研究者也在探索多模态的CoT。核心思想是让模型在给出最终答案前先生成一系列中间推理步骤的文本描述。例如面对问题“为什么这个人穿着雨衣”传统VQA模型可能直接输出“因为在下雨。”这可能是正确的但缺乏依据。具备CoT能力的模型可能输出“图像中天空乌云密布地面有反光的水洼行人都撑着伞。因此天气很可能正在下雨或刚下过雨。所以这个人穿着雨衣是为了防雨。”加粗部分就是模型“思考”的中间步骤。实现这种能力通常有两种方式在指令数据中显式包含CoT在微调或指令遵循数据中直接提供“问题-推理链-答案”的样例让模型学习这种输出格式。利用大语言模型的内部能力在BLIP-2这类架构中冻结的LLM本身可能就具备一定的CoT能力。当视觉适配器Q-Former提供了高质量的视觉信息后LLM能够自发地组织语言进行多步推理。5.2 从感知到认知模型需要什么样的训练要让模型进行可靠推理仅靠海量的图文对比数据是不够的还需要注入“知识”和“逻辑”。知识注入一些工作尝试将结构化知识图谱如ConceptNet与模型结合或者让模型在训练时阅读大量的纯文本知识如维基百科从而获得常识。数据构造创建需要多步推理的视觉问答数据集。例如GQA数据集中的问题被设计成需要理解物体属性、空间关系并进行逻辑组合“在桌子左边且是金属的物体是什么”。模块化设计有些模型显式地分为视觉感知模块、关系推理模块和语言生成模块让推理过程更加可解释、可控。当前局限与展望尽管有上述探索但当前VL-PTMs的推理能力仍然是脆弱、狭窄且不可靠的。它们可能在某个特定类型的问题上表现良好但泛化性差。真正的视觉逻辑推理需要模型建立对物理世界物体恒存性、重力、支撑关系等和社会常识意图、情感、习俗等的深刻理解这远非当前基于统计关联的预训练范式所能完全解决。这既是挑战也指明了未来研究的一个重要方向如何让模型从“看到关联”进化到“理解因果”。6. 实战指南如何为你的任务选择合适的VL-PTM面对琳琅满目的模型选择往往比调参更重要。以下是一个基于任务目标的快速选型决策树结合我个人的项目经验你的核心需求是零样本/少样本能力且任务偏向检索或分类是- 首选CLIP或ALIGN。它们是零样本领域的王者开箱即用。花时间在提示工程和数据清洗上收益最大。否- 进入下一步。你有充足的计算资源和标注/未标注图文数据且任务需要深度理解如复杂VQA、图文推理是- 考虑从BLIP或ALBEF这类性能强大的模型开始微调。如果数据噪声大BLIP的数据自举策略值得借鉴。否资源有限或数据少- 进入下一步。你的任务以生成为主如图像描述、视觉对话并且你希望接入一个现有的大语言模型是-BLIP-2的架构是你的最佳参考。寻找基于类似架构Q-Former/适配器的开源项目用你的数据微调解码器或适配器部分。否- 进入下一步。你对推理速度和模型大小有极端要求且可以接受一定的精度损失是- 可以尝试ViLT或更轻量化的变种。务必在目标数据集上验证其细粒度理解能力是否达标。否- 回到第2步重新评估数据获取或计算资源扩充的可能性。通用建议从开源实现和预训练权重开始Hugging Facetransformers库对许多VL-PTMs如CLIP、BLIP提供了良好支持是快速原型验证的起点。数据质量决定上限无论选择哪个模型清洗和构建高质量的训练数据或提示词都是最重要的环节。脏数据会迅速毁掉一个强大模型。分阶段评估不要只看最终的任务指标。评估模型单模态编码器的质量如图像特征检索的准确率、跨模态对齐的准确性有助于定位问题是出在视觉理解、语言理解还是融合模块上。多模态预训练的世界正在飞速发展新的模型和思想层出不穷。但万变不离其宗其核心目标始终是让机器能像人一样自然地理解和沟通这个由视觉与语言共同构成的世界。理解这些经典模型背后的设计哲学与权衡能帮助我们在技术浪潮中保持清醒做出最适合自己应用场景的选择。