#VLM 与多模态大模型专项强化题库(第十二批:视觉语言模型架构、对齐与任务设计)
#一、高频问题速览
| 编号 | 问题 | 核心考点 |
|---|---|---|
| 247 | CLIP 的训练目标是什么?对比学习如何设计正负样本? | 对比学习、InfoNCE、多模态对齐 |
| 248 | VLM 的视觉编码器通常用什么?ViT 相比 CNN 有何优劣? | 视觉编码器选型、特征粒度、全局/局部 |
| 249 | 图像特征如何接入 LLM?有哪些主流方案? | 投影层、Q-Former、Perceiver Resampler |
| 250 | 为什么 VLM 训练通常分阶段(stage-wise)? | 对齐稳定性、灾难性遗忘、数据效率 |
| 251 | 细粒度视觉理解(如目标定位)如何注入 VLM? | 视觉提示、坐标编码、Grounding |
| 252 | 视频理解相比图像理解的核心难点是什么? | 时序建模、长序列、采样策略 |
| 253 | 多模态指令微调与纯文本 SFT 有何差异? | 模态对齐、数据配比、格式统一 |
| 254 | VLM 的幻觉问题与纯文本 LLM 有何不同? | 视觉幻觉、描述不匹配、训练偏差 |
| 255 | 如何评估 VLM 的视觉理解能力? | benchmark 选择、细粒度指标、人工评测 |
| 256 | LLaVA、MiniGPT-4、BLIP-2 的架构差异是什么? | 架构演进、冻结/解冻策略、训练成本 |
#二、逐题详细解答
#247. CLIP 的训练目标是什么?对比学习如何设计正负样本?
#知识点
- InfoNCE loss
- 温度系数 τ
- in-batch negative
- 图文配对数据
#详细解答
CLIP 的核心训练目标是让匹配的图文对在嵌入空间靠近、不匹配的对远离。它用 InfoNCE(或类似的对比损失)作为目标:对 batch 中每个图像,其配对的文本是正样本、batch 内其他文本是负样本;反之亦然。
具体实现上,图像和文本分别过各自的编码器得到 embedding,计算余弦相似度矩阵。对角线上的配对是 positive,其余是 negative。损失函数形式为:
L = -log(exp(sim(i,t)/τ) / Σ exp(sim(i,t')/τ))
其中 τ 是温度系数,控制分布的平滑程度。τ 太大则正负区分不明显,τ 太小则梯度不稳定。
负样本设计:CLIP 采用 in-batch negative,即 batch 内的其他配对作为负样本。优点是无需额外挖掘,缺点是负样本质量和 batch size 强相关。后续改进(如 DINO、ALBEF)会引入 momentum encoder、hard negative mining 等策略提升对比质量。
#248. VLM 的视觉编码器通常用什么?ViT 相比 CNN 有何优劣?
#知识点
- ViT (Vision Transformer)
- CNN (ResNet 等)
- 特征粒度、全局上下文
- 计算复杂度
#详细解答
当前 VLM 的主流选择是 ViT 或其变体(如 EVA-CLIP、SigLIP、DINOv2),原因有几点:
- 全局上下文:ViT 的自注意力天然捕获全局关系,对理解图像整体语义更有利;CNN 的感受野有限,深层才能覆盖全图。
- 与 LLM 架构一致:都是 Transformer,便于后续融合和统一训练。
- 预训练资源丰富:CLIP、DALL-E、Stable Diffusion 等都基于 ViT,预训练权重可直接复用。
但 CNN 仍有优势:
- 归纳偏置:平移等变性、局部性,对细粒度定位任务更友好。
- 计算效率:高分辨率输入时,CNN 的 FLOPs 增长更平缓;ViT 的 attention 复杂度随分辨率平方增长。
实际系统中,高分辨率场景(如文档 OCR、医学影像)有时会采用 CNN+ViT 混合 或 高分辨率 ViT(如 ViT-H/14)来缓解。
#249. 图像特征如何接入 LLM?有哪些主流方案?
#知识点
- 线性投影 (Linear Projection)
- Q-Former (BLIP-2)
- Perceiver Resampler (Flamingo)
- Cross-attention
- Adapter 层
#详细解答
把视觉特征接入 LLM 的核心问题是:视觉编码器输出的特征维度、长度与 LLM 的输入空间不一致,需要"桥梁"层做对齐。
方案一:线性投影(LLaVA 等) 最简单直接:ViT 输出的 patch features 过一个可学习的线性层,映射到 LLM 的 embedding 维度,直接拼到文本 token 序列中。优点是实现简单、训练稳定;缺点是视觉 token 数量多(如 576 个 patch),会显著增加 LLM 的计算量。
方案二:Q-Former(BLIP-2) 引入一个轻量的 transformer 作为查询网络:用少量可学习的 query tokens(如 32 个)去"查询"视觉特征,输出固定数量的视觉 embedding。这样无论输入图像分辨率多高,接入 LLM 的视觉 token 数固定,减轻计算压力。
方案三:Perceiver Resampler(Flamingo) 类似 Q-Former,但采用 Perceiver 架构:latent array 作为查询,视觉特征作为 KV,通过 cross-attention 压缩视觉信息到固定长度。
方案四:Cross-attention 层(Flamingo 等) 直接在 LLM 层间插入 cross-attention 层,让文本 token 去 attend 视觉特征,而非把视觉 token 拼到输入序列。优点是视觉和文本流解耦,可灵活处理多图;缺点是需修改 LLM 架构。
#250. 为什么 VLM 训练通常分阶段(stage-wise)?
#知识点
- 预训练对齐、指令微调
- 灾难性遗忘
- 数据效率、计算成本
- LLM 冻结/解冻策略
#详细解答
VLM 训练普遍采用两阶段或三阶段策略,不是随意设计,而是工程与稳定性权衡的结果:
阶段一:预训练对齐(Alignment) 用大规模图文对数据(如 LAION、CC12M)训练视觉-语言对齐层(如投影层、Q-Former),而视觉编码器和 LLM 通常冻结。目的是让视觉特征空间与 LLM 的语义空间初步对齐。如果此时就开放 LLM 训练,大规模弱监督数据很容易"带偏"语言模型,导致灾难性遗忘。
阶段二:指令微调(Instruction Tuning) 用高质量、多样化的多模态指令数据(如 LLaVA-Instruct、SVIT)微调,此时通常会解冻 LLM 或部分层。这一步让模型学会按人类指令形式回答视觉相关问题。数据质量比数量更重要,通常只有几十到几百 K 量级。
阶段三(可选):强化学习或特定任务优化 如用 RLHF 提升回答风格,或在特定下游任务(如文档理解、GUI 操作)上进一步适配。
分阶段的核心价值:
- 降低训练成本:预训练阶段冻结 LLM,只训练轻量对齐层。
- 保护语言能力:避免海量弱监督图文数据污染 LLM 的语义知识。
- 数据效率:不同阶段用不同性质的数据,逐步精细化。
#251. 细粒度视觉理解(如目标定位)如何注入 VLM?
#知识点
- 视觉提示 (Visual Prompt)
- 坐标编码、框标记
- 指代表达理解 (Referring Expression)
- Grounding 任务设计
#详细解答
让 VLM 不仅能"描述图像",还能"指出具体位置",需要在模型设计和训练数据两方面做文章。
坐标编码方式:
- 文本化坐标:把边界框坐标 (x1,y1,x2,y2) 作为文本 token 直接输出,最简单但要求 tokenizer 支持数字。
- 离散化位置 token:定义特殊 token(如
<loc_1>到<loc_1000>),把连续坐标离散化到网格,类似 Pix2Seq。 - 连续值嵌入:用额外的 MLP 把坐标嵌入成向量,拼接到序列中(如 Shikra 的做法)。
视觉提示输入:
- 在图像上直接画框/箭头/掩码,再送入视觉编码器,让模型"看"到标记位置。
- 或用额外的坐标 token 序列作为输入,告诉模型"关注这里"。
训练数据: 需要视觉定位标注,如 RefCOCO(指代表达)、Visual Genome(场景图)、OCR 带坐标标注等。模型需要学会把文本描述(如"左边的红杯子")与图像区域关联。
#252. 视频理解相比图像理解的核心难点是什么?
#知识点
- 时序建模、动作识别
- 长序列压缩、关键帧采样
- 显存与计算压力
- 标注成本
#详细解答
视频理解不只是"看多张图",而是需要理解随时间变化的关系。
时序建模难点:
- 动作与事件:很多动作只看单帧无法判断(如"打开"vs"关闭"),需要连续多帧的时序上下文。
- 长程依赖:事件因果关系可能跨越数十秒甚至分钟级,如何有效建模长时序是关键。
工程难点:
- 输入规模:1 分钟视频 @ 30fps = 1800 帧,逐帧过 ViT 计算量爆炸。必须做采样(如每秒抽 1 帧)或压缩(如视频编码器)。
- 显存压力:长序列的 attention 复杂度是二次方,即便只采样 60 帧,576*60=34560 个视觉 token 也超出大多数 GPU 容量。
解决思路:
- 时序采样策略:均匀采样 + 事件触发加密采样。
- 视频专用编码器:如 Video Swin Transformer、TimeSformer(时空分解注意力),或直接用视频预训练模型(如 InternVid)。
- 特征压缩:先过视频编码器得到 clip-level 特征,再接入 LLM,而非原始帧。
- 记忆机制:用 Q-Former、Memory Bank 等方式压缩历史信息。
#253. 多模态指令微调与纯文本 SFT 有何差异?
#知识点
- 数据格式、模态交错
- 损失函数设计(只看文本部分)
- 数据配比、多轮对话
- 系统指令设计
#详细解答
数据格式差异: 多模态指令数据需要表示"图在哪里、文字在哪里"。常见格式如:
<image>img_path</image>
Human: 这张图里有什么?
Assistant: 图中有一只猫在...
需要 tokenizer 支持特殊标记,或在预处理时把图像特征插入到对应位置。
损失计算差异: 纯文本 SFT 计算整个序列的 loss。多模态 SFT 通常只对文本部分计算 loss,视觉部分(图像 token)是输入而非预测目标。实现上通过 attention mask 或 labels 掩码实现。
数据配比挑战:
- 纯文本能力容易退化:如果多模态数据占比太高,模型的纯文本对话能力会下降。
- 解决方案:混合纯文本指令数据(如 ShareGPT)和多模态数据,比例通常在 1:1 到 5:1 之间。
多轮对话: 多轮场景下需要处理"历史图像"的引用。例如第二轮问"它是什么颜色?","它"指代第一轮提到的图像中的物体。需要模型保持跨轮视觉上下文。
#254. VLM 的幻觉问题与纯文本 LLM 有何不同?
#知识点
- 视觉幻觉、描述不匹配
- 训练数据噪声、图文不匹配
- 指令跟随 vs 事实准确性
- 缓解策略
#详细解答
VLM 幻觉的独特性:
- 物体幻觉:描述图像中不存在的物体(如把云说成羊),或属性错误(把白猫说成黑猫)。
- 关系幻觉:物体间空间关系、动作关系描述错误(如"A 在 B 左边"实际是右边)。
- 过度推断:基于语言先验"脑补"图像中看不到的信息。
成因差异:
- 数据层面:图文对数据常有噪声(图文不匹配),弱监督预训练让模型学会"胡说"。
- 模态融合:视觉编码器可能丢失细粒度信息,LLM 部分过度依赖语言先验填补空白。
- 指令压力:SFT 阶段模型被训练成"必须回答",即便不确定也会编造。
缓解策略:
- 数据清洗:用 CLIP score 过滤低质量图文对,用人类反馈标注正确性。
- 对抗训练:让模型学会说"不确定"或"图中没有"。
- 多尺度验证:结合 object detector 验证物体存在性,或引入指代表达理解做 grounding。
- RLHF:对齐人类对"准确描述"的偏好,惩罚幻觉性回答。
#255. 如何评估 VLM 的视觉理解能力?
#知识点
- 传统 VQA benchmark
- 细粒度评估(OCR、计数、定位)
- 多模态对话评估
- 幻觉检测 benchmark
#详细解答
VLM 评估需要多维度,不能只看单一指标:
基础理解:
- VQA v2、OK-VQA:测试常识视觉问答。
- TextVQA、DocVQA:测试 OCR 和文档理解。
- GQA:结构化推理,需要多步视觉推理。
细粒度能力:
- POPE 幻觉检测:专门测物体幻觉的 benchmark。
- MMBench、MM-Vet:多任务综合评估,涵盖 OCR、细粒度识别、空间关系等。
- RefCOCO:指代表达理解,测定位能力。
开放式评估:
- LLaVA-Bench、MT-Bench:多轮对话质量,用 GPT-4 作为 judge 打分。
- 人类评估:视觉描述的准确性、完整性、幻觉程度。
关键指标:
- 准确率(VQA)
- F1、CIDEr(描述任务)
- 幻觉率(POPE)
- GPT-4 辅助打分(相关性、准确性、完整性)
#256. LLaVA、MiniGPT-4、BLIP-2 的架构差异是什么?
#知识点
- 冻结/解冻策略
- 对齐层设计
- 训练数据规模
- 端到端训练
#详细解答
| 特性 | BLIP-2 | MiniGPT-4 | LLaVA |
|---|---|---|---|
| 视觉编码器 | EVA-ViT | EVA-ViT | CLIP ViT |
| 对齐层 | Q-Former | 线性投影 | 线性投影 |
| LLM | OPT/Flan-T5 | Vicuna | Vicuna/LLaMA |
| 预训练 | 冻结视觉+LLM,训练 Q-Former | 冻结视觉+LLM,训练投影 | 冻结视觉+LLM,训练投影 |
| 指令微调 | 无(需后续工作如 InstructBLIP) | 有,高质量指令数据 | 有,端到端指令微调 |
| 端到端 | 否(阶段分离) | 否(阶段分离) | 是(可解冻 LLM) |
关键差异:
- BLIP-2 核心是 Q-Former 的轻量对齐,视觉和语言模型完全冻结。优势是训练极快(数小时),缺点是无法充分激发 LLM 能力。
- MiniGPT-4 用简单线性投影,但强调高质量指令数据(用 ChatGPT 精炼描述)。分两个阶段:先对齐、再指令微调。
- LLaVA 是最简洁的设计:CLIP ViT + 线性投影 + Vicuna。后续版本(LLaVA-1.5)优化了训练数据配比和分辨率处理,成为许多后续工作的基础架构。
架构趋势:从复杂的 Q-Former 向简单的线性投影回归,更多精力放在数据质量和训练策略上。