LLM & Multimodal 面试复习笔记

05: 多模态大模型

核心主题:经典架构演进 + 现代主流范式 + 面试高频考点
来源:Base-LLM 第六部分 + Happy-LLM + 多模态面试准备手册

1. 多模态概述与挑战

多模态:系统处理 2+ 种异构模态(文本/图像/音频/视频),并显式建模其语义关联关系。

关键区分:"多模态" ≠ 多数据源(需异构 + 互补 + 显式对齐/融合);多模态 ≠ 多任务学习(前者是信息来源维度,后者是目标函数维度)。

1.1 五大核心挑战

挑战描述代表方法
表示 (Representation)异构数据映射到统一空间CLIP 共享嵌入空间
对齐 (Alignment)跨模态对应关系对比学习 (InfoNCE)
融合 (Fusion)整合多模态信息推理Cross-Attention, Q-Former
转换 (Translation)跨模态生成(一对多歧义)Image Captioning, TTS
协同学习 (Co-learning)跨模态知识迁移Zero-shot, 知识蒸馏

1.2 多模态 LLM 架构演进四阶段

阶段1: 连接式 (Connection)              阶段2: 过渡式 (Transition)
BLIP-2, LLaVA, InstructBLIP           Flamingo, Idefics
[冻结ViT + 投影层/适配器 + 冻结LLM]     [冻结LLM + 内部注入视觉注意力层]
  |                                       |
  +-- 优点: 训练便宜, 模块化替换           +-- 优点: few-shot ICL, 更深融合
  +-- 缺点: 浅层融合, 视觉细节丢失         +-- 缺点: 仍需预训练ViT, Gate调参
  +-- 核心: 让LLM自行处理视觉信息          +-- 核心: 在LLM内部做视觉-语言交互
  +-- 关键洞察: 高质量数据 > 复杂桥接       +-- 关键洞察: 渐进注入保护语言能力
        |                                       |
        v                                       v
阶段3: 原生统一 (Native)               阶段4: 端到端全能 (End-to-End Omni)
Chameleon, Janus                       GPT-4o, Qwen3-Omni, MiniCPM-o
[统一词表 + 单网络 + 自回归NTP]          [实时多模态交互 + 全模态I/O]
  |                                       |
  +-- 优点: 深度跨模态推理                  +-- 优点: 实时交互, 全模态统一
  +-- 缺点: 需海量数据(10T+), 训练不稳定    +-- 缺点: 工程极复杂, 资源需求极高
  +-- 核心: 图像也是token, 一切皆NTP        +-- 核心: Thinker-Talker分离, 双工交互
  +-- 关键洞察: 理解≠生成, 图像生成是瓶颈   +-- 关键洞察: 模态间对齐需端到端学习

1.3 代表性模型时间线

时期模型核心贡献
2021CLIP (OpenAI)对比学习对齐图文,零样本迁移
2022Flamingo (DeepMind)少样本多模态 ICL,Gated X-Attn
2023.01BLIP-2 (Salesforce)Q-Former 桥接冻结模块,参数高效
2023.04LLaVA (UW-Madison)极简线性投影 + 视觉指令微调
2023.06InstructBLIP指令感知的视觉特征提取
2023.10LLaVA-1.5MLP 投影 + 高分辨率 + 强数据配方
2023.12Qwen-VL (阿里)多任务多分辨率,Grounding 能力
2024.02InternVL 1.5 (上海AI Lab)大视觉编码器 + 动态分辨率
2024.05LLaVA-NeXT / OneVision统一图像/视频/多图理解
2024.09Qwen2-VLNaive Dynamic Resolution + 视频流式
2024.12InternVL 2.5超大规模 + MoE + 开源 SOTA
2025Qwen3-Omni / GPT-4o全模态输入输出统一

2. ViT (Vision Transformer)

2.1 Patch Embedding

核心思想:将图像切成 patch,当作 token 喂给标准 Transformer

$$N = \frac{H \times W}{P^2} \quad (\text{patch数量})$$ $$z_0 = [x_{class};\; x_p^1 E;\; x_p^2 E;\; \ldots;\; x_p^N E] + E_{pos}$$

2.2 架构特性

