Ch10 多模态学习 · 阶段测试题¶
难度梯度: 🟢 基础(直接答题) → 🟡 进阶(分析) → 🔴 综合(综合应用) → ⭐ 选学(论文级) 测试时间: 150 分钟 (满分 100 分),题量 25 题。每题 4 分。 题目覆盖 Ch10 5 节 + 跨章链接。
Part A · 单选题 (10 × 4 = 40 分)¶
A1 🟢¶
CLIP 训练 batch size 默认值是? - A. 1024 - B. 8192 - C. 32768 - D. 65536
答案
C. 32768 (CLIP 论文 ViT-L/14 训练使用 batch=32768)A2 🟢¶
Stable Diffusion 在哪个维度上做扩散? - A. 像素 3×256×256 - B. Latent 4×64×64 - C. Latent 256×256 - D. Pixel 4×256×256
答案
B. Latent 4×64×64 (VAE 编码后的空间)A3 🟢¶
VQ-VAE 的 codebook size 经典值是? - A. 1024 - B. 4096 - C. 8192 - D. 32768
答案
C. 8192 (van den Oord 原论文与大多数 VQ-GAN 实践)A4 🟢¶
MMMU 大学级评测 GPT-4o 得分约? - A. 50% - B. 60% - C. 69% - D. 80%
答案
C. 69% (OpenAI 2024, vs 人类 88%)A5 🟢¶
GPT-4o 实时语音延迟目标? - A. 50 ms - B. 100 ms - C. 300 ms - D. 1000 ms
答案
C. 300 ms (人类对话节奏 200-500 ms)A6 🟡¶
SigLIP 与 CLIP 的关键损失差异是? - A. 使用 L1 而非 L2 - B. 使用 sigmoid 取代 softmax - C. 不需要 batch - D. 完全相同
答案
B. 使用 sigmoid 取代 softmax (pairwise loss, 不需要 N² 矩阵)A7 🟡¶
CLIP 的 τ (温度参数) 默认值? - A. 0.01 - B. 0.07 - C. 0.5 - D. 1.0
答案
B. 0.07 (CLIP 论文,τ 越小分布越尖训练越难但表征越细)A8 🟡¶
BLIP-2 Q-Former 中 learnable query token 数量? - A. 8 - B. 16 - C. 32 - D. 64
答案
C. 32 (Li et al., BLIP-2,ICML 2023)A9 🟡¶
VQ-VAE 训练中如何解决 codebook 不可微问题? - A. 用 hinge loss - B. 直通估计 (STE) - C. 重新参数化 - D. SVM 分类
答案
B. 直通估计 Straight-Through EstimatorA10 🔴¶
Classifier-Free Guidance 公式 \(\hat\epsilon = (1+w)\epsilon_\theta(x_t,t,c) - w\epsilon_\theta(x_t,t,\emptyset)\), 当 w 增加时: - A. 多样性提升,图像质量下降 - B. 对齐增强,多样性下降 - C. 完全不变 - D. 随机化
答案
B. 对齐增强,多样性下降 (w 大时图像更按 prompt 但失去变化)Part B · 填空题 (5 × 4 = 20 分)¶
B1 🟢¶
CLIP 把图像和文本投影到共享 _ 维空间 (OpenAI 原始设定),用 _ 相似度衡量语义距离。
答案
256 维 (CLIP ViT-L/14);余弦相似度 (cosine)B2 🟢¶
VQ-VAE 量化损失公式包含三项:重建损失 + _ 损失 + _ 损失 (其中后两项为了防止 codebook collapse)。
答案
commitment loss (z_e 到 z_q) + 对抗损失 (VQ-GAN 多了 perceptual)B3 🟡¶
多模态幻觉三大类型: 对象幻觉、_ 幻觉、_ 幻觉。
答案
属性幻觉 (颜色/形状/材质错);关系幻觉 (空间/数量/逻辑错)B4 🟡¶
跨模态注意力公式中,目标模态提供 _,条件模态提供 _ 和 __。
答案
Q (query);K (key);V (value)B5 🔴¶
Stable Diffusion 中,文本经 CLIP 编码后通过 _ 层注入 UNet (粗/细控制);CFG 在推理时额外计算 _ 分支。
答案
cross-attention;无条件 (空文本 / null token)Part C · 简答题 (5 × 6 = 30 分)¶
C1 🟢¶
简述早期融合 vs 晚期融合的优缺点。哪个是当前主流,为什么?
答案模板
**早期融合**(Early/Feature-level): - 优点: 跨模态细粒度交互,从输入开始就学到对齐 - 缺点: 输入维度大,需要学对齐分布差异,计算成本高,不适合 LLM 长上下文 **晚期融合**(Late/Decision-level): - 优点: 可复用单模态预训练,简单,可独立训练各编码器 - 缺点: 学不到低层跨模态信号,只能末期整合 **当前主流:中层融合**(middle),例如: - Q-Former / Perceiver Resampler 压缩视觉 token - cross-attention 在 LLM 各层注入 - 兼顾效果和效率C2 🟢¶
解释 InfoNCE 损失的工作原理。它为什么需要大 batch?
答案模板
**InfoNCE** 把 N 对正负样本分类: $$L = -\log\frac{\exp(s(z_i, z_i^+)/\tau)}{\sum_{j=1}^N \exp(s(z_i, z_j)/\tau)}$$ 正例是对角线 (一张图配自己文本),其他 N²-N 看作负例。 **为什么需要大 batch**: - softmax 分母是 N 项,需要足够多负样本才能学到"区分" - N 太小 → 模型把正例、负例都认为相似 → 学不到对比 - SigLIP 用 sigmoid 损失打破这个限制C3 🟡¶
VQ-VAE 的 codebook collapse 现象是什么?列出 3 种缓解策略。
答案模板
**现象**: 部分 codebook entry 永远不被选中,有效 codebook size 远小于 K。导致下游任务表征能力下降。 **缓解策略**: 1. **EMA 更新**: codebook 不接受梯度,由编码器输出滑动平均更新(避免 Adam 训死) 2. **Code 重启**: 训练 N 步未使用的 entry, 重置为随机 $z_e$ 3. **Gumbel-Softmax**: 加温度噪声做 softmax 近似 argmin,保持一定随机性 **补充**: commitment loss 系数 β 增大也能缓解 (鼓励 $z_e$ 接近 $z_q$ 但不强制一致)。C4 🟡¶
描述 Stable Diffusion 文生图的完整推理流程(从噪声到图像)。
答案模板
1. **采噪声**: $x_T \sim \mathcal{N}(0, I)$, T=1000 步 2. **循环去噪** (t = T → 1): - 用 UNet $\epsilon_\theta(x_t, t, c)$ 预测噪声; c = CLIP 文本嵌入(经 cross-attn 注入) - **CFG 加权**: $\hat\epsilon = (1+w)\epsilon_c - w\epsilon_\emptyset$ (通常 w=7.5) - 用 **DDPM/DDIM scheduler** 更新 $x_{t-1}$ (含均值、方差项) 3. **解码** $x_0$ (latent) → 经 VAE 解码器 → 像素图像 **关键工程**: - DDIM 50 步即可,无需 1000 步 - KV cache 复用节省延迟 - batch 多图同时去噪C5 🔴¶
对比 BLIP-2 Q-Former / LLaVA 线性投影 / Flamingo Perceiver 三种 VLM 投影方案。哪个最适合边缘部署?
答案模板
**BLIP-2 Q-Former** (32 query token): - 压缩率灵活,适合大视觉 patch 数 - 三任务预训练(ITC+ITM+ITG),表征质量高 - 显存大,延迟 80-150ms **LLaVA 线性投影** (1 层 linear): - 最简单,计算几乎零开销 - 视觉信息直接给 LLM,几乎无损 - 但 LLM 上下文长度压力大 **Flamingo Perceiver Resampler** (64 token): - 跨 transformer 块压缩 - few-shot 上下文学习强 - 训练复杂 **边缘部署最佳**: LLaVA 风格线性投影,因为: - 推理时几乎无额外开销 - INT8 量化友好 - 移动硬件(NPU/DSP)直接支持 linear - 视觉序列长度可灵活控制Part D · 论述题 (3 × 8 = 24 分 / 选 3)¶
D1 🔴¶
GPT-4o 如何做到实时多模态?关键工程优化有哪些?
答案要点 (8 分评分点)
**架构创新**: 1. **单一 Transformer** 处理所有模态 (audio/text/image 直接 token 化) 2. **跨模态 KV cache 共享**,解码时分摊计算 **音频侧关键**: - 16 kHz 音频 token 化(类似 Spectrogram + VQ 形式) - 流式处理:边录音边出 token - 平均响应时间 320 ms (人类对话节奏) **视觉侧**: - 视觉 token 数动态调整,降低图片分辨率可减少 token - 第一帧处理后缓存,后续帧复用 KV **训练侧**: - 大规模多模态对话 RLHF - 多语种处理 - 强化学习微调特定能力(情绪、唱歌) **核心权衡**: - 延迟 vs 质量 - 通用能力 vs 实时性D2 ⭐¶
视觉自回归 (VAR) 为什么可能成为下一代文生图主流?它和 Stable Diffusion 的关系是什么?
答案要点 (8 分)
**VAR 优势**: - next-scale prediction, 类比 LLM 语言 token - ImageNet 256 FID: VAR ≈ 1.0 < SD ≈ 8 - 大模型 (LLaMA-style scaling) 训文生图 - 与 LLM 统一架构(Show-o 已经这样) **SD 优势**: - 开源生态成熟 - 已有 LoRA/ControlNet/IP-Adapter 等扩展 - 推理延迟短(DDIM 50 步) **未来关系**: 1. 短期: SD + VAR 共存,各自适合场景 2. 中期: 离散 token + LLM 路线(VAR 派)胜出,因为统一架构 3. 长期: GPT-4o/Gemini 类统一 transformer,支持任意生成 **关键论文**: Visual Auto-Regressive Modeling (NeurIPS 2024), Show-o, Janus。D3 🔴¶
多模态幻觉的根因是什么?列出 4 类缓解技术并举例。
答案要点 (8 分)
**根因**: 1. **训练数据偏差**: 图文对中图说描述不等于全部内容,模型学"猜" 2. **视觉表征不完备**: ViT 编码丢失细节,LLM 靠文本补全 → 幻觉 3. **缺乏 grounding**: 模型没有强制把每个 token 对应到图像区域 4. **自回归错误传播**: 一个错误 token 影响后续生成 **缓解技术**: 1. **视觉 grounding**: 用 attention map 强制模型 attention 到相关区域 (e.g., LLaVA-grounding) 2. **RLHF / DPO**: 用人类偏好对训练,降低幻觉率 3. **对抗训练**: 故意在图像上加 noise 让模型说"我不知道" 4. **多模型集成**: GPT-4V 先 answer 一个,再用一个 verifier 检测幻觉 5. **检索增强**: 模型回答时检索相关图像区域或文本 **代表工作**: RLHF-V, LLaVA-RLHF, OPERA, Woodpecker。Part E · 代码题 (1 × 6 = 6 分)¶
E1 🔴¶
完成下面的 PyTorch 函数,实现 简易 InfoNCE 损失用于 CLIP-style 对比学习。
import torch
import torch.nn.functional as F
def info_nce_loss(image_embeds: torch.Tensor,
text_embeds: torch.Tensor,
tau: float = 0.07) -> torch.Tensor:
"""
Args:
image_embeds: (N, D) L2-normalized image embeddings
text_embeds: (N, D) L2-normalized text embeddings
tau: temperature
Returns:
scalar loss
"""
# TODO: 实现对称 InfoNCE (双向)
pass
参考实现
def info_nce_loss(image_embeds, text_embeds, tau=0.07):
# 相似度矩阵 (N, N)
sim = image_embeds @ text_embeds.t() / tau # (N, N)
# 标签是对角线
labels = torch.arange(sim.shape[0], device=sim.device)
# 双向 InfoNCE
loss_i = F.cross_entropy(sim, labels) # image→text
loss_t = F.cross_entropy(sim.t(), labels) # text→image
return (loss_i + loss_t) / 2
Part F · 跨章综合题 (1 × 6 = 6 分 / 选 1)¶
F1 ⭐¶
跨章综合: 用 Ch06 §03 ViT 和 Ch10 §01 解释为什么 ViT 适合作为 CLIP 编码器;再结合 Ch07 §04 Transformer 注意力机制,解释 VLM 中 cross-attention 如何工作。
参考答案
**ViT 适合 CLIP 的原因** (Ch06 §03 + Ch10 §01): - ViT 通过 patch 化 + 自注意力,在足够数据下学到的表征比 CNN 更全局、更适合语义 - CLIP 训练目标是对比学习,需要视觉/文本嵌入空间对齐,ViT 输出的 patch feature 自带丰富语义 - 大模型 ViT-L/14 (1024 维特征) 在 ImageNet 22K 上预训练后,可直接 fine-tune 用作 CLIP **VLM cross-attention 工作** (Ch07 §04 + Ch10 §02): - LLM 解码器每层有 self-attn + cross-attn 两个子层 - self-attn 处理当前文本 (Q=K=V=文本) - cross-attn 把视觉信息融入: Q=文本 state, K=V=视觉 patch embedding (经 Q-Former 或线性投影) - 多个文本 token 都可 attend 到任意视觉 patch - 实现 "看图说话": 当生成"猫" token 时,该层 cross-attn 高度权重到图像 cat 区域 **组合**: CLIP 提供对齐基础 + VLM 添加 LLM 推理能力 = 现代多模态系统总体答题策略¶
🎯 时间分配建议 (150 分钟)¶
- Part A 单选 (10 × 2 min) = 20 min
- Part B 填空 (5 × 3 min) = 15 min
- Part C 简答 (5 × 8 min) = 40 min
- Part D 论述 (3 × 12 min, 选 2-3) = 24-36 min
- Part E 代码 (1 × 15 min) = 15 min
- Part F 综合 (1 × 15 min) = 15 min (选做)
- 剩余: 检查
📌 取舍原则¶
- 实在不会的题,Part A/B 先蒙一个 (分较低,容易抢)
- Part C/D 的 🔴 和 ⭐ 题占分高,投入更多时间
- 跨章节题 (F) 难,留到最后
📚 必备工具包¶
- 公式: InfoNCE, VQ 量化, 扩散前向 + CFG, 跨模态注意力
- 名称: ViT/CLIP/SigLIP/BLIP-2/LLaVA/Qwen-VL/VQ-VAE/VQ-GAN/SD/DALL-E/Imagen/GPT-4o/Gemini/Show-o/Janus
- 数值: τ=0.07, batch=32768, codebook=8192, FID-30k<10, MMMU=69%
💡 常见错误警示¶
- ⭐ CLIP 双塔: 图像和文本各一个 encoder,不要混淆
- ⭐ CFG w 增加: 对齐 ↑ 多样性 ↓
- ⭐ VQ 量化不可微: 直通估计 hack,不是 backward 真梯度
- ⭐ SD 在 latent: 不是像素直接扩散
- ⭐ VQ-VAE codebook: 是 learnable,和 NLP 词表语义不同
🎁 Bonus 加分点¶
- 提到具体年份/数据规模(如 CLIP 400M 图文对、SD 2.6B UNet)
- 画图清楚(三组件、CLIP 关系矩阵、SD U-Net cross-attn)
- 公式自推导(默写 F1-F12)
- 实战经验(训练时遇到的坑、参数选择)
自我评分参考: - 80+ 优秀: 完整掌握 Ch10,可应对中高级 AI 工程师面试 - 60-79 良好: 大部分掌握,可应对入门面试 - 40-59 及格: 核心概念 OK,需要复习 - <40 不及格: 重读 Ch10 + 信息图 + 闪卡