多模态大模型进化史:从 “翻译官” 到 “原生双语大脑” 📅 发布时间:2026/9/14 23:44:47 👁 浏览次数: 最近被多模态的效果圈粉感觉距离那个OCR 糊成一团、指令理解弱到离谱、幻觉高到吓人的时代也没过去多久但多模态模型的效果已经发生了飞跃式的进步。这篇文章我们来系统梳理这背后的进化轨迹模型骨架如何一步步演变、位置编码如何从一维延伸到三维、图片分辨率的难题如何被逐步破解以及多模态训练策略背后最关键的两个反直觉发现。一、多模态骨架的三次进化在进入细节之前先建立一个整体认知框架多模态模型的架构演进本质上是在回答同一个问题——图片和文字到底应该在哪里、用什么方式融合每个时代给出了不同的答案。Era1. 给语言模型装上眼睛2022–2023—— LlavaQwen-VL1-2Visual Instruction TuningLiu et al., 2023核心设计哲学视觉编码器和 LLM 都很贵冻住它们只训练中间的翻译官。这个逻辑很朴素——既然视觉编码器CLIP ViT和语言模型Vicuna/Qwen-7B都已经在各自领域预训练得很好了那就别动它们只用少量数据和算力训练中间的桥梁就好。LLaVA 的两阶段训练阶段冻结什么训练什么用什么数据阶段一特征对齐视觉编码器 LLM只训练适配器图像描述Caption类任务阶段二指令微调只冻结视觉编码器适配器 LLM图像对话问答类任务Qwen-VL 在此基础上加了第三阶段 解冻全部参数用 OCR、Visual Grounding让模型指出图片中特定区域的位置等任务专门强化模型的细粒度感知能力。这是从看到是什么向感知空间关系的第一步迈进。但 Era1 有三个根本性的缺陷驱动了后续的演进“语言优先”的模态失衡视觉模态就像新朋友无法融入文本群体往往被忽略。导致很多图像理解问题上模型幻觉高的吓人。模态“拼接”的本质缺陷视觉模态和文本模态天然存在分布差异、范数差异、信息密度差异导致单纯拼接表征模型很难提取出有效信息深层图像理解能力缺失固定分辨率、和输入层融合导致更多高分辨率细节、空间感知任务的完成都并不好Era2. 让大脑“看见”更深层2024-2025- Qwen-VL3Era1 的翻译官只工作了一次——在图片进入大脑之前。进了大脑视觉信息就和文字混在一起靠 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 前插一段文字 ❤️.0 seconds。为什么这么改 整数帧 ID 作为位置编码有两个缺陷放在一起理解更清晰❌ 问题一信息稀疏文本的 token 位置是连续密集的1,2,3,4,5...视频帧的采样却是稀疏的1,5,10,20,50...→ 模型对帧间距离的感知被稀疏采样严重扭曲❌ 问题二语义错配30fps 采样时帧ID30 代表第1秒1fps 采样时帧ID30 代表第30秒 → 同样的 ID在不同采样率下代表完全不同的时刻而直接使用语义xx seconds可以同时规避以上两个问题它不需要再去“换算”巨大的数字而是像读小说章节标题一样直接“读懂”了当前视频片段的时间点。难题二动态分辨率如何在保留细节的同时控制 Token 数量先理解为什么这是个两难困境。固定分辨率比如 224×224的问题图片一律缩放到这个尺寸高清文档里的小字、密集表格里的数字——统统模糊掉了。这是前期多模态模型 OCR 能力弱的根本原因。但支持高分辨率也不是免费的越高的分辨率如果不压缩就会直接转换成更多的输入token。所以动态分辨率的核心矛盾是细节 vs. Token 预算。Tiling切片拼图—— 不动 ViT绕道走首先是滑动分块方案既然 ViT 只接受固定大小的输入那就把大图切成多个小块每块单独送进 ViT。LLaVA 的 AnyRes 方案在此基础上更进一步同时送入一张缩小的全局缩略图保留整体布局信息和多个局部高清切片保留细节信息将所有编码结果拼接成完整序列。这个方案的优点是实现简单、不需要修改 ViT缺点是切割的边界会打断跨区域的语义关系比如一个表格被切成两半而且 token 数量随分辨率线性增长治标不治本。Gemma 的改进方向是把 ViT 支持的最大输入分辨率直接扩大从 336 扩到 896减少切片次数从而减少切割引入的碎片化。VIR视觉分辨率路由器—— 让模型自己决定压缩多少Tiling 是用同一个压缩率处理所有区域——但实际上图片里的天空背景和密密麻麻的文字对信息密度的需求完全不同。VIR 的核心思想引入一个语义感知的动态压缩路由器让模型自己判断每个 patch 该用多少 token 来表达。训练分两步训练对压缩不敏感的底子随机对输入图片做 4 倍或 16 倍压缩训练模型在不同压缩率下输出尽量一致的结果。目的是让模型学会即使图糊了我也能猜出大概——建立对压缩的鲁棒性。训练路由器本身冻结 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采用的是早期整合视觉全程协同优化两种模态以学习均衡的多模态表示。视觉和文本两种模态如果在训练早期就一起“长大”它们之间的对齐是自然形成的就像双语环境中长大的孩子两种语言在大脑中共生。而“先学文本、后补视觉”就像成年人学第二语言——再怎么努力也很难达到母语级别的融合而且学第二语言时还会干扰母语语言退化Insight2文本和视觉不再是零和游戏更惊喜的是Kimi-K2.5 发现了两个跨模态正向迁移的现象现象一纯文本 SFT能激活视觉推理能力当前高质量的多模态工具调用数据极度稀缺但高质量的纯文本 Agentic 数据推理、规划、工具使用非常丰富。由于模型的视觉和文本已经在预训练中深度融合在文本上练出来的推理和规划能力会自然迁移到视觉任务上。先练文本反而让视觉 Agentic 能力的激活效果更好。现象二视觉 RL反过来提升文本长文本推理能力研究者的解释是Visual Grounding这类任务在结构上类似于文本中的结构化信息抽取——都需要在大量信息中精准定位目标只是输入的信息分布不同。因此视觉 RL 训练实际上在强化同一种底层能力并通过多样化的输入分布提升了模型的泛化性。Kimi-K2.5 完整训练流程因为感觉还要再等等多模态重头融合训练的方案这里不展开说了直接看图吧。