特性ViTCNN
归纳偏置极少(无局部性/平移等变性假设)强(卷积核 = 局部连接 + 权值共享)
第一层感受野全局(Self-Attention)局部(kernel size)
数据需求大(需大规模预训练,如 JFT-300M / ImageNet-21K)中等
扩展性极佳(scaling law)有天花板
复杂度$O(N^2)$ where $N = (H \times W) / P^2$$O(H \times W \times k^2)$

ViT 的核心贡献

证明了 Transformer 是 CV + NLP 统一的通用计算原语。ViT 的成功是后续一切多模态 Transformer 的基础——图像 patch 和文本 token 本质上都是序列元素,可以用同一架构处理。

3. CLIP 与对比学习

3.1 对比学习框架

CLIP 架构(OpenAI, 2021)

双塔模型:Image Encoder (ViT-L/14 或 ResNet-50×64) + Text Encoder (12-layer Transformer, 63M params, GPT-2 style)

两个 encoder 输出经线性投影 + L2 归一化后,在共享 $d=512$ 维空间中做对比学习。

完整架构流程

Image Encoder (ViT-L/14):
  Image (224×224) → 16×16 patches → 196 patch tokens + [CLS]
  → 12-layer Transformer (d=1024, heads=16)
  → [CLS] output → Linear(1024, 512) → L2 Norm → image embedding v_i

Text Encoder (GPT-2 style, modified):
  Text → BPE Tokenize (vocab=49152) → max 76 tokens
  → 12-layer Transformer (d=512, heads=8, causal mask)
  → [EOS] token output → Linear(512, 512) → L2 Norm → text embedding t_j

对比学习:
  相似度矩阵 S[i,j] = cos_sim(v_i, t_j) × exp(τ)   [τ 可学习, 初始 log(1/0.07)]
  Loss = symmetric cross-entropy on S

训练目标:在 $N \times N$ 的相似度矩阵上做对称交叉熵(InfoNCE):

$$\mathcal{L} = -\frac{1}{2N}\sum_{i=1}^N\left[\log\frac{e^{s_{ii}/\tau}}{\sum_j e^{s_{ij}/\tau}} + \log\frac{e^{s_{ii}/\tau}}{\sum_j e^{s_{ji}/\tau}}\right]$$

$s_{ij} = \text{cos\_sim}(v_i, t_j)$,$\tau$ 为可学习温度参数(初始 $\log(1/0.07) \approx 2.66$)

训练关键细节

面试深入:为什么 CLIP 用对比学习而不用生成式目标?

3.2 Zero-shot 分类与下游应用

Zero-shot Classification:
1. 对所有类别生成文本: "A photo of a {class_name}."
2. 用 Text Encoder 编码所有类别文本 -> T_1, T_2, ..., T_K
3. 用 Image Encoder 编码测试图像 -> V
4. 计算 cos_sim(V, T_k) for all k
5. softmax(相似度 × exp(τ)) -> argmax 即为预测类别

Prompt Engineering (提升 zero-shot):
  基础: "A photo of a {class}."
  增强: "A photo of a {class}, a type of pet."  (加领域上下文)
  集成: 对 80 个 prompt 模板取平均 → +3.5% 提升

CLIP 的下游应用生态

应用如何使用 CLIP代表模型
VLM 视觉编码器冻结 Image Encoder 提供视觉特征LLaVA, MiniGPT-4, InstructBLIP
文生图条件编码Text Encoder 编码 prompt → cross-attn 条件Stable Diffusion, DALL·E 2
图像检索图文嵌入在同一空间 → 跨模态最近邻搜索多种检索系统
图像生成评估CLIPScore = cos_sim(生成图, prompt)FID + CLIPScore 标配
开放词汇检测region embedding 与类别文本匹配OWL-ViT, Grounding DINO

3.3 CLIP 变体与改进

模型核心改进技术细节意义
SigLIP (Google, 2023)Sigmoid Loss 替代 Softmax每对独立计算二分类 loss,无需全局负样本小 batch 也能训练好;被 PaLI/Idefics2 采用
EVA-CLIP (BAAI, 2023)高效大 ViT 训练策略MIM 预训练 → CLIP 微调;用 EVA 的 1B ViT训练稳定,更快收敛
OpenCLIP (LAION)开源复现 + DataComp用 LAION-2B/5B 开源数据训练;DataComp 找最优数据配方社区可用,持续改进
MetaCLIP (Meta, 2023)数据策展算法公开 CLIP 数据筛选算法,用 CommonCrawl 复现证明数据质量 > 数量
DFN用小 CLIP 过滤训练数据先训 small CLIP → 过滤 noisy pairs → 训 large CLIP自举式数据清洗

