☰
多模态学习十年演进:从特征拼接到生成式统一模型
2026/10/18 21:53:51 网站建设 项目流程

2015年的时候,如果有人跟我说,未来你会像聊天一样把图片、声音、文字一起丢给一个模型,让它直接给你生成一段带画面的回答,我一定觉得他是科幻片看多了。那一年我蹲在工位上,做着某个模拟项目里的视频理解模块,输入是抽帧后的图像、音频特征和一段匆忙的语音识别文本,输出是视频分类结果。整个流程拆开看无比朴素:三个模态各自提特征,然后拼接、过一层全连接,最后丢给支持向量机做分类。

这套东西能跑出还不错的精度,靠的是特征工程够猛。光图像特征就试过色彩直方图、方向梯度直方图,还有刚流行起来的深度卷积网络倒数第二层激活值。音频特征更是手工谱特征全部过一遍。但麻烦的是,这些特征根本不在一个空间里,拼接起来像是把苹果和橘子焊在同一根棍子上,分类器学到的往往只是模态之间的线性补偿。那是我第一次意识到,多模态的真正难点不是“有没有模型”,而是“怎么让两个不具备可比性的东西变得可比”。

十年过去,多模态已经从一个需要我向导师解释“为什么视频分类不用只抽帧”的冷门方向,变成了几乎所有人都在聊的显学。回头看这十年的演进,很有必要梳理清楚几个关键转折:特征对齐怎么从手工设计走向数据驱动,预训练范式如何把“各模态孤岛”连接起来,生成式技术又怎样把多模态从“看懂”推向“动手”。这篇内容就是我以亲历者视角做的阶段性复盘,里面有技术路线,也有踩坑记录和工程判断。

1. 2015年的岔路口:多模态还没成为显学

1.1 那年我做视频分析的“手工+浅模型”日常

现在很多新人可能难以想象,2015年前后做多模态视频理解,本质上是一场“特征工程马拉松”。视频要先按固定帧率抽帧,每帧再缩放到固定尺寸,然后过一个预训练好的深度网络提取特征。音频那边也不省心,常见做法是把波形切成长度为几十毫秒的窗口,然后提取梅尔频率倒谱系数、过零率、能量等手工特征,最后对齐到视频帧的时间轴上。

文本部分反而最简单,因为当时的视频字幕和语音识别文本都还不是主流输入,很多实验甚至干脆只用图像特征和音频特征。可即便只有两个模态,日子也不好过。不同模态的特征密度差异极大:图像特征通常是几百维到上千维的高维向量,音频特征虽然维度略低,但时序粒度不同,视频帧率可能是一秒25帧,音频特征却常常按每秒100帧来算。所谓的多模态融合,第一步往往是“凑时间对齐”,这一步至今仍是工程上的脏活累活,只是现在有了更多自动对齐工具,十年前全靠手写脚本。

模型结构倒是简单。大多数时候我在用拼接后接全连接层,或者直接用核函数做支持向量机。如果谁在汇报里写了“深层次多模态融合”,多半只是把多个全连接层叠起来,本质上还是让网络从拼接后的向量里硬找规律。这种做法有三个问题:第一个问题是模态之间交互被压缩到“同一个向量里”,模型很难学到细粒度的跨模态关系,比如“这段鼓点和这个人挥手的动作是否匹配”;第二个问题是很浅的非线性层根本拟合不了特征空间之间的复杂映射;第三个问题是数据量太少,一旦网络加深,过拟合立刻找上门来。

我还记得某次对着一张表格调参,图像特征权重和音频特征权重的比例从1比1试到0.3比1,总共跑了十几个版本,准确率只浮动了两三个点。当时有个做纯视觉的同事,输入多一帧图像效果都比我精调融合权重来得明显,这让我一度怀疑多模态是不是伪需求。后来才明白,不是伪需求,是我根本没有一套合适的工具去建立模态之间的“共同语言”。

1.2 多模态为什么突然被盯上

