仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接
专注AIGC领域的专业社区,关注微软&OpenAI、百度文心一言、讯飞星火等大语言模型(LLM)的发展和应用落地,聚焦LLM的市场研究和AIGC开发者生态,欢迎关注!
计算机视觉领域从传统的卷积神经网络(CNN)ResNet,到基于Transformer思想的VisionTransformer(ViT),再到在跨模态语义对齐上大放异彩的CLIP,直至如今具备复杂交互与生成能力的视觉语言模型(VLM),视觉建模正一步步向多模态、交互化、生成化的方向演进。本文将深入探讨这些模型的架构演变和设计理念,并结合近期发布的模型(如google/siglip和microsoft/Florence-2-large-ft)的具体实现和工程细节,展示从纯视觉模型到多模态交互系统的全链路进化。
关于这点,此前文章已经有所涉猎:
纯视觉编码器的起步与进化
ResNet:卷积时代的里程碑
ResNet凭借其残差连接结构,使深层网络训练变得稳定,有效捕获图像中局部与中尺度的特征。
作为纯视觉编码器,ResNet仅关注图像信息,从局部纹理到全局形状都能逐步提炼,但在捕获长程依赖和全局上下文上仍存在一定局限性。
VisionTransformer(ViT):自注意力带来的全局建模
ViT的诞生标志着视觉领域向Transformer架构的转变。ViT通过将输入图像划分成固定尺寸的patch(例如14×14或16×16),并用线性投影映射到高维向量空间,再送入多个Transformer编码层,从而实现全局信息的高效建模。
这种改写彻底突破了传统卷积的局限,其自注意力机制可以捕捉图像各部分之间远距离的依赖关系,但同时也要求预训练数据和计算资源足够充裕。
DaViT:基于ViT的形状优化与多阶段策略
在ViT的基础上,研究者们逐步发现单一阶段的patchtoken化存在一定的局限,因此涌现出多阶段、分层式的信息提取方法。微软的florance用的是基于DaVIT的技术
SoViT
以google/siglip模型为例
其视觉编码器(在配置中标记为\“siglip_vision_model\“)基于SoViT-400m架构:
预处理时将图像统一调整为384×384大小;
切分patch的尺寸为14,即每个patch尺寸较小、细粒度更高;
模型中hidden_size为1152,Transformer层数达到27层,每层采用16个注意力头,Feed-Forward层维度为4304。
这种“形状优化”不仅能在大规模数据上展现出更高性能,还提高了模型的计算效率和特征表达的鲁棒性。
总结来看,无论是ResNet等基于卷积的方法,还是ViT及其变体(如DaViT,SoViT),它们的主要目标都是从图像中提取出尽可能准确、语义丰富的特征表示。这为后续跨模态学习和文本生成提供了坚实的基础。
CLIP:双编码器实现跨模态对齐
双编码器设计理念
CLIP(ContrastiveLanguage-ImagePre-training)作为跨模态模型的代表,其核心架构是一个双编码器模型,即同时包含一个视觉编码器和一个文本编码器。
在视觉分支上,CLIP可以采用ViT或ResNet架构,将图像映射到一个语义嵌入空间;而文本编码器则利用Transformer结构对文本进行编码。
通过大规模图文配对数据的对比学习,两种编码器能够学到将图像和描述性文本映射到同一空间的表示,使得配对图文在空间中距离更近,而不匹配的图文距离较远。
训练与对齐机制
CLIP对比学习的关键在于构建有效的正负样本对,利用全局归一化策略对比所有的图文组合,从而实现全局性的跨模态对齐。
这种方法使CLIP不仅在零样本图像分类、图像-文本检索等任务中表现出色,还为后续多模态交互系统打下良好基础。
SigLIP:针对损失函数的改进实践
在CLIP架构基础上,SigLIP提出了一种基于sigmoid的损失函数,该方法避免了全局归一化计算,从而在批量大小上更为灵活。
SigLIP模型依然使用了ViT系列的视觉编码器(或其轻量化变体),并结合文本编码器,通过改进的损失函数在小批量下也能保持较好的对齐效果,这为多模态预训练提供了新的思路。
总体来说,CLIP的成功在于利用双编码器架构实现了图像与文本语义空间的同步构建,这也是从传统纯视觉模型向多模态融合迈出的重要一步。
视觉语言模型(VLM):多模态交互与生成新时代
从对齐到交互:能力的再升级
虽然CLIP解决了图像与文本信息的跨模态对齐问题,但其主要作用在于提取特征并进行匹配,无法直接生成文本或进行更复杂的交互。
视觉语言模型(VLM)在此基础上,将语言生成、指令理解、对话交互等功能融入模型中,使得系统能够完成从图像描述、对象检测到问答甚至对话生成等多种任务。
Florence-2:基于prompt的多任务VLM范式
以Microsoft发布的Florence-2系列模型为例,其最新版本Florence-2-large-ft正是在此方向上的代表作。
从模型配置文件中可以看出,其文本端和视觉端均经过精心设计:
文本编码部分使用标准的Transformer解码器,支持seq2seq的生成任务,以处理图像生成文本、标注和问答;
视觉编码器部分则采用了一种基于“davit”的架构,与传统ViT不同。Florence-2的视觉配置中显示,其模型类型为“davit”,并采用了多阶段的patch处理策略:
patch_size设置为[7,3,3,3],说明在不同阶段使用不同的patch尺寸以适应细粒度和全局特征提取;
对应的patch_stride、patch_padding和dim_embed分别设置为[4,2,2,2]、[3,1,1,1]和[256,512,1024,2048],这体现出典型的分层Transformer结构,使得模型能在捕获局部细节和全局语义上取得平衡。
这种设计不仅赋予模型强大的视觉感知能力,同时结合文本生成模块,Florence-2能够通过简单的prompt(例如\“\“表示目标检测)来执行复杂的视觉任务,涵盖图像描述、目标检测、对象分割等多种视觉场景。
实践中的细节与挑战:分辨率限制问题
在实际工程中,我们也需要关注模型实现过程中可能存在的技术细节。例如,客户反馈指出在Florence-2的代码中,当输入图像超过640×640分辨率时,可能会因内部数组预分配的问题导致模型识别效果变差或报错。
这种现象并非Transformer或ViT架构本身的局限,而更多是某些实现中对输入尺寸设定的硬性限制。一个合理的解决方案可能涉及检查代码中是否存在固定尺寸的数组边界、优化预处理以及调整内存分配策略。
此类工程细节在实际部署中必须引起重视,因为它既关系到模型性能的发挥,也涉及到应用的鲁棒性和用户体验。
技术层次递进与整体思路
我们可以将整个视觉模型发展历程抽象为一个层次递进的过程:
纯视觉编码器(ViT、DaViT、ResNet)
↓——(图像预处理和特征提取)CLIP——双编码器跨模态对齐↓——(结合视觉与语言语义构成统一嵌入空间)视觉语言模型(VLM,例如Florence-2)↓——(在对齐基础上引入文本生成、交互与多任务处理能力)
这种层级结构表达了一种能力的“叠加”:
第一层,我们只需理解图像;
第二层,通过跨模态对齐,我们让图像和文本在语义上互通;
第三层,则将生成与交互能力引入,使得模型不仅理解图像,还能根据图像生成描述、回答问题或者进行复杂交互。
需要指出的是,这种“<”关系并非数值上的严格包含,而是一种设计思路上的能力扩展。每一个阶段都衍生出全新的挑战和工程实现细节,比如Florence-2在实现时就可能受到输入尺寸等限制的影响,需要工程师在代码和文档中做相应说明和优化。
微调VLM调的是什么?
“微调VLM”这个说法其实比较宽泛,因为视觉语言模型(VLM)通常由多个模块组成,不同任务和微调策略下,可能微调的部分也不同。下面具体说明几种常见情况:
整体微调vs. 部分微调
在有些场景中,尤其是当下游任务数据充足的时候,研究者会选择对整个VLM进行微调,即同时调整视觉编码器、跨模态交互层和文本生成部分的权重。
但由于VLM往往参数量很大、预训练累积了丰富的知识,很多情况下只会选择微调部分模块(例如任务相关的头部或跨模态连接层),以保持预训练知识,同时减少过拟合风险和计算开销。
根据任务类型选择微调模块
如果任务属于图像描述、问答或其他需要生成文本的场景,那么更关键的一环可能是文本解码器(或生成模块)。在这种情况下,可能主要对解码模块以及与视觉编码器交互的跨注意力层进行微调。
如果任务是图像分类或者检测等,可能会在冻结大部分预训练编码器(包含视觉编码器和文本编码器)的前提下,仅微调最后的分类头或者用于对齐的投影层。
以Florence-2为例
在Florence-2的微调过程中,根据目标任务的不同,可能会选择仅调整下游任务的prompt部分和输出头,或者连同跨模态交互(比如视觉和文本之间的连接层、交叉注意力层)一起微调。而视觉编码器本身如果已经预训练得足够充分,也可以保持冻结状态,仅使用它提取的特征。
实际工程中的策略
在实际应用中,为了保证模型的鲁棒性与预训练知识的有效利用,常见策略是“冻结-微调”组合:冻结绝大部分模块(尤其是视觉编码器),只微调与具体任务密切相关的模块(如任务特定的解码器或分类头);也有部分方案根据任务需求设计专门的adapter或轻量化模块进行微调。
综上所述,“微调VLM到底微调哪个模块”取决于具体的模型架构和下游任务需求。常见做法包括:
对生成任务主要微调文本生成(解码)模块及跨模态交互层;
对分类或检测任务则重点微调任务头和对齐层,而视觉编码器可能保持冻结;
或者在数据充足的情况下,对整个模型进行联合微调。
因此,微调VLM并不是单独针对某一个模块,而是根据预训练的整体结构和具体应用场景,选择性地对部分模块进行更新以达到更佳的任务表现。
未来展望
随着多模态大模型的不断发展,未来的研究和工程实践将可能聚焦于以下几个方向:
进一步提高视觉与语言特征对齐的精确度,并实现更多细粒度的语义理解。
优化多阶段视觉编码器的结构设计,使其更高效、更具鲁棒性,同时突破工程上固有的限制(例如输入分辨率问题)。
将生成与交互能力更好地融合到模型中,不仅能给出正确答案,还能进行对话和动态的视觉描述,拓展更多应用场景。
跨模态预训练和微调方法不断发展,使得模型在面对新的任务和数据时具有更好的迁移能力和泛化表现。
未来,随着研究者在模型结构、训练策略、硬件支持等方面不断突破,我们有望看到更多既能高效处理单一模态,又能在多模态信息交互上取得巨大进步的视觉建模系统。
魏新宇
微软AI全球黑带高级技术专家
著有《大语言模型原理、训练及应用》《金融级IT架构与运维》《OpenShift在企业中的实践》v1&v2、《云原生应用构建》。
END
点击图片立即报名👇️