SigLIP 深度解析

问题:CLIP 的 Softmax InfoNCE 需要全局负样本(依赖大 batch = 32768),分布式训练时需要跨 GPU all-gather 所有 embedding。

SigLIP 方案:改为 Sigmoid 二分类 Loss:

$$\mathcal{L}_{SigLIP} = -\frac{1}{N}\sum_{i,j} \log\sigma\left(z_{ij} \cdot (s_{ij} \cdot \tau + b)\right)$$

$z_{ij} = +1$ 若 $(i,j)$ 为正对,$-1$ 为负对;$\tau, b$ 为可学习参数

EVA-CLIP:为什么 MIM 预训练有帮助?

3.4 CLIP 的局限

CLIP 五大局限(面试高频)

  1. 组合性理解弱:难区分"红杯在蓝盘上" vs "蓝杯在红盘上"(属性绑定失败)。根因:对比学习将整张图/整段文本压缩为单个向量,丢失了结构化关系
  2. 空间关系差:对物体相对位置关系理解弱。[CLS] 聚合了全局信息但忽略局部空间关系
  3. 计数能力有限:难以精确数出图像中物体数量。全局表示无法编码精确数量信息
  4. Bag-of-Words 倾向:对词序不敏感("dog bites man" ≈ "man bites dog")。Text Encoder 虽有 causal mask,但对比目标只看最终 [EOS] 向量相似度
  5. 无生成能力:是判别模型,不能生成图像或文本。对比学习只学习匹配,不学习条件生成分布

这些正是多模态 LLM 要解决的问题——LLM 的语言生成能力 + CLIP 的视觉表示 = VLM。

面试:CLIP 为什么在 VLM 中作为视觉编码器而非直接使用?

4. 视觉编码器选型

编码器特点适用场景代表模型
CLIP ViT对比学习预训练,图文语义对齐好语义理解为主LLaVA, MiniGPT-4
SigLIPSigmoid Loss,训练更高效高效训练PaLI, Idefics2
DINOv2自监督,空间细粒度强检测/分割/GroundingCambrian-1 混合编码
InternViT-6B超大 ViT,持续训练追求极致性能InternVL 系列
EVA-CLIP高效大规模 ViT 训练通用 backbone多模型通用

面试:视觉编码器如何选?

CLIP ViT:天然图文对齐,适合语义理解(多数 MLLM 的默认选择)。

DINOv2:自监督训练,空间细粒度强(适合检测/分割/Grounding),但缺语言对齐。

混合编码器:Cambrian-1 证明 CLIP + DINOv2 混合可取长补短(语义 + 空间)。

超大 ViT:InternVL 用 6B ViT 追求极致性能,但训练/推理成本高。

5. 模态桥接 (Modality Bridging)

5.1 五种桥接方法对比

方法机制视觉Token数代表模型优劣
线性/MLP 投影简单映射视觉特征到 LLM 空间576+ (全量)LLaVA, LLaVA-1.5简单高效,但Token多
Q-Former可学习 Query 通过 Cross-Attn 聚合32 (压缩)BLIP-2, InstructBLIP信息瓶颈,细节丢失
Perceiver ResamplerLatent queries + Cross-Attn64 (固定)Flamingo, Idefics变长→固定,但压缩
Gated Cross-AttentionLLM 内部插入视觉注意力层64Flamingo深度融合,但需调Gate
Spatial Pooling空间下采样减少 Token 数可变 (压缩后)LLaVA-NeXT, Cambrian保留空间结构,灵活

5.2 BLIP-2: Q-Former

核心设计:轻量信息瓶颈

Q-Former (188M params) 作为冻结 Vision Encoder 和冻结 LLM 之间的桥梁。

32 个可学习 Query Vectors 通过 Cross-Attention 从视觉特征中提取最相关信息。

结构:两个子模块共享 Self-Attention 层:

两阶段预训练

阶段冻结训练目标
Stage 1: VL RepresentationImage EncoderQ-FormerITC + ITM + ITG
Stage 2: VL GenerationImage Encoder + LLMFC LayerLLM 生成(Q-Former输出作soft visual prompts)

