多模态大模型可以处理文字、图片、音频和视频,但它并不是像人一样直接“看见”图片。
它真正做的事情是:先把图片转换成一串向量,再将这些向量交给语言模型理解和推理。
整条链路可以概括为:
图片 → 视觉编码器 → 视觉 Token → 模态对齐 → LLM → 回答本文用一条主线解释多模态模型的核心原理,以及它为什么容易在长截图、计数和小字识别上出错。
1. 图片为什么不能直接交给 LLM?
语言模型并不直接处理文字,而是处理一串向量:
文本 → Token → Embedding → Transformer图片则是二维像素矩阵。例如一张1024 × 1024的 RGB 图片,包含三百多万个通道值。直接将全部像素交给语言模型,不仅计算量巨大,而且像素与文字也不在同一个语义空间中。
因此,多模态模型首先要解决两个问题:
- 把图片转换成适合 Transformer 处理的序列;
- 让视觉信息与文本信息能够互相理解。
2. 图片如何变成视觉 Token?
现代多模态模型通常使用 ViT(Vision Transformer)或类似结构处理图片。
ViT 的基本方法是把图片切成很多小块,也就是 Patch。
假设一张图片大小为224 × 224,每个 Patch 为16 × 16,那么整张图片会被切成:
14 × 14 = 196 个 Patch每个 Patch 会被展平并映射成一个向量,再加上位置信息,最终形成一组视觉 Token。
图片 ↓ 切成 Patch ↓ 映射为向量 ↓ 加入位置编码 ↓ 视觉 Token位置编码非常重要。没有它,模型只能知道图片中出现了哪些局部特征,却不知道它们位于左边、右边、上方还是下方,也就难以理解表格行列、流程箭头和页面布局。
需要注意的是,视觉 Token 并不是文字 Token。它只是以序列形式保存图片中的物体、颜色、文字和空间关系等特征。
3. 视觉 Token 如何交给语言模型?
视觉编码器输出的向量与语言模型的 Embedding 通常不在同一个空间中,因此中间需要一个连接模块。
常见方案有三种:
| 方案 | 作用 | 特点 |
|---|---|---|
| Linear Projection | 用线性层转换维度 | 简单、成本低 |
| MLP Projector | 用多层网络完成映射 | 表达能力更强 |
| Q-Former / Resampler | 从大量视觉 Token 中提取少量关键信息 | 节省上下文,但可能丢失细节 |
其中,Q-Former 可以理解成一个“视觉信息摘要器”。
假设视觉编码器输出了 1000 个 Token,Q-Former 可以使用少量可学习 Query,从中提炼出 32 个或 64 个浓缩 Token,再交给 LLM。
1000 个视觉 Token ↓ Q-Former / Resampler ↓ 32 个浓缩 Token ↓ 语言模型这样能够减少计算量,但也会产生信息瓶颈。普通照片只需要保留主体和场景,影响可能不大;长截图、代码、日志和复杂表格依赖大量局部细节,压缩后更容易漏读。
4. 拼装式与原生多模态有什么区别?
目前可以将多模态模型粗略分为两类。
拼装式多模态
视觉编码器 + 连接模块 + 语言模型这种方案可以复用已经训练好的 ViT 和 LLM,训练成本较低,也方便替换模块。LLaVA、BLIP-2 等开源模型都体现了这种设计思路。
它的问题是视觉模型与语言模型原本独立训练,中间的连接模块可能成为信息瓶颈。
原生或统一多模态
另一类模型会在更早的训练阶段联合使用文字、图片、音频或视频数据,使不同模态之间的融合更深入。
这类模型通常具有更自然的跨模态交互能力,但训练成本更高。对于闭源模型,其完整内部结构通常没有公开,因此不能简单认为所有模态一定完全共享同一套网络。
两者的本质区别不是“能不能看图”,而是:不同模态从什么时候开始联合训练,以及融合得有多深。
5. 为什么长截图特别容易出错?
长截图难处理,主要有三个原因。
第一,视觉 Token 数量太多。图片尺寸越大,Patch 数量越多,计算量和上下文占用也随之增加。
第二,系统通常会缩小或切分图片。缩放会让小字、表格线和图标变模糊,切分则可能破坏原本的上下文关系。
第三,视觉 Token 经常会被压缩。大量细节被浓缩成少量表示后,模型更容易漏掉日志中的某一行、表格中的某一列,或者将相隔很远的信息错误关联。
因此,对长截图更有效的使用方式是:
- 按语义区域分段截图;
- 明确指出需要关注的位置;
- 先要求模型转写文字,再进行分析;
- 对数字、配置和故障码进行人工复核。
一张包含全部内容的超长截图,不一定比几张结构清晰的局部截图更有效。
6. 多模态模型的能力边界
多模态模型擅长的是高层语义理解,例如:
- 描述图片场景;
- 理解架构图和流程图;
- 识别主要物体及其关系;
- 对截图文字进行识别和总结;
- 分析图表的大致趋势。
但它仍然不擅长:
- 精确计数大量相似物体;
- 稳定读取极小字号文字;
- 准确对应复杂表格的每一行和每一列;
- 给出像素级坐标;
- 判断非常细微的颜色、纹理或设备差异。
视觉幻觉也主要来自这里:当图片信息模糊、缩放或丢失时,语言模型可能依据常见模式补全答案,把“通常存在的内容”误认为“图片中确实存在的内容”。
所以,多模态大模型更适合被理解为:
一个具有视觉输入能力的推理引擎,而不是绝对精确的 OCR、检测器或测量工具。
总结
多模态大模型的核心并不神秘,它主要完成了三件事:
- 使用 ViT 等视觉编码器,把图片转换成视觉 Token;
- 使用 Projector、Q-Former 或 Resampler,将视觉信息对齐到语言模型能够理解的空间;
- 让语言模型结合视觉 Token 和文本 Token 完成推理与生成。
非文本信息 ↓ 序列化表示 ↓ 模态对齐 ↓ 跨模态理解与推理它真正解决的问题是:如何把图片、音频和视频等现实世界信号,转换成 Transformer 能够理解的表示。
理解了这条链路,也就能理解为什么多模态模型能够看图,同时又会在长截图、小字、计数和精确定位上出现错误。
参考资料
- An Image is Worth 16x16 Words(ViT)
- Learning Transferable Visual Models From Natural Language Supervision(CLIP)
- BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
- Visual Instruction Tuning(LLaVA)