多模态大模型进化史:从拼接融合到原生统一架构

文章配图

多模态大模型进化史:从拼接融合到原生统一架构

最近被多模态的效果圈粉。距离那个"OCR 糊成一团、指令理解弱到离谱、幻觉高到吓人"的时代并没过去多久,多模态模型的效果已经发生了飞跃式进步。

这篇系统梳理背后的"进化轨迹":模型骨架如何一步步演变、位置编码如何从一维延伸到三维、图片分辨率难题如何被逐步破解,以及多模态训练策略背后最关键的两个反直觉发现。

一、多模态骨架的三次进化

进入细节前,先建立一个整体认知框架:多模态架构的演进,本质上是在回答同一个问题——

"图片和文字,到底应该在哪里、用什么方式融合?"

每个时代给出了不同的答案。

Era1:给语言模型装上眼睛(2022–2023)—— LLaVA、Qwen-VL1/2

文章配图

Visual Instruction Tuning(Liu et al., 2023)

核心设计哲学:视觉编码器和 LLM 都很贵,冻住它们,只训练中间的"翻译官"。

逻辑很朴素——既然视觉编码器(CLIP ViT)和语言模型(Vicuna/Qwen-7B)都已在各自领域预训练得很好,那就别动它们,只用少量数据和算力训练中间的桥梁。

LLaVA 的两阶段训练:

阶段 冻结什么 训练什么 用什么数据
阶段一:特征对齐 视觉编码器 + LLM 只训练适配器 图像描述(Caption)类任务
阶段二:指令微调 只冻结视觉编码器 适配器 + LLM 图像对话问答类任务

Qwen-VL 在此基础上加了第三阶段:解冻全部参数,用 OCR、Visual Grounding(让模型指出图片中特定区域位置)等任务,专门强化细粒度感知能力——从"看到是什么"向"感知空间关系"迈出第一步。

但 Era1 有三个根本缺陷,驱动了后续演进:

  • "语言优先"的模态失衡:视觉模态像新朋友难以融入文本群体,经常被忽略,导致很多图像理解问题幻觉率高得吓人。
  • 模态"拼接"的本质缺陷:视觉与文本模态天然存在分布差异、范数差异、信息密度差异,单纯拼接表征,模型很难提取有效信息。
  • 深层图像理解能力缺失:固定分辨率与输入层融合,使高分辨率细节、空间感知任务表现不佳。

Era2:让大脑"看见"更深层(2024–2025)—— Qwen-VL3

文章配图

Era1 的翻译官只工作了一次——在图片进入大脑之前。进了大脑,视觉信息就和文字混在一起,靠 LLM 自己消化。

问题是:视觉信息中的细节(小字体、空间位置关系、图表结构)很容易在 LLM 的深层网络里被"稀释"掉。

Era2 的核心思想:全面深入,让视觉模态真正参与到模型的每一层学习中。 同时攻克位置编码、动态分辨率、训练策略三个技术难题(后文重点展开)。

Qwen-VL3 给出的方案是 DeepStack:从 ViT 的多个中间层抽取特征,分别注入 LLM 的不同层。低层 ViT 特征保留边缘、纹理等细节,高层特征保留语义信息,让不同层的语言模型看到不同粒度的视觉信息。

图像 → [ViT编码器] → 第6层特征 ──→ 注入LLM第5层
                    → 第12层特征 ─→ 注入LLM第15层
                    → 第18层特征 ─→ 注入LLM第25层
                    → 第24层特征 ─→ 注入LLM第35层
                                    ↓
文本Token ──────────────────────→ [LLM主干] → 回答

Era3:打掉眼睛和耳朵,统一多模态架构(2026+)—— Gemma4

Era2 把融合做到极致,下一步自然是索性去掉融合过程,让多模态从最初就统一训练——丢掉视觉、语音编码器,多模态从头融合。

Gemma4 直接在架构层去掉图片、音频编码器,让多模态在输入层融合:

  • 图片怎么进来? 把图像切成 48×48 像素的图块(patch),通过约 35M 参数的投影矩阵,直接映射到与文字 token 相同的向量空间。
  • 音频怎么进来? 把 16kHz 音频按每 40ms 切一片,复用与图片相同的投影矩阵,变成同维度向量。
  • 然后呢? 图片 token、音频 token、文字 token 按用户输入顺序拼在一起,由同一个 Transformer 用同一套注意力机制处理——没有任何模态特权。

文章配图

一个值得注意的设计细节:为什么把图片和音频切得这么"粗"?

因为图片和音频的信息密度天然比文字低很多。一个文字 token 承载高度压缩的语义;而图片的像素区域信息高度冗余。更大的信息粒度才与文字 token 的信息密度接近,Transformer 处理时才不会"浪费注意力在背景像素上"。当然,参考后文动态分辨率的思路,按预算和语义密度动态切割或许是更好的方案。