Stage 1 的三个目标

效果:比 Flamingo-80B 少 54 倍可训练参数,VQAv2 zero-shot +8.7 points。

Q-Former 的局限

5.3 LLaVA 系列

LLaVA v1 (2023.04)

LLaVA = CLIP ViT-L/14 + Linear Projection + Vicuna LLM

最简单的连接方式:一个线性层将视觉特征投影到 LLM 的文本空间。

Image -> CLIP ViT -> [N visual tokens] -> Linear W -> LLM input space
                                                         |
Text  -> Tokenize -> [text tokens] ------------------> Concat -> LLM -> Response

两阶段训练

阶段冻结训练数据
Feature AlignmentViT + LLMLinear W only595K 图文对
Visual Instruction TuningViTW + LLM158K 指令数据

LLaVA-1.5 (2023.10) — 关键改进

维度LLaVA v1LLaVA-1.5效果
投影层Linear (1层)MLP (2层 + GELU)更强非线性映射能力
分辨率224px336pxOCR/细粒度大幅提升
数据158K~1.2M (混入学术VQA)多能力均衡
LLMVicuna-13BVicuna-13B / Mistral-7B更强基座

LLaVA 的核心启示

简单架构 + 高质量数据 + 正确训练策略 > 复杂架构

LLaVA-1.5 仅用 ~1.2M 数据就超越了使用数十M数据的更复杂模型。证明数据质量 > 数量。

为什么两层 MLP 比线性投影好?单层线性映射表达力有限,两层 MLP 可学习更复杂的非线性视觉→语言映射。配合高分辨率 + 更丰富数据带来显著提升。

5.4 Flamingo: 过渡架构

三大创新

  1. Perceiver Resampler:固定可学习 latent queries + Cross-Attention → 将变长视觉输入压缩为固定 64 个 visual tokens
  2. Gated XATTN-DENSE:在冻结 LLM 层之间注入 Cross-Attention;tanh gate 初始化为 0
  3. Masked Cross-Attention:每个文本 token 只关注其紧邻的前一张图片(非所有图片)

Tanh Gate 设计精妙之处

Gate = $\tanh(\alpha)$,$\alpha$ 初始化为 0 意味着:

这实现了从纯语言到多模态的平滑过渡,避免了随机初始化的 Cross-Attention 破坏预训练能力。

训练数据:M3W (43M 网页),交错的图文序列,天然支持 few-shot ICL。

5.5 InstructBLIP

BLIP-2 的指令感知改进:Q-Former 提取视觉特征时 也接收文本指令作为输入,使得提取的视觉信息与当前问题相关(而非提取通用视觉表示)。

例如:问"图中有几只猫"时,Q-Former 会有倾向地提取与猫相关的视觉特征。

6. 主流 MLLM 架构深度解析

本节对当前最具代表性的 MLLM 系列做架构级深度拆解,覆盖设计动机、关键技术细节和工程取舍。

6.1 Qwen-VL 系列

Qwen-VL (2023.12)

核心设计:多任务多分辨率 + Grounding

Qwen-VL 是首个在单一模型内同时支持多粒度理解 + 定位(Grounding)+ OCR的开源 MLLM。

架构

Image (448×448) → ViT-G/14 (1.9B, OpenCLIP) → 256 visual tokens
    → Position-aware Cross-Attention Adapter (256→256 queries)
    → Qwen-7B LLM → Response

特殊 Token 设计:
  <img> ... </img>      图像边界标记
  <ref> ... </ref>      引用文本区域
  <box> (x1,y1),(x2,y2) </box>  归一化坐标 (0-1000 整数)

关键创新

Qwen2-VL (2024.09) — 架构级跃升

三大核心创新

  1. Naive Dynamic Resolution:彻底抛弃固定分辨率 / 预设切片网格
  2. Multimodal RoPE (M-RoPE):统一处理文本位置、图像 2D 空间、视频时间维度
  3. 视频原生流式理解:视频 = 动态分辨率帧序列,支持 20min+ 视频

Naive Dynamic Resolution 详解

传统方案 (LLaVA-NeXT/InternVL):
  输入图像 → 匹配最佳切分网格 (如 2×3) → 每个子图独立编码 → 拼接
  问题: 预设网格有限,宽高比匹配不精确