2015年前后,学术界和工业界几乎是同一时间开始重新审视多模态,原因很朴素:单模态深度学习在图像分类、语音识别、机器翻译上都拿到了让人兴奋的结果,大家自然想试试“如果把眼睛、耳朵和文字一起给模型,是不是能看得更明白”。当时越来越多内容平台需要在海量视频里做自动分类、检索和审核,纯文本和纯图像的办法都容易漏掉关键信息,比如一段搞笑视频如果只看画面,很难识别出恰好在背景音里出现的关键台词。

这个阶段也出现了不少公开的大规模多模态数据集,里面包含成对或成组的图片、句子、视频片段等。研究者终于不用自己录数据、买版权,就能在一个相对稳定的基准上比较算法。这些数据集的共同特点是规模比单模态数据集小得多,标注也粗糙,很多图片和文字描述的关系只能算“相关”,而不是严格对应。可正因为有了它们,大家才第一次可以定量比较“拼接融合”“注意力式融合”“张量融合”等五花八门的方法。

工业界的推动同样明显。视频搜索和智能审核需要同时利用视觉内容和语义信息,广告系统也想通过用户上传图片配合的文案来判断兴趣。这些场景的核心需求都指向同一个方向:让机器理解“图像里是什么”和“文字说了什么”之间的对应关系。可以说,2015年是技术积累、数据规模和商业诉求三个齿轮终于咬合在一起的年份。

1.3 当时的技术天花板:特征不对齐

如果非要用一句话概括当年多模态研究的最大瓶颈,我会选“特征不对齐”。所谓不对齐,包括空间不对齐、语义粒度不对齐,以及时序不对齐。

空间不对齐很好理解。图像特征来自二维卷积网络某个中间层,每个位置对应原图的一个局部区域;文本特征来自词向量序列,每个位置对应一个词。这两个空间里的“位置”没有任何约定,直接拼接后,模型并不清楚某一维向量到底该对应图像的哪块区域、或者文本的哪个词。语义粒度不对齐更隐蔽:图像特征可能编码了“一只黄色的狗在草地上跑”,而文本特征可能只是编码了“狗”这个词,两者本身就是粗细不同的信息层级。时序不对齐则主要出现在视频场景,视觉内容和语音/字幕的关系往往不是严格的逐帧对齐,比如人在说话前会先抬手,语义上文本对应的是“我马上要说”,但画面已经提前了半秒。

面对这些不对齐,当时最常用的补救措施是“度量学习”,也就是让模型学习一个映射函数,把不同模态的原始特征映射到同一个公共空间里,然后用余弦相似度或欧氏距离判断它们是否匹配。这个思路听上去很合理,但在小数据、弱标注的条件下,学出来的公共空间经常被少数样本带偏。更气人的是,映射函数本身往往只是一层线性变换,根本处理不了“一张狗的照片”和“一段描述狗的文字”之间那种高度非线性的对应。所以那几年的大部分论文,其实都在围绕“怎么设计更好的映射”打转,本质上是拿写死的模型结构去对抗语义复杂度,天花板自然很低。

2. 中间五年:注意力机制把多模态从“拼接”推向“对齐”

2.1 跨媒体检索教会我们的事

2015年之后,一个典型的任务开始频繁出现:跨媒体检索。给一段文字,去库里找相关的图片;或者给一张图,去库里找跟它讲的是一回事的视频。一开始大家走的路子还是前面提到的公共嵌入空间:训练一个双分支网络,一边编码图片,一边编码文本,再用排序损失拉近匹配对、推远不匹配对。

