跳转至

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 Estimator

A10 🔴

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
**评分要点**: - 正确计算 NxN 相似度 (2 分) - 双向对称 (2 分) - softmax + 交叉熵 (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 + 信息图 + 闪卡