Qwen2-VL Naive Dynamic Resolution:
  输入图像 (任意 H×W)
  → ViT 直接处理任意大小 (去掉固定位置编码)
  → 输出 (H/14) × (W/14) 个 patch tokens
  → 2×2 Spatial Merge (每 4 个相邻 token 合并为 1 个)
  → 最终 Token 数 = H×W / (14×14×4)

示例: 1344×768 图像 → 96×55 patches → merge 后 ≈ 1320 tokens
      672×384 图像 → 48×27 patches → merge 后 ≈ 324 tokens

M-RoPE (Multimodal Rotary Position Embedding)

$$\text{RoPE}_{text}: \quad (t, t, t) \quad \text{三维 ID 相同,等价于 1D RoPE}$$ $$\text{RoPE}_{image}: \quad (t, h, w) \quad \text{时间维固定,空间维编码 2D 位置}$$ $$\text{RoPE}_{video}: \quad (t, h, w) \quad \text{时间维递增,空间维编码帧内位置}$$

将 RoPE 的维度分为三组 $(d/3, d/3, d/3)$,分别编码 temporal / height / width。对文本 token 三组 ID 相同,退化为标准 1D RoPE。对图像 token 时间维固定、空间维编码行列位置。对视频 token 时间维随帧递增。

ViT 架构改进

面试:Qwen2-VL vs LLaVA-NeXT 高分辨率方案对比

维度LLaVA-NeXT (Tiling)Qwen2-VL (Naive DR)
分辨率适配预设切分网格匹配任意分辨率直接处理
位置编码每个子图独立编码,子图间无空间关系M-RoPE 统一编码全局位置
Token 数控制子图数 × 每图 TokenSpatial Merge 2×2 压缩
视频扩展需额外设计帧级处理天然支持(增加时间维)
实现复杂度低(标准 ViT 不动)中(需改 ViT 位置编码)

6.2 InternVL 系列

设计哲学:大视觉编码器 + 渐进对齐

核心论点

InternVL 系列的核心主张:视觉编码器的能力上限决定了 MLLM 的能力上限。因此投入大量参数到 ViT 端(6B params),而不是仅仅依赖更大的 LLM。

InternVL 1.5 (2024.02)

架构:
  InternViT-6B (自研, 持续训练)
  → Dynamic High-Resolution: 图像切分为 1-12 个 448×448 子图
  → 每个子图 → 1024 tokens → PixelShuffle 4× 压缩 → 256 tokens/子图
  → MLP Projector → InternLM2-Chat (20B / 76B)

PixelShuffle Token 压缩:
  输入: (H, W, C) 的 token grid
  → reshape 为 (H/2, W/2, 4C)  [空间降 4 倍,通道扩 4 倍]
  → Linear(4C → C) 映射回原始维度
  → 效果: 每 4 个空间相邻 token 合并为 1 个,保留空间信息

关键设计

InternVL 2.0 / 2.5 (2024.07-12)

版本LLM 骨干关键改进SOTA 成绩
InternVL 2.0InternLM2 / Nous-Hermes-2 / Yi-1.5多 LLM 骨干、更强 MLP ProjectorOCRBench #1, MMBench top-3
InternVL 2.5InternLM2.5 (7B-78B)MoE 变体 + 超长图文交错多项开源 SOTA

面试:为什么 InternVL 用 6B 的超大 ViT?

6.3 DeepSeek-VL2 (2024.12)

核心创新:MoE + Dynamic Tiling + 混合视觉编码

首个将 MoE 架构深度集成到 MLLM 的开源模型,实现参数效率与多模态能力的平衡。

架构:
  SigLIP-SO (400M, 384px) — 语义视觉编码
  + SAM-B (86M) — 高分辨率细节编码(OCR/小物体)
  → Dynamic Tiling (最多 9 tiles × 384px)
  → 每 tile → 576 tokens → 2×2 Spatial Merge → 144 tokens
  → MLP Projector
  → DeepSeek-MoE LLM (16B total, 2.4B activated)

MoE 路由策略:
  - 视觉和文本 Token 共享同一组 Expert
  - 路由器自动学习模态分配(无强制分流)
  - 实验发现: 部分 Expert 确实自发分化为"视觉特化"

混合视觉编码器的动机

6.4 CogVLM / GLM-4V