二、三大核心技术难题

说完架构变化,接着看几个核心问题的攻克:

  • 位置编码如何表征空间和时间:把 2D/3D 世界硬压成 1D 序列,长视频尤其受损
  • 如何支持动态分辨率:固定 224/336 一刀切导致 OCR/文档/小目标崩
  • 如何训练解决模态冲突:视觉加入时机与比例不当会拉低语言能力或导致"看不见"

难题一:位置编码如何表征空间和时间?

Transformer 处理 token 序列时,注意力机制本身是"无序的"——模型天然不知道哪个词在前哪个词在后。位置编码给每个 token 打上"我在第几位"的标签,让模型感知顺序。

纯文字很简单:每个词一个位置编号,1、2、3……往后排。但图片的信息是二维的——一个像素块不只"在第几位",还有"在第几行、第几列"。视频更复杂,还加了"在第几帧"的时间维度。

把二维、三维信息硬压成一维序列,就像把一张地图折叠成一条线——空间关系全乱了。

文章配图

M-RoPE:给模型装三块"表盘"

Qwen-VL2 引入 M-RoPE(多模态旋转位置编码),核心思想:给每个 token 配三块表盘,而不是一块。

模态 T 表盘(时间/帧) H 表盘(垂直位置) W 表盘(水平位置)
文字 随位置递增 同 T 同 T(退化为 1D)
图片 固定不动 随行号变化 随列号变化
视频 随帧数递增 随行号变化 随列号变化

对文字,三块表盘转速一样,等价于原来的 1D 位置编码,没有额外损耗。对图片和视频,模型只需"看表盘指针夹角",就能天然感知像素间的空间距离和帧间的时间顺序——无需额外记忆坐标。

实现上的关键演进:频段分配方式

具体实现时,每个注意力头的维度要切成三份分别给 T/H/W。Qwen-VL2 的做法是顺序切分——前 1/3 给 T,中间 1/3 给 H,最后 1/3 给 W。

但 Qwen-VL3 发现这个做法有隐患:每个维度只能感知特定频段的信息,导致模型对某些空间频率无法感知。Qwen-VL3 的修正方案叫交错分配:

通道索引 0, 1, 2,  3, 4, 5,  6, 7, 8 ...
          ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓
分配:    T, H, W, T, H, W, T, H, W ...

一个有趣的延伸:时间位置编码的"语义化"转向

文章配图

Qwen-VL2 用视频帧的整数 ID(第 1 帧、第 2 帧……)做时间轴旋转编码。Qwen-VL3 做了反直觉改动:把时间位置编码改成直接在视觉 token 前插一段文字(如"3.5 seconds"这样的时间标记)。

为什么这么改?整数帧 ID 有两个缺陷:

  • 信息稀疏:文本的 token 位置连续密集(1,2,3,4,5...),视频帧采样却稀疏(1,5,10,20,50...)→ 模型对"帧间距离"的感知被稀疏采样严重扭曲。
  • 语义错配:30fps 采样时帧 ID=30 代表"第 1 秒",1fps 采样时帧 ID=30 代表"第 30 秒"→ 同样的 ID 在不同采样率下代表完全不同的时刻。

直接使用语义化的时间标记可同时规避两个问题——它不需要"换算"巨大数字,而是像读小说章节标题一样,直接"读懂"当前视频片段的时间点。

难题二:动态分辨率——细节与 Token 预算的两难

固定分辨率(如 224×224)的问题:图片一律缩放到该尺寸,高清文档里的小字、密集表格里的数字统统模糊——这是早期多模态模型 OCR 能力弱的根本原因。

但高分辨率也不免费:分辨率越高,不压缩就直接转换成更多输入 token。

动态分辨率的核心矛盾:细节 vs. Token 预算

Tiling(切片拼图)—— 不动 ViT,绕道走

文章配图

既然 ViT 只接受固定大小输入,就把大图切成多个小块,每块单独送进 ViT。

LLaVA 的 AnyRes 更进一步:同时送入一张缩小的全局缩略图(保留整体布局)和多个局部高清切片(保留细节),将所有编码结果拼成完整序列。

优点是简单、不改 ViT;缺点是切割边界会打断跨区域语义(比如表格被切成两半),且 token 数随分辨率线性增长,治标不治本。

Gemma 的改进方向:把 ViT 支持的最大输入分辨率直接扩大(336→896),减少切片次数,降低切割碎片化。

VIR(视觉分辨率路由器)—— 让模型自己决定压缩多少

Tiling 用同一压缩率处理所有区域——但实际上,图片里的天空背景和密密麻麻的文字,对信息密度的需求完全不同。

