ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

多模态学习全景:从任务分类到架构演进与工程落地

多模态学习全景:从任务分类到架构演进与工程落地 一提到多模态我脑海里浮现的是两年前接的一个需求对方给了一堆医疗影像和对应的检查报告想做一个能“看图说话”的辅助系统。当时主流做法还是把图像特征和文本特征各自抽出来拼到一起再接个分类器。效果嘛能跑但一到复杂场景就露馅。这半年再看同样的需求已经是Visual Language Model的天下输入一张图输出一段自然语言诊断意见完事儿。变化就是这么快。所以当我想写一套关于多模态理解与生成的综述时第一直觉就是先把地图画出来。这篇是系列第一篇聚焦前言、分类和架构把整个领域的骨架搭清楚后面再逐一深入某个具体技术路线。这篇综述不是教科书式罗列论文而是站在工程落地和技术演进的交叉视角回答几个核心问题多模态为什么突然火起来任务到底怎么分类才不过时主流架构的本质区别在哪里哪些模块是真正值得投入精力的适合刚入门的研究生、想转多模态方向的工程师以及已经在单模态领域深耕、想扩展视野的从业者。1. 为什么说多模态是必然方向单模态的天花板很明显先聊几句题外话。做自然语言处理的人常说“语言是思维的载体”但真实世界的信息远远不止语言。你看到一个苹果知道它是红的、圆的、有光泽这个信息在文本里可能只有“红苹果”三个字但在图像里是无数像素的分布。反过来文本能表达的因果、逻辑、抽象概念图像往往无能为力。人类理解世界天然就是多模态的——看、听、说、触觉、本体感觉这些信号交织在一起才构成完整的认知。单模态模型的本质局限在于信息瓶颈。一个纯文本模型即使参数量再大它也只能从离散符号的统计相关性中“推断”出关于视觉世界的知识这些知识是二手甚至三手的。比如模型知道“斑马是黑白条纹的”但它从未见过像素级的斑马图像所以当你问它“斑马条纹和棋盘格的区别”时它只能从语料中的文字描述去猜测。这种猜测在很多时候是错的或者至少是不够精细的。另一个维度是模态之间的互补性。图像提供了空间结构和外观细节文本提供了语义抽象和推理线索音频提供了时序和情感信息。多模态模型的目标不是简单地堆叠多个编码器而是让信息在模态间流动、对齐、互相增益。一个经典例子在视频理解任务中画面里有一个人在笑音频里有掌声字幕里写着“感谢大家”三个模态单独看都有歧义合在一起就能确定——这是一场表演结束时的致谢场景。模态越多语义的确定性越强这是多模态最根本的吸引力。不过这里要泼一盆冷水多模态的“多”不只是数量问题更是对齐问题。图像特征空间和文本特征空间本质上是两个异质空间如何让它们可比较、可映射、可组合是整个领域的核心难题。这也是为什么多模态研究这么多年真正的爆发点是在大规模预训练出现之后——有了海量数据和强大的算力模型才能自己学到跨模态的对齐规律而不是靠人工设计复杂的对齐规则。2. 多模态任务的光谱从理解到生成从检索到对话谈到多模态任务很多人的第一反应是图文匹配、看图问答这几种经典场景。实际上过去五年的发展已经把任务版图扩展得非常宽而且边界在快速移动。我用一个比较粗的粒度把任务分成四类。第一类是跨模态理解与检索。图文检索是其中最经典的任务给定文本描述找出对应的图像或者反过来给定图像找出匹配的文本。这个任务的本质是学习一个共享嵌入空间让语义相似的图文对在向量空间中靠近。CLIP是这方面的里程碑它用对比学习把图像和文本的表示拉近使得zero-shot分类、跨模态检索都变得非常自然。这类任务的特点是判别式为主输出通常是相似度分数或标签模型相对轻量适合做搜索引擎、素材管理、内容审核等场景。第二类是视觉问答与视觉推理。这类任务的输出是自然语言但输入是图像和问题。早期的VQA模型更多是“分类式”的——从预定义的答案集合里挑一个。后来随着生成式模型兴起开放域VQA成为主流模型可以自由生成答案甚至结合外部知识库进行复杂的推理。这类任务不仅需要模型“看见”还需要模型“思考”。比如给一张厨房的图片问“如果我要做西红柿炒蛋需要哪些食材”模型需要先识别出西红柿和鸡蛋再结合常识推断出还需要油、盐等调料。这里涉及的技术点从视觉感知延伸到常识推理是测试多模态模型智商的好题目。视觉推理的进阶是图表理解、文档理解、图表问答这类结构化感知任务它们要求模型在图像上做更精细的定位。第三类是内容生成包括文生图、文生视频、图像编辑、语音合成等。这类任务的输入是文本或其他条件信号输出是视觉或音频内容。技术上扩散模型目前是视觉生成的主流从DDPM到Stable Diffusion系列再到视频生成模型生成质量和可控性一直在提升。这类任务的关键指标已经从“像不像”进化到“是否符合语义”“是否可控”“是否具有组合性”。生成任务的难点在于文本描述往往是稀疏的、模糊的而图像空间是高维且连续的模型需要把低维的语义约束映射到高维的视觉流形上。第四类是统一多模态对话与智能体。这是目前最热的方向也是大语言模型能力向多模态延伸的产物。输入可以自由组合图像、文本、音频输出既可以是文本回答也可以是生成的图像甚至可以调用工具执行操作。多模态对话模型比如各类VLM已经展示了令人惊艳的能力给一张手绘草图它可以理解你的设计意图并生成HTML代码给它一张表格截图它可以做数据分析并生成结论。这类任务要求模型同时具备理解、推理、生成、交互四种能力综合性最强也更接近通用人工智能的雏形。用表格概括一下这四类的特征对比。任务类别输入输出核心能力典型技术跨模态理解与检索图文/音文相似度/标签模态对齐对比学习、双塔视觉问答与推理图文问自然语言感知推理编码器-解码器内容生成文本/条件图像/视频/音频条件生成扩散模型、GAN统一对话与智能体多模态混合多模态混合综合能力多模态大模型需要说明的是这四类的边界不是固化的。视觉问答模型也可以做检索生成模型也可以内嵌判别头哪里有数据哪里就能扩展能力。3. 核心技术方向的五大分支任务分类是“要解决什么问题”技术分类是“用什么方式解决”两者不能混为一谈。我倾向于把现在的多模态技术路线大致分成五个分支每一个分支都有清晰的学术脉络和应用方向。首先是模态表示学习。这个方向的核心目标是“如何把不同模态的数据编码成适合计算和比较的向量表示”。早期的做法是用各自的骨干网络提取特征然后用拼接或加权融合得到联合表示现在的主流是用对比学习统一模态的表示空间。对比学习的思想很直观给定一批图文对把匹配的图文对在表示空间里拉近把不匹配的推远。这个思路虽然简单但非常有效CLIP的成功已经证明了它的扩展性。模态表示学习的下一步是细粒度对齐比如用对象级别的对齐替代全局级别的对齐让模型知道图像里的某个区域对应文本里的某个词。第二个方向是跨模态对齐与融合。对比学习解决的是“表示可比”的问题但很多任务还需要更精细的“信息融合”。融合的策略可以分为早期融合、中期融合和晚期融合。早期融合是输入层面就拼接比如把图像像素和文本嵌入直接拼在一起送进Transformer晚期融合是各模态先独立处理最后再合并决策。中间态是最多的有的在Transformer的某个中间层加入跨模态注意力有的在编码器之后加一个专门的融合模块。经验上简单拼接适合轻量任务复杂的跨模态注意力适合需要深度语义交互的任务但代价是计算量陡增。另一个重要趋势是“对齐-融合”解耦先用对比学习对齐模态表示再用生成式目标做深度融合。这种两步走的策略在工程上更稳定也方便模块复用。第三个方向是条件生成。这是内容生成任务的技术基石。给定条件输入生成符合预期的视觉内容。扩散模型是这个方向的绝对主流。用一个粗糙的类比解释扩散模型它先把清晰图像“污染”成纯噪声然后学习一个去噪过程让噪声一步步还原成图像。条件生成就是在去噪过程中注入文本信息让模型知道“往哪个方向还原”。除了扩散模型自回归视觉生成也在快速发展类似语言模型的“下一个token预测”只不过token是图像的离散编码。这些技术路线各有优劣扩散模型生成质量高、细节丰富但推理速度慢自回归模型速度可控但对长距离依赖的建模能力还需要观察。第四个方向是多模态大语言模型。严格说这不是一个独立的技术而是一种架构范式以预训练的大语言模型为核心外接视觉/音频编码器通过一个连接模块把视觉特征映射到语言模型的输入空间。这种范式的效果很惊人语言模型负责推理和生成视觉编码器负责感知连接模块负责“翻译”。整个系统的智能上限取决于连接模块是否能把视觉信息无损地传给语言模型。目前的做法有MLP映射、Q-Former、交叉注意力等各有优缺点后面架构部分会细讲。第五个方向是统一模型与一体化架构。研究者不满足于“LLM外接视觉模块”这种相对松耦合的设计而是试图设计一个真正统一的Transformer让所有模态都被当成token序列一起训练。这种思路在学术上很有吸引力——如果视觉和文本在底层共享同一个处理流程模型就能天然地学习跨模态的交互规律而不是依赖人工设计对齐模块。目前的挑战在于训练稳定性和模态间的竞争问题视觉token和文本token在同一个模型里容易产生干扰。很多人相信一体化的方向是正确的只是需要更好的训练策略和架构设计。4. 架构演进路线的三次范式转移对从业者来说理解架构演进比背论文更重要因为架构决定了你能在工程上复用的组件也决定了你踩坑的方向。我自己把多模态模型的架构演变分成三个阶段每个阶段对应一个主要范式。第一代架构是“拼接融合式”典型代表是在BERT或ViT之后接一个融合模块。输入图像和文本各自经过编码器得到的特征向量在融合层交互然后输出预测结果。这种架构的特点是简单直接做分类、检索这类任务效果不错但生成能力有限。它的天花板在于融合模块的容量限制了跨模态信息的深度交互而且两个编码器是分离的无法端到端联合优化。第二代架构是“双塔对齐式”CLIP是代表。图像塔和文本塔各自独立编码用对比学习把两个塔的输出拉齐。双塔架构的优点非常突出两个塔可以分别预训练推理时可以把图像特征预计算并缓存检索效率极高非常适合工业界的大规模召回场景。缺点也明显因为两个塔只在最后做一次交互细粒度的语义关联建模不足无法处理复杂的推理任务。很多搜索引擎和电商平台大规模应用CLIP但遇到复杂语义匹配时还是会力不从心。第三代架构是“统一多模态生成式”以最近两年的多模态大模型为代表。输入图像和文本被统一编码成模型能处理的token序列模型以自回归方式生成输出。这套架构的核心变化在于把多模态问题转化为序列生成问题所有任务——包括理解、检索、生成、对话——都可以统一为next token prediction框架。这种统一切换让模型的扩展方式变得很简单只要数据够多、算力够大任务的边界就可以不断延展。从工程角度看第三代架构最大的优势是组件可复用且更新路径清晰。不过现实中的模型往往不是纯粹的某一种架构而是混合体。典型的VLM是双塔的视觉编码器加上统一生成式的大语言模型对齐部分用对比学习预训练生成部分用语言建模目标微调。这种“混合范式”的实用性最强也是目前开箱即用方案的首选。理解每种范式的底层逻辑才能在混合架构里做明智的取舍。5. 架构解剖四个关键模块的职责与主流实现从工程拆解的角度看一个现代多模态模型通常由四个模块组成视觉编码器、连接器投影层、推理引擎大语言模型和生成器。每个模块解决一个具体问题模块间的接口设计是系统架构的灵魂。视觉编码器负责把图像像素转换为视觉特征。早期用CNN比如ResNet现在几乎全被Vision Transformer取代了。ViT把图像切成固定大小的patch比如16x16像素每个patch线性映射成一个token然后像文本一样送入Transformer。ViT的优势在于它和语言模型一样使用Transformer结构天然容易对接而且patch token保留了空间信息方便细粒度对齐。当前的主流选择包括OpenCLIP的ViT-L/14、ViT-G/14以及SigLIP系列。工程上选视觉编码器时除了看参数量和精度还要看特征分辨率。CLIP的ViT处理224x224输入但VLM通常需要更高分辨率输入来识别小物体于是出现了动态分辨率、滑窗等技巧。这块的水很深直接决定模型“看得细不细”。连接器是视觉和语言之间的一座桥也是很多人忽略但实际极其关键的一环。它的目标很简单把视觉特征变换成语言模型能理解的嵌入向量。最朴素的做法是Linear Projection也就是直接用一层线性层把视觉特征映射到LLM的嵌入维度。这种做法简单有效但在信息压缩上有损失因为视觉特征往往带有空间结构比如196个patch token直接压平会丢失相对位置关系。更讲究的做法是用Q-Former这是BLIP-2引入的机制一组可学习的Query通过交叉注意力从视觉特征中提取信息再把Query的输出作为语言模型的输入。Q-Former相当于一个可学习的“摘要器”能把任意长度的视觉特征压缩成固定长度的、富含语义的嵌入。还有一种做法是把视觉特征通过交叉注意力直接注入语言模型的每一层绕过显式连接器。这种做法交互最充分但对显存和算力的要求极高工程上很少直接用倒是很多研究项目在用。推理引擎就是大语言模型本体。这里有个很微妙的点同一个LLM预训练时只见过文本外接视觉模块后突然能“看懂”图了。这是因为LLM的参数里已经隐含着大量的世界知识视觉特征只是给这些知识提供了一个“触发信号”。所以推理引擎选型时重点不是它的视觉能力而是它的语言能力、上下文长度、指令跟随能力、推理深度。7B级别的模型适合Demo和研究70B级别或MoE结构适合严肃应用。另一个容易踩坑的细节是位置编码和RoPE等参数对多模态输入长度的影响图像token动辄几百上千个超出训练时的长度分布后性能可能陡降。生成器这个模块在纯理解模型里不存在但在内容生成任务中很关键。对于文生图模型生成器就是扩散模型的UNet或DiT对于统一对话模型生成器就是解码器和采样策略。很多多模态模型的生成部分并不是和LLM一体的而是独立训练后外挂。比如一个VLG模型视觉语言生成可能用LLM生成“图像描述”然后再把这个描述喂给文生图模型。这种级联方式在工程上非常常见虽然信息有损但胜在每个模块都是成熟的现成组件迭代速度快。6. 支撑这一切的地基数据、评测与训练策略很多综述会把数据和评测放到最后草草带过但我想单独拿出来讲因为在实践中数据质量对模型效果的影响常常大于模型架构本身。跨模态数据主要有三种类型。第一种是图文对数据数量大、覆盖广比如爬取自网页的图片和alt文本。这类数据的质量参差不齐文本描述往往存在噪声、不完全匹配等问题但对于对比学习预训练来说很够用。清洗这类数据的常规套路包括去掉过短的文本、去掉非自然语言的内容、去除重复图、质量过滤、人脸和私有信息脱敏等。第二种是细粒度标注数据包括检测框、分割掩码、区域描述、指代关系等。这类数据是感知能力的关键因为纯图文对只能教会模型“图说了什么”不能教会模型“东西具体在哪里”。很多VLM在细粒度感知上翻车归根结底是训练数据里缺乏边界框和区域标签。第三种是以文本为中心推导出的跨模态标注比如用现成的Captioning模型生成更详细的图像描述、用LLM改写与扩写prompt等。这类“合成数据”是近年的大趋势手工标注的跨模态数据太贵、太慢了而模型自生成数据可以批量扩展覆盖面。这个方向的挑战是噪声放大——模型生成的标注错误会被带进训练集如何过滤和平衡是数据工程的核心功课。评测是多模态领域比较头疼的部分。经典的VQA benchmark、图文检索benchmark已经难以反映大模型的能力越来越多的评测转向“全能型”——既要测感知细粒度又要测推理深度还要测指令跟随和诚实性。需要注意的是评测集的污染问题很严重如果评测集被包含在训练数据里分数虚高的可能性就很大。因此实践派的做法是自建一套私有评测集或者至少确保评测数据不在训练语料里。训练策略方面主流的VLM训练通常是两阶段。第一阶段用大规模图文对数据做对比学习预训练目标是让视觉特征和文本特征对齐第二阶段用指令数据做监督微调目标是让模型学会以自然语言的方式回应各种视觉任务。预训练阶段的数据量和算力需求都很高微调阶段更讲究数据配比和任务多样性。实操中常见的问题有三类一是视觉编码器和语言模型的学习率需要分别设置不能一刀切因为视觉塔通常已经充分预训练学习率要低一些二是图像分辨率与训练批次大小的平衡高分辨率输入的显存占用会暴涨三是灾难性遗忘微调阶段模型可能在视觉理解上进步了却在纯文本能力上倒退了解决方案是混入部分纯文本数据一起微调。7. 总结下来第一站的核心不是“新”而是“不过时”写下这篇综述的时候我反复提醒自己一件事不要为了追求新潮而过度聚焦某个爆款模型。多模态领域的发展速度极快半年前的技术可能就已经被超越但底层的问题——模态之间如何对齐、信息如何融合、任务如何统一——不会变。理解这些底层问题再去看模型更迭就像拿到了一张地图不管路怎么修都能走对方向。我自己在实践中的一个真实体会是动手做VLM之前先想清楚你面对的任务是检索型还是生成型这决定了你要用双塔架构还是生成式架构。这两个方向的工程路径差异极大前者需要关注向量索引和召回率后者需要关注解码质量和评测复杂度。如果你只是在探索阶段我建议先从开源VLM的二次开发入手把视觉编码器、连接器、语言模型三者的分工和组合方式摸清楚再考虑是否自研架构。把地基打牢后续的创新才有意义。下一篇我会深入讲在各种任务上表现最好的那几条技术路线以及它们背后演进的因果链条把“为什么这个方案赢了”讲透。也会给出一些实战中的参数与取舍参考方便你在自己的场景里判断怎么选。这篇先到这里算是把地图铺开了。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表