
目录
1. 多模态基础概念
1.1 什么是模态(Modality)
模态是指信息的存在形式或感知通道。在人工智能领域,常见的模态包括:
| 文本(Text) | 自然语言句子、段落、文档 |
| 图像(Image) | 照片、图表、截图 |
| 视频(Video) | 连续帧图像序列 |
| 音频(Audio) | 语音、音乐、环境音 |
| 3D 数据 | 点云、网格、体素 |
| 传感器数据 | 温度、压力、加速度 |
1.2 什么是多模态大模型(Multimodal LLM)
多模态大模型是指能够同时理解和/或生成多种模态信息的大规模神经网络模型。与纯文本的 LLM(如早期 GPT 系列)不同,多模态模型可以:
- 理解:接收文本+图像等输入,进行跨模态推理(如图片问答、文档理解)
- 生成:输出不同模态的内容(如文生图、文生视频、语音合成)
- 理解+生成:既能接收多模态输入,也能产生多模态输出(如 GPT-4o)
1.3 多模态的核心挑战
2. 原生多模态 vs 后挂式多模态:核心区别
这是理解当前多模态 LLM 技术路线差异的最关键问题。
2.1 后挂式多模态(Post-hoc / Plugin-style Multimodal)
核心思想:先有一个强大的纯文本 LLM,然后通过外挂视觉编码器等模块,\”教会\”它看图。
通俗比喻:就像给一个只会读文字的人戴上了一副\”智能眼镜\”,这副眼镜能把看到的东西翻译成文字描述,然后这个人再基于文字描述来理解和回答问题。
典型代表:
- LLaVA 系列(LLaVA, LLaVA-1.5, LLaVA-NeXT)
- Qwen-VL / Qwen2-VL
- InternVL 系列
- CogVLM / CogVLM2(GLM 系列多模态)
- DeepSeek-VL / DeepSeek-VL2
- MiniGPT-4
- mPLUG-Owl
架构特征:
输入图像 → 视觉编码器(ViT) → 投影层(MLP/Q-Former) → [拼接到文本token序列中] → 已训练好的LLM → 输出
训练策略(通常是两阶段或三阶段):
关键特点:
- LLM 主体在第二阶段之前已经是\”成型\”的,多模态能力是\”后天添加\”的
- 视觉编码器通常是独立预训练的(如 CLIP ViT),与 LLM 的训练是分离的
- 投影层是连接两个\”独立系统\”的桥梁
- LLM 的原始文本能力基本不受影响(或影响很小)
2.2 原生多模态(Natively Multimodal / Native Multimodal)
核心思想:从模型设计之初就将多种模态作为统一的输入输出,模型在预训练阶段就同时学习多种模态的表示和它们之间的关系。
通俗比喻:就像一个天生就能看、能听、能读的孩子,所有感官能力是在成长过程中同时发展起来的,而不是后天装上去的。
典型代表:
- Gemini 系列(Gemini 1.0, Gemini 1.5, Gemini 2.0)—— 目前最典型的原生多模态模型
- GPT-4o(OpenAI 声称是原生多模态)
- Fuyu(Adept AI,较早期的原生多模态尝试)
- Chameleon(Meta,早期融合的原生多模态模型)
架构特征:
多种模态输入 → 统一的 Tokenizer → [混合token序列] → 统一的 Transformer → 多模态输出
训练策略:
- 从预训练阶段开始就使用多模态数据进行训练
- 不区分\”文本预训练\”和\”多模态对齐\”阶段
- 模型在学习语言的同时就学习了视觉、音频等模态的表示
- 所有模态共享同一个 Transformer 主干网络
关键特点:
- 模型从\”出生\”就具备多模态理解能力
- 不需要单独的对齐阶段,因为模态间的对齐是在预训练过程中自然学习的
- 通常使用统一的 tokenizer,将所有模态都转化为离散 token
- 理论上具有更强的跨模态推理能力
2.3 核心区别对比表
| 模型诞生方式 | 先有文本LLM,后加视觉能力 | 从一开始就多模态训练 |
| 训练流程 | 分阶段(预训练→对齐→微调) | 端到端统一训练 |
| 视觉编码器 | 通常独立预训练(如CLIP) | 与语言模型一起训练或使用统一编码器 |
| 模态连接 | 需要投影层/适配器连接 | 天然统一在同一架构中 |
| 跨模态理解深度 | 较浅,依赖文本中间表示 | 较深,原生跨模态表示 |
| 可扩展性 | 受限于已有LLM架构 | 天然支持新模态扩展 |
| 训练成本 | 相对较低(可复用已有LLM) | 很高(需要从头多模态预训练) |
| 典型代表 | LLaVA, Qwen-VL, InternVL | Gemini, GPT-4o, Chameleon |
3. 后挂式多模态架构详解
3.1 整体架构
后挂式多模态的架构可以用一个公式概括:
多模态LLM = 视觉编码器 + 投影层/适配器 + 预训练LLM \\text{多模态LLM} = \\text{视觉编码器} + \\text{投影层/适配器} + \\text{预训练LLM} 多模态LLM=视觉编码器+投影层/适配器+预训练LLM
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ 图像输入 │────▶│ 视觉编码器 │────▶│ 投影层 │
│ │ │ (ViT/CLIP) │ │ (MLP/QFormer)│
└─────────────┘ └──────────────┘ └──────┬──────┘
│
▼ (视觉token拼接到文本token)
┌─────────────┐ ┌──────────────────────────────────────┐
│ 文本输入 │────▶│ 预训练 LLM (frozen/partial) │────▶ 文本输出
│ │ │ │
└─────────────┘ └──────────────────────────────────────┘
3.2 视觉编码器(Vision Encoder)
作用:将输入图像转化为一系列视觉特征向量(visual tokens)。
主流选择:
CLIP ViT(Contrastive Language-Image Pre-training)
- 由 OpenAI 在 2021 年提出
- 使用对比学习在 4 亿图文对上训练
- 产生的视觉特征天然与文本对齐
- 常用规格:ViT-L/14 (224/336), ViT-bigG/14
- 是绝大多数后挂式多模态模型的首选
SigLIP
- Google 提出,使用 Sigmoid Loss 替代 CLIP 的 Softmax Loss
- 训练更稳定,效果更好
- 被 PaliGemma、InternVL2 等采用
EVA-CLIP
- 对 CLIP 的改进,使用 Masked Image Modeling 进行额外预训练
- 被 InternVL 等采用
DINOv2
- Meta 提出的自监督视觉模型
- 不依赖文本配对数据训练
- 在某些细粒度理解任务上表现更好
InternViT
- InternLM 团队自研的大规模视觉编码器
- InternVL 系列使用,参数量达 6B
关键参数:
- Patch Size:图像被切分为多大的小块(通常 14×14 或 16×16)
- 分辨率:输入图像的尺寸(224×224, 336×336, 448×448 等)
- 输出 token 数量:对于 336×336 的输入,patch size 为 14 时,输出 24×24=576 个视觉 token
3.3 投影层 / 适配器(Projection Layer / Adapter)
核心问题:视觉编码器输出的特征空间与 LLM 的文本嵌入空间是不同的,投影层负责将视觉特征\”翻译\”成 LLM 能理解的语言。
主要方案:
3.3.1 线性投影(Linear Projection)
最简单的方案,用一个线性层将视觉特征映射到 LLM 的维度:
h v i s u a l = W ⋅ f v i s i o n + b \\mathbf{h}_{visual} = W \\cdot \\mathbf{f}_{vision} + b hvisual=W⋅fvision+b
- 代表:LLaVA v1
- 优点:简单高效
- 缺点:表达能力有限
3.3.2 MLP 投影(Multi-Layer Perceptron)
使用多层感知机进行更复杂的映射:
h v i s u a l = MLP ( f v i s i o n ) \\mathbf{h}_{visual} = \\text{MLP}(\\mathbf{f}_{vision}) hvisual=MLP(fvision