核心创新:Visual Expert — 在 LLM 内部为视觉 Token 设专属通路

不同于 LLaVA 的"投影后混入"方案,CogVLM 为 LLM 每层新增一套 视觉专属 QKV + FFN(Visual Expert),让视觉 Token 和文本 Token 在同一层用不同参数处理。

标准 LLaVA 方案:
  Visual tokens + Text tokens → 共享 Attention + 共享 FFN

CogVLM Visual Expert 方案:
  每个 Transformer Layer:
    Text tokens  → Text QKV (原始预训练权重, 冻结)  → Text FFN (冻结)
    Visual tokens → Visual QKV (新增, 可训练)      → Visual FFN (新增, 可训练)
    Cross-modal: Attention 中 text 和 visual tokens 互相可见

参数量:
  原始 LLM: ~7B (冻结)
  Visual Expert: ~6B (新增, 每层一套)
  总计: ~17B (但推理时全量都参与)

为什么 Visual Expert 优于纯投影?

Visual Expert 的代价

6.5 MiniCPM-V 系列 (面壁智能)

定位:端侧高效部署的 MLLM,追求极致参数效率

版本参数量核心创新特色
MiniCPM-V 2.02.4BCross-Attention 视觉注入首个手机可跑的 VLM
MiniCPM-V 2.58BAdaptive Visual Encoding + 高分辨率OCR 能力媲美商业模型
MiniCPM-V 2.68B统一图像/视频/多图实时视频理解
MiniCPM-o 4.59B全双工 Omni (音视频文)端侧全模态,Int4 量化 11GB

Adaptive Visual Encoding 策略

6.6 模型选型决策树

实际选型指南

你的需求是什么?
├── 学术研究 / Benchmark SOTA
│   ├── 开源 → InternVL 2.5 (78B) / Qwen2-VL (72B)
│   └── 闭源对标 → GPT-4o / Gemini Pro
├── 工业落地(服务端)
│   ├── 通用多任务 → Qwen2-VL-7B (平衡性能与成本)
│   ├── 强 OCR/文档 → InternVL 2.5 + 大 ViT
│   └── 多模态 Agent → Qwen2-VL (工具调用能力强)
├── 端侧部署
│   ├── 手机/IoT → MiniCPM-V 2.6 (8B, Int4=4GB)
│   └── 全双工交互 → MiniCPM-o 4.5
└── 定制化开发
    ├── 需要深度融合视觉 → CogVLM 路线
    ├── 需要 MoE 效率 → DeepSeek-VL2
    └── 快速原型 → LLaVA-NeXT (最简架构)
模型视觉编码器桥接LLM高分辨率方案核心优势
Qwen2-VL-7BViT-675MSpatial MergeQwen2-7BNaive Dynamic Resolution任意分辨率、视频原生
InternVL 2.5InternViT-6BMLP + PixelShuffleInternLM2.5Dynamic Tiling (1-12)超强 OCR、大 ViT
DeepSeek-VL2SigLIP + SAM-BMLPDeepSeek-MoEDynamic Tiling (1-9)MoE 效率、混合编码
CogVLM2EVA-CLIPVisual ExpertLlama3Tiling深度融合、不损语言
MiniCPM-V 2.6SigLIPAdaptive EncodingQwen2-7B自适应 Token 预算端侧效率、实时视频

7. 高分辨率处理

为什么需要高分辨率?

224/336px 对 OCR、小物体识别严重不足。字符级细节在低分辨率下模糊不清。

方法原理代表模型优缺点
图像切片 (Tiling)高分辨率图切成多个子图分别编码再拼接 TokenLLaVA-NeXT, InternVL保留细节,但Token数暴增
动态分辨率根据图像宽高比决定切分方式Qwen2-VL (Naive Dynamic Resolution)灵活适配不同比例
Spatial Pooling空间下采样减少 Token 数LLaVA-NeXT, Cambrian平衡细节与效率

代价:高分辨率切片可达 2000+ 视觉 Token,增加 Prefill 计算和 KV Cache 带宽压力。通常通过 Spatial Pooling / Token Merging 缓解。

8. 训练策略

8.1 两/三阶段训练