VIR 的核心思想:引入"语义感知"的动态压缩路由器,让模型自己判断每个 patch 该用多少 token 表达。

训练分两步:

  1. 训练对压缩不敏感的"底子":随机对输入图片做 4 倍或 16 倍压缩,训练模型在不同压缩率下输出尽量一致——让模型学会"即使图糊了,也能猜出大概",建立对压缩的鲁棒性。
  2. 训练路由器本身:冻结 ViT 和语言模型,只微调 VIR 路由器。路由器本质是二分类器,对每个 patch 输出 0 或 1:

文章配图

标签的来源:不需要人工标注!
直接比较 Loss(4倍压缩) vs Loss(16倍压缩):
  → 如果压缩后损失大(信息损失严重):标签=0,保留高分辨率
  → 如果压缩后损失小(信息本来就稀疏):标签=1,可以大幅压缩

训练用 OCR、VQA 等对信息密度极敏感的任务——只有这类任务,"压不压缩、压多少"的影响才显而易见。

推理时,路由器对每个 patch 实时决策:密集信息区域精细保留,大片背景区域大幅压缩,实现真正的"按需分配"。

Native ViT(原生动态分辨率)—— 从根上改 ViT

前两个方案都在不动 ViT 内核的前提下绕道解决。Qwen-VL2 选择直接"动手术":

  • 引入二维相对位置编码(M-RoPE 的 H/W 维度),让 ViT 从输入端就能处理任意尺寸图片,patch 数量随图片实际尺寸动态变化。
  • 引入 2×2 的 MLP 池化压缩,把 4 个相邻 patch 的特征合并成 1 个,视觉 token 数压缩到原来的 1/4,有效控制长图的 token 爆炸。

个人思考:Qwen-VL2 的动态分辨率(解决"怎么灵活输入")+ VIR 的信息密度感知(解决"进来之后怎么高效表达")并不矛盾。两者结合或可走向预算驱动的自适应表示——给每张图设定 token 上限,根据内容信息密度动态决定哪些区域精细表达、哪些粗略压缩。这或许是动态分辨率的下一站。

难题三:多模态该如何训练?

架构解决"图片怎么进来",训练策略解决"图片进来之后,怎么让模型真正学会用它"。

文章配图

这里有两个反直觉的核心发现,都来自 Kimi-K2.5 的实验。

Insight 1:视觉和语言,越早在一起越好

先理解"模态竞争"是什么感觉。想象你母语中文、英语流利,这时有人要求你从零学日语,且中文英语能力不能下降——三种语言会在大脑里互相"抢地盘",很难真正平衡。

这正是 Era1/Era2 多模态模型的训练困境:LLM 已用纯文本训练得很好,再"注入"视觉模态就会产生模态竞争:

  • 样本中视觉占比过高 → 文本能力断崖下跌
  • 样本中视觉占比过低 → 模型学会"偷懒",能不看图就不看图

之前的方案多是通过多阶段训练与动态调整两模态混合比例来"拉偏架",本质是水多了加面、面多了加水。

而 Kimi-K2.5 试验后给出的结论是:在固定 token 预算下,早期融合适度视觉比例的效果,优于晚期大量注入视觉数据。所以 Kimi-K2.5 采用早期整合视觉、全程协同优化两种模态,学习均衡的多模态表示。

视觉和文本两种模态若在训练早期就一起"长大",它们之间的对齐是自然形成的——就像双语环境中长大的孩子,两种语言在大脑中共生。"先学文本、后补视觉"则像成年人学第二语言,很难达到母语级融合,且学第二语言时还会干扰母语(语言退化)。

Insight 2:文本和视觉,不再是"零和游戏"

更惊喜的是,Kimi-K2.5 发现了两个跨模态正向迁移现象:

现象一:纯文本 SFT,能激活视觉推理能力。 当前高质量多模态工具调用数据极度稀缺,但高质量纯文本 Agentic 数据(推理、规划、工具使用)非常丰富。由于视觉和文本已在预训练中深度融合,在文本上练出的推理和规划能力会自然迁移到视觉任务上。先练文本,反而让视觉 Agentic 能力的激活效果更好。

现象二:视觉 RL,反过来提升文本长文本推理能力。 研究者的解释:Visual Grounding 这类任务在结构上类似文本中的"结构化信息抽取"——都需要在大量信息中精准定位目标,只是输入的信息分布不同。视觉 RL 实际在强化同一种底层能力,并通过多样化的输入分布提升了模型泛化性。

Kimi-K2.5 完整训练流程

多模态从头融合训练的方案还需再等等,完整训练流程直接参考论文图示即可。

0

评论0

请先
显示验证码
没有账号?注册  忘记密码?