大模型②:多模态大模型
⭐ 核心路径 — 大模型的世界从不止于文本。多模态大模型(MLLM)将 LLM 与视觉、音频等编码器连接,让 AI 真正"看见"和"理解"世界。本讲覆盖 MLLM 的核心架构、训练策略和代表性模型。
学习目标
完成本讲后,你应该能够:
- 解释 MLLM = LLM + 多模态编码器的基本架构范式
- 列举 连接视觉编码器到 LLM 的主要方法(Adapter / Q-Former / 投影层)
- 描述 MLLM 的三阶段训练流程:预训练 → 指令微调 → RLHF
- 比较 LLaVA、Flamingo、GPT-4V、Qwen-VL 的设计差异
- 分析 数据质量与数据量在多模态训练中的权衡关系
一、MLLM 的基本架构
什么是多模态大模型?
多模态大模型(Multimodal Large Language Model, MLLM)是在 [[04-大模型/04-01-大模型基础|LLM]] 基础上扩展多模态感知能力的模型。其核心范式为:
MLLM = 多模态编码器 + 连接器(Connector) + 大语言模型(LLM)架构总览
┌──────────────────────────────────────┐
│ 输出文本 / 动作 │
└────────────────┬─────────────────────┘
▲
┌────────────────┴─────────────────────┐
│ 大语言模型 (LLM) │
│ (LLaMA / Vicuna / Qwen / GPT) │
└────────────────┬─────────────────────┘
▲
┌────────────────┴─────────────────────┐
│ 连接器 (Connector) │
│ (线性投影 / Q-Former / Cross-Attn) │
└────────────────┬─────────────────────┘
▲
┌───────────────────────┼───────────────────────┐
│ │ │
┌─────────┴──────────┐ ┌────────┴───────┐ ┌───────────┴────┐
│ 视觉编码器 (ViT) │ │ 音频编码器 │ │ 其他编码器 │
│ (CLIP / SigLIP) │ │ (Whisper) │ │ (传感器等) │
└────────────────────┘ └────────────────┘ └────────────────┘
▲ ▲
┌────┴────┐ ┌────┴────┐
│ 图像/视频 │ │ 音频 │
└─────────┘ └─────────┘三种连接策略
| 策略 | 代表模型 | 实现方式 | 计算成本 | 跨模态交互深度 |
|---|---|---|---|---|
| 线性投影 | LLaVA | 单层/两层 MLP 映射视觉特征到文本嵌入空间 | 极低 | 浅(简单对齐) |
| Q-Former | BLIP-2 | Transformer 编码器通过可学习 Query 提取视觉信息 | 中 | 中(特征压缩) |
| 交叉注意力 | Flamingo | LLM 层间插入门控交叉注意力层 | 高 | 深(逐层交互) |
二、连接器详解
2.1 线性投影 (Linear Projection)
LLaVA 采用最简单的连接方式:将视觉编码器输出的特征用可训练的线性层投影到 LLM 的词嵌入空间。
图像 → CLIP ViT → 图像特征 (patch tokens)
↓
线性投影 Wx + b (维度: d_vision → d_llm)
↓
视觉 token 序列 + 文本 token → LLM核心直觉: 如果视觉编码器的特征空间和 LLM 的文本嵌入空间已经语义上对齐(via CLIP 对比学习),一个简单的线性投影就足以桥接两者。
优势: 极简、高效、仅增加少量参数 局限: 视觉信息不做二次处理,细节可能丢失
2.2 Q-Former (Query Transformer)
BLIP-2 提出的 Q-Former 是介于视觉编码器和 LLM 之间的轻量 Transformer,通过一组可学习的 Query 向量来"提取"视觉编码器输出的相关信息:
图像 → ViT → 图像特征 (固定)
↑
交叉注意力 ← 可学习 Query (32个)
↓
Q-Former 自注意力
↓
压缩后的视觉 token (32个)
↓
线性投影 → LLM设计关键:
- 可学习 Query(通常 32 个)作为"信息提取的入口",通过交叉注意力从图像特征中收集信息
- Q-Former 自身是一个 Transformer 编码器,包含自注意力和交叉注意力层
- 将视觉信息的空间维度(如 256 个 patch)压缩为固定数量的 token(如 32 个),显著降低 LLM 的计算开销
两阶段预训练:
- 表示学习阶段:Q-Former + 视觉编码器联合训练,使用对比损失 + 图文匹配损失 + 图像描述生成损失
- 生成学习阶段:Q-Former + LLM 通过全连接层连接,冻结 LLM 训练 Q-Former
2.3 门控交叉注意力 (Gated Cross-Attention)
Flamingo 采用了更深入的融合方式——在 LLM 的每一层中插入门控交叉注意力层,让 LLM 的文本表示在每层都能"看向"视觉特征:
Flamingo Block (在 LLM 每层插入):
┌───────────────────────┐
│ 文本输入 │
│ ↓ │
│ LLM 自注意力层 (冻结) │
│ ↓ │
│ 门控交叉注意力 ←── 视觉特征 │ ← 新增模块
│ ↓ │
│ FFN (冻结) │
│ ↓ │
│ 文本输出 │
└───────────────────────┘门控机制: $\text{GatedXAttn}(x, v) = x + \alpha \cdot \text{CrossAttn}(x, v)$
其中 $\alpha$ 是可学习的门控参数,初始化为 0(意味着新增模块开始时不影响 LLM 输出),训练中逐渐激活。这种设计保护了 LLM 的预训练知识不被灾难性遗忘。
三、训练策略
MLLM 的训练通常遵循三阶段流程:
阶段 1:多模态预训练
目标: 建立视觉特征与 LLM 文本空间之间的基本对齐,让 LLM 学会"看"。
训练数据: 大规模图文对(如 LAION-5B、CC12M、SBU Captions),通常 1-10 亿对
训练方式:
- 冻结视觉编码器和 LLM,只训练连接器(投影层 / Q-Former)
- 或冻结视觉编码器,微调连接器 + LLM(LoRA)
- 损失函数:语言建模损失(next token prediction)
数据规模 vs. 连接器类型:
| 连接器 | 所需数据量 | 对齐程度 | 训练速度 |
|---|---|---|---|
| 线性投影 | ~600K 对 | 够用 | 最快 |
| Q-Former | ~1.29 亿对 | 更好 | 中等 |
| 交叉注意力 | 取决于 LLM 规模 | 最深入 | 最慢 |
阶段 2:多模态指令微调
目标: 让 MLLM 遵循视觉-语言指令,执行对话、问答、推理等任务。
训练数据: 多模态指令数据集(LLaVA-Instruct-150K 等),通常由 GPT-4/VLM 自动生成
关键发现(LLaVA):
- 仅需 150K 指令数据(由 GPT-4 生成),就能让 MLLM 具备有意义的视觉对话能力
- 数据质量远重要于数量
- 相比预训练阶段,指令微调阶段使用更小的学习率和更多的 epoch
指令数据的数据类型:
| 类型 | 格式 | 示例 | 来源 |
|---|---|---|---|
| 单轮问答 | 图像 + 问题 → 答案 | "图中有几只猫?" → "3只" | GPT-4 基于 caption 生成 |
| 多轮对话 | 图像 + 多轮对话 | "描述这张图" → ... "怎么修?" → ... | GPT-4 模拟助手行为 |
| 推理链 | 图像 + 推理 → 答案 | "逐渐分析..." | 思维链提示生成 |
| 详述 | 图像 → 详细描述 | 结构化医学报告 | GPT-4 结构化输出 |
阶段 3:RLHF / 偏好对齐
目标: 使 MLLM 的输出与人类偏好对齐——更真实、更有帮助、更安全。
方法:
- RLHF-V:利用人类对 MLLM 输出的偏好标注训练奖励模型,再用 PPO 优化
- DPO:直接偏好优化,不需要奖励模型
- 针对多模态的挑战:幻觉问题(hallucination)在 MLLM 中更为严重——模型可能"看到"图像中不存在的物体
重要观察: MLLM 的 RLHF 比纯文本 LLM 的 RLHF 更难,因为人类反馈需要同时考虑视觉准确性和语言质量。
四、代表性 MLLM 对比
| 模型 | 时间 | 视觉编码器 | 连接器 | LLM 基座 | 训练数据 | 关键特性 |
|---|---|---|---|---|---|---|
| Flamingo | 2022.04 | NFNet / ViT | 门控交叉注意力 | Chinchilla 70B | 2.1B 图文对 + 27M 视频 | 冻结 LLM、小样本学习 |
| BLIP-2 | 2023.01 | ViT-g (EVA-CLIP) | Q-Former | Vicuna 7/13B | 129M 图文对 | Query 压缩、高效冻结训练 |
| LLaVA | 2023.04 | CLIP ViT-L/14 | 线性投影 (MLP) | Vicuna 7/13B | 600K 图文 + 150K 指令 | 极简架构、GPT-4 数据蒸馏 |
| LLaVA-1.5 | 2023.10 | CLIP ViT-L/14 | 两层 MLP | Vicuna 7/13B | 改进数据 + 视觉微调 | 简单改进即达 SOTA |
| Qwen-VL | 2023.08 | ViT-bigG (CLIP) | 单层 CR + Q-Former-like | Qwen-7B | 1.4B 图文 + 50M grounding 数据 | 中文优化、细粒度定位 |
| CogVLM | 2023.10 | ViT (EVA-CLIP) | 深层交叉注意力(视觉专家) | Vicuna 7B | 1.5B 图文 | 视觉 token 每层交互 |
| GPT-4V | 2023.09 | 未公开 | 未公开 | GPT-4 | 未公开 | 多模态推理、细节理解 |
| InternVL | 2024.01 | InternViT-6B | 动态分辨率 + 像素对齐 | InternLM | 公开 + 大规模私有数据 | 6B 超大视觉编码器 |
关键洞察
- LLaVA 的简单性是一种设计胜利:线性投影 + 冻结 ViT + Vicuna 就能达到惊人效果,说明 CLIP 的视觉特征已经高度对齐到语义空间
- Qwen-VL 是中文多模态的代表:从基座模型(Qwen)到训练数据(中文占比高)都针对中文场景优化,支持中英文混合输入
- GPT-4V 是"黑盒天花板":虽然细节未公开,但其在复杂多模态推理上的表现代表了当时的最高水平
- InternVL 挑战"小视觉编码器"假设:将视觉编码器扩展到 6B 参数后,视觉理解能力显著提升
五、数据质量 vs. 数据量
核心争议
MLLM 训练中一直存在一个关键问题:更多的数据总是更好吗?
LLaVA 的启示
LLaVA 仅使用 600K 的 CC3M 子集进行预训练对齐 + 150K GPT-4 生成的指令数据,就实现了强大的视觉-语言能力。相比之下,Flamingo 使用了 2.1B 图文对。
| 维度 | 大而杂的数据 | 小而精的数据 |
|---|---|---|
| 视觉概念覆盖 | 广 | 有限 |
| 对齐质量 | 噪声大 | 高度对齐 |
| 训练成本 | 极高 | 低 |
| 下游表现 | 饱和后增益递减 | 质量陷阱 |
数据质量的维度
- 图文相关性(Image-Text Alignment):图像和文本描述是否真正匹配?LAION-5B 中大量图文对噪声严重
- 语言多样性:描述是否涵盖多种表达方式?过于模板化的描述(如 "Photo of...")不利于泛化
- 视觉多样性:是否覆盖不同场景、风格、文化背景?
- 指令复杂性:指令是否涉及推理、空间关系、计数等多维能力?
实际指导原则
数据筛选优先级(从高到低):
1. 高相关性图文对(CLIP score 过滤) ← 最重要
2. 多样化指令覆盖(推理 / 空间 / 计数)
3. 多轮对话数据(提升交互深度)
4. 数据量扩展(在质量达标的基础上)⭐ 核心经验: 数据质量优先于数据量。好的图文对 > 1亿对有噪声的图文对。但在质量有保障的条件下,更多数据仍然可以提升泛化性——两者不是非此即彼,而是质量先行,数量随后。
六、挑战与前沿方向
6.1 幻觉问题
MLLM 在视觉描述中可能"编造"图像中不存在的内容。这是目前最突出的问题之一:
- 物体幻觉:描述不存在的物体("图片里有一只狗"但实际没有)
- 属性幻觉:错误描述物体属性("红车"但实际是蓝车)
- 关系幻觉:错误描述物体间关系("猫在椅子上面"但实际在下面)
6.2 高分辨率视觉理解
当前 MLLM 通常将图像缩放到固定大小(如 224×224),丢失了细节信息。解决方案:
- 动态分辨率(Qwen-VL / InternVL):根据输入图像比例动态分配 token
- 双编码器:一个低分辨率编码器捕捉全局,一个高分辨率编码器捕捉细节
- 滑动窗口:将大图切分为多个 patch 分别处理
6.3 多模态扩展
超越视觉 + 文本,融合更多模态:
- 视频理解:时间维度的建模(Video-LLaMA、VideoChat)
- 音频理解:声音 + 图像的联合推理(ImageBind、AnyMAL)
- 具身 MLLM:连接机器人的传感器输入(PaLM-E 延续)
- 文档理解:混合文字、表格、图表的复杂页面理解(DocLLM)
6.4 评估困境
| 挑战 | 描述 | 尝试方案 |
|---|---|---|
| 多模态基准不足 | 大多数基准只测单一能力 | MME、MMBench、SEED-Bench |
| GPT-4V 评估偏差 | 用 GPT-4V 作为评判者可能偏向 GPT-4-like 模型 | 多样化评审、人工验证 |
| 幻觉标准不统一 | 什么是"幻觉"的定义不统一 | POPE、CHAIR 等自动指标 |
七、未来展望
- 统一架构:一个模型无缝处理文本、图像、视频、音频乃至 3D 和传感器数据
- 延展推理:MLLM 在复杂视觉推理(数学、编程、科学)上的能力将远超纯文本模型
- 世界模型雏形:多模态理解 → 物理世界建模 → 因果关系推理
- 端上部署:MLLM 的小型化(小视觉编码器 + 小 LLM)将使手机、AR 眼镜等设备具备视觉理解能力
这些方向紧密连接着 [[03-多模态/03-01-连接与对齐|多模态对齐]] 的基础理论和 [[03-多模态/03-03-跨模态迁移|跨模态迁移]] 的学习范式。
关键概念
| 概念 | 定义 |
|---|---|
| 多模态大模型 (MLLM) | 在 LLM 基础上扩展视觉等多种模态感知能力的大模型 |
| 连接器 (Connector) | 将多模态编码器输出映射到 LLM 嵌入空间的桥梁模块 |
| Q-Former | BLIP-2 提出的可学习 Query Transformer,用于提取视觉相关信息 |
| 门控交叉注意力 | Flamingo 使用的在 LLM 层间插入的新增注意力机制 |
| 视觉指令微调 | 利用 GPT-4 等模型生成多模态指令数据来微调 MLLM |
| 幻觉 (Hallucination) | MLLM 描述视觉内容时"编造"不存在的物体/属性/关系的现象 |
| 动态分辨率 | 根据输入图像的比例和大小动态调整视觉 token 数量的策略 |
讨论问题
- LLaVA 使用极简单的线性投影连接器,性能却与更复杂的架构相近。你认为"简单性原则"在多模态大模型中是否普遍成立?什么场景下复杂连接器是必须的?
- MLLM 的幻觉问题是否比纯文本 LLM 更严重?为什么多模态场景下的"事实性"更难保证?
- 如果让你设计一个支持文本+图像+音频+传感器数据的统一 MLLM,你会选择 Q-Former 还是交叉注意力作为连接策略?为什么?
- GPT-4V 的训练细节未公开,但性能远超开源 MLLM。你认为"秘方"是数据、架构还是训练策略?
- 数据质量 vs. 数据量的争议——你如何设计一个实验来定量验证数据质量在 MLLM 训练中的价值?
延伸阅读
- 必读:Visual Instruction Tuning (LLaVA) — 视觉指令微调的开创性工作,NeurIPS 2023
- 必读:Flamingo: a Visual Language Model for Few-Shot Learning — 冻结 LLM 的多模态范式,NeurIPS 2022
- 推荐:BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models — Q-Former 的诞生
- 推荐:Qwen-VL: A Versatile Vision-Language Model — 中文 MLLM 代表
- 扩展:CogVLM: Visual Expert for Pretrained Language Models — 深层视觉融合
- 扩展:MLLM 幻觉综述 — 多模态幻觉的全面分析
相关笔记
- [[04-大模型/04-01-大模型基础|大模型基础]] — LLM 的核心原理与规模法则
- [[03-多模态/03-01-连接与对齐|连接与对齐]] — 多模态对齐的对比学习与 CLIP 基础
- [[03-多模态/03-03-跨模态迁移|跨模态迁移]] — 跨模态学习的三大范式
- [[03-多模态/03-02-交互与融合|交互与融合]] — 多模态 Transformer 融合架构
- [[04-大模型/04-05-本周阅读|第8-11周阅读]] — 必读和扩展阅读列表
- [[讨论课/讨论04-多模态大模型|讨论04:多模态大模型]]
- [[MOC-如何AI一切|🗺️ 返回内容地图]]