阶段目标冻结训练数据
Stage 1: 预训练对齐学视觉→语言空间映射ViT + LLM投影层 only大规模图文对 (CC3M/12M, LAION)
Stage 2: 指令微调学习遵循多模态指令ViT (可选解冻)投影层 + LLM高质量指令数据 (150K-1.2M)
Stage 3 (可选)高质量对齐 / 偏好对齐-全模型 / LoRA偏好数据 / 精选数据

核心原则

8.2 数据工程

数据类型来源作用
预训练对齐数据LAION, CC3M/12M, DataComp学视觉-语言映射
指令微调数据LLaVA-Instruct, ShareGPT4V, ALLaVA学多模态指令遵循
纯文本对话ShareGPT, OpenOrca防语言能力退化
多任务混合VQA + OCR + Grounding + Chart + 推理均衡多能力

数据合成:用 GPT-4V 生成高质量标注(LLaVA 核心创新:符号化描述 + GPT-4 = 不需要 GPT-4V "看到"图片)。

数据配比:不同任务数据的混合比例对模型能力影响巨大,需大量消融实验。

8.3 视觉编码器冻结 vs 解冻

策略优点缺点何时用
冻结 ViT保留强视觉表示,训练稳定,成本低无法适配下游特定任务默认选择
解冻 ViT可适配下游(OCR/细粒度提升明显)灾难性遗忘风险,训练不稳定OCR/细粒度任务需要时

解冻 ViT 注意事项:需小学习率(通常比 LLM 小 10x),可能导致对齐漂移。

9. 理解与生成统一

核心矛盾

理解需要高层语义压缩("这是一只猫"),生成需要低层像素细节(每个像素值)。

一个表示很难同时做好两者——这是理解-生成统一的核心挑战。

9.1 离散 Token 路线 (Autoregressive NTP)

用 VQ-VAE/VQ-GAN 将图像编码为离散 Token,与文本统一为 next-token prediction。

挑战:Codebook 限制重建质量;图像生成任务导致训练不稳定(需 QK-Norm + Z-loss + Norm Reordering)。

9.2 双解码器路线

理解用连续特征 + LLM,生成用扩散模型。两个解码器共享部分参数或表示。

挑战:模型复杂、训练成本高、两路对齐困难。

9.3 原生统一架构

GPT-4o

全模态原生:单一网络端到端处理 text + vision + audio

Qwen3-Omni

Thinker-Talker 双 MoE 架构

MiniCPM-o 4.5 (全双工 + 边缘部署)

10. 视频理解

核心挑战:Token 爆炸

1分钟视频 @1fps ≈ 60帧 × 576 tokens/帧 = 34K tokens,远超 LLM 常见上下文长度。

方案原理代表模型
均匀/关键帧采样稀疏采帧减少Token数Video-LLaVA, VideoChat
帧级池化每帧 Spatial Pooling 减少Token后送入LLMLLaVA-Video
SlowFast 双速低帧率全局 + 高帧率局部SlowFast 思路
统一帧序列视频视为动态分辨率帧序列统一处理Qwen2-VL
分层建模clip级 → frame级 → event级长视频理解

11. 多模态幻觉

定义:模型生成与图像不一致的描述(Object Hallucination 最典型——描述图中不存在的物体)。

成因

  1. 语言先验过强:LLM 按统计规律编造不存在物体(如"草地上的羊"虽图中无羊)
  2. 视觉注入不足:视觉信息未充分影响生成
  3. 训练数据偏见:常见物体过度代表
  4. 位置偏差:倾向关注图像中心/前方位置

评估

评估集方法
POPE二分类:物体是否存在(Polling-based)
CHAIR幻觉比例:生成描述中不存在的物体占比
MMHal-Bench多维度幻觉评估

缓解方法

方法原理
RLHF-V偏好对齐:偏好与图像一致的回答
VCD (Contrastive Decoding)对比有/无图像时的输出差异,削弱语言先验
OPERA惩罚注意力过度集中的模式
视觉特征增强增强视觉信号注入强度
数据去偏减少训练数据中的共现偏差

12. 多模态 MoE

MoE 在多模态中的特殊考量

  1. 路由策略:视觉/文本 Token 是否路由到不同 Expert?
  2. 负载均衡:跨模态 Token 分布差异大,需跨模态负载均衡
  3. 模态特化:Expert 可能自发分化为"视觉专家"/"语言专家"

实例:DeepSeek-VL2、InternVL 2.5 MoE 变体。