这个任务看起来简单,实际做起来全是坑。我记得在某个模拟跨媒体检索项目里,直接用欧氏距离做相似度,效果惨到怀疑人生。后来换了三元组损失,也就是拿一张图、一句正向描述、一句负向描述组成样本,让模型学会“正向的比负向的更近”。这个方法收敛很慢,而且特别依赖负样本的质量。如果负样本是从完全不相关领域里随机捞的,模型很快就学会了偷懒——只看文本里有没有“狗”这个词,而不去真正理解图像内容。后来我们不得不做困难负样本挖掘:先把一批候选样本用当前模型跑一遍,专门挑那些“模型觉得相似但其实不匹配”的结果当负样本,才逼着模型学习更细粒度的信息。

这段经历让我悟到一件事:多模态对齐的最优解并不在模型结构里,而在“怎么样让模型不断看到难区分的例子”。对比学习后来之所以能在大规模预训练里大放异彩,核心逻辑和这个一模一样——只是把负样本的数量提升到了成千上万,把数据规模拉到了几十亿。

2.2 注意力让不同模态“能对上话了”

跨媒体检索解决的是“整体像不像”的问题,但很多场景需要更细腻的交互,于是注意力机制从机器翻译领域一路渗透过来。它最大的贡献,是把“全局特征拼接”变成了“局部信息软对齐”。

以视觉问答为例,模型拿到一张图和一个问题,需要先判断问题里的“红色”可能指向图片中的哪个区域,再针对这个区域寻找答案。这种能力靠拼接向量是学不出来的,因为每个词、每个图像区域在拼接后的向量里已经被压成一个不可拆分的整体。注意力机制则允许模型在推理过程中反复计算“当前这个词和图片哪个位置相关性更高”,然后只把这些相关位置的特征加权汇总。这样一来,不同模态之间第一次有了“对话”的桥梁,不再是把整句话和整张图硬撞在一起。

这里可以用一个生活类比:过去的多模态融合是把家里所有东西都摊开在地板上,让清洁机器人自己判断哪里脏;注意力机制则是你直接告诉机器人“客厅茶几下面需要重点看”,效率高得多。从技术角度看,注意力本质上是一种动态加权,权重完全由输入决定,所以它能适应不同图像、不同句子的变化,而不是像传统平均池化那样对所有位置一视同仁。

那时候的多模态注意力模型普遍还依赖于单模态预训练特征的输入,常见做法是在图像特征和文本特征之上再接一层注意力交互模块。虽然还没有进入“全面预训练”阶段,但已经能在一系列公开评测任务上显著超过拼接模型。也是从那时起,多模态研究终于不再只是“特征工程大赛”,开始有了自己的模型设计方法论。

2.3 为什么当时仍然是小步慢跑

尽管注意力机制让多模态交互上了一个台阶,但2016到2019年之间,整体进展仍然可以用“小步慢跑”来形容。主要原因有三个:一是高质量跨模态标注数据稀缺,很多数据集只能靠人工一点点写描述,规模和单模态数据集完全不是一个量级;二是算力昂贵,一个多模态注意力模型动辄需要多卡训练,普通研究团队很难做大规模探索;三是缺少自监督学习这种“自己给自己出题”的训练思路,几乎所有训练都依赖手工标注的匹配对。

更尴尬的是,当时很多多模态模型只能在学术评测集上刷分,到了真实场景立刻露怯。比如在视频问答任务里,模型经常依靠文本先验来回答——只要训练集中“有多少个人”这个类型的问题大多数答案是“2”,模型就可能不看视频瞎猜也能得高分。这种“偷懒”现象直到后来人们用对抗式评测才发现,大家才意识到评估协议本身也需要演进。

不过回过头看,这段小步慢跑的日子其实是必要的积累。注意力机制、度量学习、多模态融合层的各种尝试,为后面大模型时代的全面爆发储备了足够多的网络结构组件和训练经验。没有这些看上去零散的工作,后来的大规模预训练模型不会凭空长出来。

3. 预训练语法的到来:多模态有了通用底座

3.1 从单模态预训练到跨模态对齐训练

约从2019年开始,多模态研究进入了一个完全不同的范式。此前大家默认“图片就得用图像编码器,文本就得用语言编码器”,也就是各自为政;而新的趋势是,先用海量单模态数据训练出强大的通用编码器,再用模型结构让这些编码器在中间层开始交互。随后更进一步,干脆从零开始训练一个统一的编码器,把文本、图像(甚至音频、视频)当成不同类型的输入,通过设计训练目标让模型自己学会跨模态对应关系。

这个转变很像从“请了三个各自领域的专家,让他们临时组队”变成“从小训练一批通才,让他们在同一个框架里自己学配合”。专家组队的难处在于,三个专家都有自己的术语体系,沟通成本极高;统一框架则通过同一个损失函数倒逼模型内部的表征对齐,省去了大量人工设计接口的工作。

具体到训练目标,最流行的一类是对比学习:把“匹配的图文对”拉近,把“不匹配的图文对”推远。这类方法很容易理解,实现成本也不高,但它的上限取决于负样本质量和数据噪声。还有一类是掩码重建:把图像的一部分区域或文本的一部分词遮住,让模型根据其他模态的信息去预测被遮住的内容。这条路线更像是“完形填空”,模型被迫同时理解两个模态,才能把缺失的部分补出来。

3.2 数据规模、算力和训练目标如何重新定义一切

预训练范式的胜利,本质上是“数据量+算力+训练目标”三者的胜利。这跟2015年最大的不同,不是某个模型的网络结构变复杂了多少,而是整个训练模式从“监督小样本”变成了“自监督大样本”。

先看数据规模。2015年大家用手工标注的视频分类数据集,几十万条已经是天花板;预训练时代用来做图文对齐的数据,动辄是互联网上爬下来的十几亿对“图片-文本”,这些数据虽脏,但量大到模型可以自行消化噪声。再看算力:过去训练一个多模态模型需要调小批量大小以免显存溢出,现在大规模预训练集群极其常见,模型可以一次“看”成千上万个样本。最后是训练目标:对比学习、掩码重建和生成式目标让模型不再依赖人工标注,互联网上的原始数据就能变成训练信号。

这三者的叠加产生了一个质变:模型第一次有了足够大的视野去理解“狗”这个字可能对应无数不同颜色、姿态、背景的图像,而不再是那个在几千张图里反复见过的“标准狗”。我自己的体会是,以前感觉是在教一个孩子认图,你举一张照片,告诉他这是狗,他记住的可能是这张照片里的草地;预训练则像是带孩子去了一整座动物园,虽然没人逐张讲解,但他自动总结出了“狗”和“草地”“项圈”“尾巴”之间更抽象的规律。

3.3 老一批研究者怎么适应新范式

作为在2015年还在手工调特征的人,面对预训练范式席卷而来的那阵子,心情其实很复杂。一方面,过去几年积累的特征设计经验、对齐技巧确实还在某些小规模任务里有价值,但另一方面,每当新模型在榜单上大幅刷新当年精心调出来的结果,都会产生一种“我是不是白折腾了”的自我怀疑。

后来我慢慢想明白,老经验不是没用,而是需要换一种方式去用。特征工程时代培养出来的“数据敏感度”,在预训练时代变成了最稀缺的能力:你会第一时间发现数据里存在大量错误匹配;你更清楚什么样的负样本才能逼出模型真正的短板;你也更警惕评测集上的分数会不会被某种统计规律刷出来的。这些能力在当前很多团队里反而是最大的短板。所以那批从手工特征时代走过来的人,最好的转型方向是做数据诊断、评测分析和训练稳定性保障,而不是非要跟年轻一代比谁搭的模型层数更多。

预训练范式也给工程化带来一个新的烦恼:模型越来越大,实验成本越来越高,很多时候你不敢轻易尝试改变训练目标,因为跑一次大规模训练可能要按周甚至按月计算。这迫使研究者和工程师把大量时间花在“小规模模拟实验”上,先用小数据、小模型快速验证某个改进方向是否可行,再放大规模。这种“小实验,大验证”的文化,也是预训练时代一个非常显著的变化。