13. 评估体系

层次评估集评估能力
基础感知MME, MMBench, SEED-Bench视觉理解基础
推理MathVista, ScienceQA数学/科学推理
OCR/文档OCRBench, TextVQA, DocVQA, ChartQA文字/文档理解
幻觉POPE, CHAIR, MMHal-Bench真实性
真实场景RealWorldQA开放域理解
综合排名OpenCompass, LMSYS Vision Arena综合能力

14. 架构对比总结

模型类型视觉编码器桥接方式训练成本跨模态深度细粒度能力
BLIP-2连接式冻结 ViTQ-Former (32Q)弱(压缩)
InstructBLIP连接式冻结 ViT指令感知 Q-Former
LLaVA连接式冻结 CLIPLinear极低弱(低分辨率)
LLaVA-1.5连接式冻结 CLIPMLP + 高分辨率
Flamingo过渡式冻结 NFNetPerceiver + Gated XATTN
InternVL 2.5连接式(强)InternViT-6BMLP + 动态分辨率 + MoE中深极强
Chameleon原生统一Image Tokenizer统一词表 NTP极高
GPT-4o原生统一内置端到端极高极强
Qwen3-Omni端到端AuT + ViTThinker-Talker MoE极高

面试要点总结

高频面试题(15题)

  1. ViT 的核心贡献? 证明了 Transformer 是 CV+NLP 统一的通用计算原语,无需 CNN 归纳偏置
  2. CLIP 训练为什么需要大 batch? InfoNCE 依赖充足负样本。原始 batch=32768。SigLIP 用 Sigmoid Loss 减少依赖
  3. CLIP 的五大局限? 组合性弱、空间差、计数弱、BoW倾向、无生成能力
  4. CLIP 用在哪些下游模型? Stable Diffusion(文本条件编码器)、LLaVA(视觉编码器)、DALL-E(评估)
  5. BLIP-2 的 Q-Former 为什么用 32 个 query? 信息瓶颈设计:强迫模型只提取最相关的视觉信息给 LLM。但这也导致高分辨率细节丢失
  6. LLaVA vs BLIP-2 架构核心区别? BLIP-2 用 Q-Former 压缩到 32 Token,LLaVA 保留全量 576+ Token 让 LLM 自行选择。LLaVA 的成功表明:让 LLM 自行处理视觉信息 + 高质量数据 > 精心设计的压缩桥接
  7. 为什么 LLaVA-1.5 用两层 MLP 替代线性投影? 单层线性映射表达力有限,两层 MLP 能学习更复杂的非线性视觉→语言映射。配合 336px + 更丰富数据带来显著提升
  8. Flamingo 的 tanh gate 为什么初始化为0? 保证训练初期 cross-attn 输出被屏蔽,模型等价于原始 LLM。避免随机初始化的 cross-attention 破坏预训练语言能力,实现从语言到多模态的平滑过渡
  9. 视觉编码器选型:CLIP ViT vs DINOv2 vs SigLIP? CLIP ViT:天然图文对齐,适合语义理解;DINOv2:自监督,空间细粒度强,但缺语言对齐;SigLIP:性能接近CLIP但更高效;Cambrian-1 证明混合编码器取长补短
  10. 连接式 vs 原生统一的本质区别? 连接式=冻结单模态编码器+适配器(浅融合,训练便宜);原生=统一词表单网络(深度跨模态推理,需海量数据)
  11. 理解-生成统一的核心矛盾? 理解要语义压缩 vs 生成要像素细节。离散Token路线(Chameleon)受codebook限制,双解码器路线(Janus)复杂度高
  12. 视频理解的核心挑战? Token爆炸(1min@1fps=34K tokens)。方案:稀疏采帧、帧级池化、SlowFast双速、动态分辨率帧序列
  13. 多模态幻觉成因和缓解? 成因:语言先验过强/视觉注入不足/数据偏见。缓解:RLHF-V、VCD对比解码、OPERA、数据去偏
  14. 高分辨率为什么重要? OCR/细粒度任务需要字符级细节。方案:Tiling切片、动态分辨率(Qwen2-VL)、Spatial Pooling压缩
  15. MoE 在多模态中的特殊考量? 路由策略(视觉/文本Token是否路由到不同Expert)、跨模态负载均衡、Expert可能自发分化为模态特化专家