4. 生成时代:多模态从“看懂”走向“动手”

4.1 文本到图像、文本到视频背后的技术杠杆

如果说预训练时代的多模态模型解决的是“理解和匹配”,那么最近两三年,多模态最大的变化是“生成”。“给一段文字,直接生成一张以假乱真的图片”“给一句话,生成一段动态视频”,这些过去只存在于特效公司工作流里的需求,正在被拉进通用模型的能力范围。

生成式模型在这波技术路线里扮演了核心角色。尤其是一种“先破坏再修复”的训练方式:把一张完整图片逐步加噪到面目全非,再训练模型把这个过程反向走回去。训练完成后,模型只要从一个纯噪声起点出发,就能一步步还原成一张符合文本描述的图像。这个思路听起来抽象,其实很像“你听了无数遍一首被噪声污染的歌,最后即使有人只给你播放噪声,你也能脑补出完整的旋律”。关键能力在于模型学会了“理所当然”的结构感。

文本到视频的难度又提升了一截,因为视频不仅有空间细节,还要有连续的时间一致性。人物从左边走到右边,中间每一帧姿态都必须自然衔接,不能突然闪现。处理这个问题最常见的手段是在生成过程中引入时间维度的建模,让模型在对每一帧做“去噪”时,同时参考前后帧的信息。实践中这个方向最大的挑战已经不是网络结构,而是训练数据:互联网上带文本描述的高质量长视频非常少,大多数视频时长太短、分辨率太低,导致模型生成视频一超过几十秒,就容易出现运动漂移或环境不一致。

4.2 从专用模块到统一接口,多模态模型越变越“全能”

生成式多模态还带来一个很明显的产品趋势:模型不再是你给它图片它只回答图片问题的专用模块,而是变成“什么都能输入一点,什么都能输出一点”的全能助手。你可以让它根据一段文字画图,也可以给它一张图再要求改写一句对应的说明文字,甚至让它把一段中文语音翻译成英文视频描述。

这种“统一接口”背后的技术逻辑是,把不同模态先映射到同一个语义空间,再由一个生成式解码器决定输出什么。用户看到的都是“输入一些东西,输出另一些东西”,模型内部则共享大量通用知识。这大大降低了产品集成的复杂度——以前做一个多模态应用,可能需要串起图像识别系统、文本检索系统、语音识别系统,还要自己写一堆胶水代码;现在只需要一个模型接口,把原始数据传进去,拿到结果。

当然,统一接口也带来了新的工程问题:模型变得无比巨大,推理成本不低;同时因为所有任务都由同一个模型承担,你很难单独优化某一个具体任务。比如你既要它做图片描述,又要它做图片生成,这两个任务对表征细节的偏好可能是冲突的。实际项目里,我们经常被迫在“全能模型”后面再接一个小型的专用校正模块,用来弥补统一模型在特定任务上的不足。

4.3 生成式多模态的信任危机与评测难题

生成式多模态带来的不只是效率,还有信任危机。最典型的问题是“幻觉”:模型会一本正经地生成一张看起来和描述完全吻合、但细节完全虚构的图片,或者给出一段语气笃定却毫无根据的文字解释。这在内容审核、医疗辅助、法律文书等场景里非常危险,因为用户会把模型生成的内容当作事实。

评测难题也随之而来。传统的图文匹配准确率很难衡量一张生成图片好不好——它可能画出一只三只耳朵的猫,构图很棒但细节错了,这种错误应该怎么打分?如果让用户主观打分,成本高、波动大;如果靠自动指标,又容易被人为调参刷分。我见过不少团队在产品上线前,不得不组织大量人工标注员对生成结果做多维评分,比如“文本一致性”“画面质量”“细节正确性”“有害内容频率”,这比传统分类模型的评测复杂得多。

但这也正是工程师可以发挥价值的地方。最近两年我越来越觉得,生成式多模态的竞争重点会从“谁的画更清晰”转向“谁更可靠、更可控”。谁能把幻觉率压得更低,谁能在生成过程中提供更细粒度的可控编辑,谁能让内容安全审核跟得上生成速度,谁才真正具备产品化能力。

5. 十年不变的三个工程问题(以及我的解法)

5.1 数据永远在拖后腿

技术演进绕了一大圈,最后你会发现,数据永远是所有项目里最拖后腿的那个环节。2015年我花大量时间清洗视频、对齐字幕;2025年了,多模态数据规模变大了几个数量级,可数据质量依然是决定模型上限的关键。

多模态数据最常见的三大坑是:图文不匹配(描述的是图里没有的内容)、噪声文本(自动抓取的页面文本和图片关系很弱)、粒度不齐(文字只描述了图像的一小块区域)。我的经验是,在大规模预训练之前,一定要先做几件事:首先做URL级别的近似去重,把重复或近乎重复的样本砍掉;然后做对齐过滤,利用一个已有模型给每个图文对打个匹配分,把低分样本直接丢掉;最后做难度负样本补充,专门收集那些“看起来相关但实际不匹配”的样例,用来做后续精细调整。这三板斧看起来朴素,但能稳定地帮模型提升三到五个点的下游准确率。

5.2 多任务训练的“排气筒”打架

多模态模型到了后期,越来越喜欢“一个模型干所有事”,但这么做有个非常现实的工程问题:不同任务的目标函数经常打架。举个我踩过的坑:某次训练一个多模态模型,同时让它学图文匹配和光学字符识别,前者的损失量级大概在1附近,后者的损失量级却常常到100以上。结果梯度更新时,模型把几乎所有注意力都放在优化那个高量级的任务上,图文匹配任务在几十个epoch内完全停滞,最后只能从实验记录里看到它一路躺平。

解法没有银弹,但有几招很管用。第一,给不同任务的损失加可学习的动态权重,让模型自己根据梯度反馈调整各任务的关注程度;第二,在不同任务对应的参数路径上做梯度分离,比如共享底层编码器,但在各自任务头上用独立适配层;第三,实在不行就分阶段训练,先统一预训练,再任务微调。这三种方法可以组合用,但我见过的绝大多数项目其实只需要做好第一招和第三招,就能解决80%的冲突问题。

5.3 从模型指标到用户价值:最后一公里

最后一个十年不变的问题,是模型的指标和用户真正的使用体验之间,永远隔着一整条河。很多人觉得模型在公共评测集上拿了高分,产品就会好用,但真实场景里的数据分布远比评测集复杂:用户上传的图片可能是斜的、暗的、带水印的;语音可能夹杂噪音;文字可能有错别字。模型稍微脆弱一点,体验就会断崖式下滑。

我的建议是,在模型上线前多做“数据扰动测试”。具体来说,给测试集加上不同程度的噪点、旋转、裁剪、改词、变速,看模型表现下降得有多快。如果一个小扰动就导致准确率崩盘,说明模型根本没有学到鲁棒的跨模态对应关系,只是记住了训练集的表面模式。另外,一定要准备“模态缺失”时的降级策略。用户可能只上传图片不写字,或者只发语音不配图,这时模型应该明确知道使用哪部分信息,而不是傻傻地等待缺失输入报错。

这最后一公里往往不性感,也写不进论文,但它决定了多模态技术到底是停留在演示视频里,还是能真正变成“用了就回不去”的功能。我这几年做项目最大的心得是:把评测指标的提升当成方向,而不是终点;把用户现场的怪异输入当成必修课,而不是异常情况。

十年下来,多模态早就不再是“缝合特征”的冷门方向,而是变成了一个同时需要算法、数据、工程和安全判断的综合领域。如果说未来还有什么值得期待,我觉得不是某个更复杂的模型结构,而是多模态系统如何真正去理解物理世界里的上下文和因果关系。那些在真实交互中出现的细节,恰恰是下一轮演进最值得深挖的空间。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询