← 返回学习路线 ◆ 贯穿项目
前沿方向 · 阶段 11 · 多模态与生成模型
Stage 11 / 17 · 前沿方向

多模态与生成模型 Multimodal & Generative Models

2026 年,「原生多模态」正在取代「语言模型调度 + 视觉模型执行」的拼接模式:图像、文本、音频在共享潜空间里做 token 级的跨模态注意力,并涌现出初步的视觉推理能力。这个阶段覆盖理解(VLM)与生成(扩散 / DiT)两条主线,以及它们正在合流的方向。

⏱ 4–6 周 🎯 进阶 · 方向性 ◆ 里程碑 M11 2026-09-29
VLMDiffusionDiTFlow Matching视频生成Omni多模态评测

阶段总览

✔
学完你能做到
  • 理解 VLM 的三种主流架构(投影式 / 交叉注意力式 / 原生统一式)及各自取舍
  • 掌握扩散模型与 Flow Matching 的数学直觉,能解释为什么用 DiT 替代 U-Net
  • 理解图像与视频生成的关键难点:时序一致性、物理合理性、长视频记忆
  • 了解语音与 Omni 模型的形态(ASR / TTS / 端到端语音对话)
  • 能构造与清洗多模态训练数据(图文对、交错数据、视频描述、指令数据)
  • 能对多模态模型做有效评测(幻觉、细粒度感知、OCR、空间关系)
  • 能做部署与成本核算:视觉 token 量、分辨率、帧率对成本的巨大影响
阶段知识结构总览 · 理解线与生成线正在合流
阶段 11 · 多模态与生成模型Multimodal & Generative Models · 15 大章 · 236 个知识点
1. 视觉语言模型(VLM)三种架构范式视觉 token 成本幻觉与细粒度评测
2. 生成模型:扩散与 Flow MatchingDDPM 加噪/去噪DiT 替代 U-NetFlow Matching 速度场
3. 视频生成时序一致性物理合理性长视频对象持久性
4. 语音与全模态(Omni)级联 / 语音 LLM / Omni端到端 <1s声音克隆合规
5. 多模态数据与部署图文对 / 交错数据CLIP 质量过滤token 与显存优化
6. 对比学习与 CLIPInfoNCE温度 τ零样本分类SigLIP sigmoid
7. ViTpatch embedding 14×14[CLS] / 位置编码Swin 窗口注意力
8. VLM 架构深入连接器方案动态分辨率切图训练三阶段
9. 视频理解帧采样时序位置编码token 爆炸与压缩
10. 语音与音频Whisper 多任务音频 token流式时延预算
11. 扩散模型数学进阶ε / x0 / v 预测CFG 引导潜空间扩散
12. Flow Matching 深入直线路径常速速度场1–4 步蒸馏
13. DiTadaLN-Zero零初始化 gate缩放律
14. 文生图与文生视频SD→SDXL→FLUX时空 / 物理难点Sora / Wan / 可灵
15. 多模态评测MMBench / MMMU感知 vs 推理自建评测
贯穿项目 · M11 多模态理解与检索第 61–66 周VLM 推理封装(图像/图表/表格问答),含图像预处理与分辨率预算PDF / 扫描件 → 版面分析 → 段落 + 图表的统一结构化表示图像 embedding 入库,支持以文搜图与以图搜图纯文本 RAG vs 多模态 RAG 在含图表文档上的效果对比
学习路径
ℹ
两条主线,先明确你要走哪条:理解线(VLM):输入图像/视频,输出文本或动作——面向问答、OCR、文档理解、GUI Agent、机器人感知。生成线(Diffusion / DiT):输入文本/图像/动作,输出图像/视频/3D——面向创意设计、广告、影视、仿真数据合成。合流点是「统一时空世界模型」:同一个骨干同时具备理解与生成能力。
周次主题交付物
第 1 周VLM 架构与视觉编码跑通一个开源 VLM 并做细粒度评测
第 2 周扩散模型与 DiT从零实现 DDPM 并训练一个小图像生成器
第 3 周Flow Matching 与图像生成对比不同采样步数与质量的关系
第 4 周视频生成与一致性分析长视频生成的一致性失效模式
第 5 周语音与全模态接一个 ASR + TTS 组成语音对话回路
第 6 周多模态数据与部署数据管线 + 成本核算报告

1. 视觉语言模型(VLM)

知识结构图 · 视觉语言模型(VLM)
视觉语言模型(VLM)4 大知识域 · 17 个知识点
三种架构范式投影式(后接)交叉注意力式原生统一式交互深度排序训练成本反向
学习路径
  1. 读 1.1 表格:对比三种范式的做法/优点/缺点
  2. 跑 SimpleVLM 前向,看 576 个视觉 token 怎么进入 LLM
  3. 完成 1.3 练习 1/5:排序交互深度/训练成本,说明 2026 趋势
  4. 对接 M11:在 mm/vlm.py 里选投影式的封装基线
✔ 能给三种范式排序交互深度与成本,并说清趋势为何指向原生统一
核心知识点详解
  • 三种范式交互深度排序:投影式(视觉编码器→投影层→LLM,交互浅)< 交叉注意力式(层间插视觉交叉注意力,更深)< 原生统一式(视觉/文本 token 同一骨干注意力,最深)。
  • 训练成本反向:投影式实现简单、复用成熟 LLM、训练最便宜;交叉注意力式改造结构、成本更高;原生统一式需海量交错数据 + 大算力、门槛最高。
  • 投影式是工程基线:SimpleVLM 用 Linear(d_vision→d_llm) 投影,把 576 个视觉 token 拼到文本前——实现快、易依赖成熟 LLM,适合快速验证。
  • 2026 趋势指向原生统一:原生统一在共享潜空间做 token 级跨模态注意力,交互最深、能涌现视觉推理;但数据与算力门槛极高,小团队仍从投影式起步。
视觉 token 成本ViT patch 14×14336² → 576 token1008² → 5184(9×)随分辨率平方增长动态切图与池化
学习路径
  1. 读 1.1 的成本警示:token 随分辨率平方增长
  2. 手算 336²/1008² 的 token 数,确认 576→5184(9 倍)
  3. 完成 1.3 练习 2:算 patch=14 时两种分辨率的 token 数
  4. 对接 M11:算清不同分辨率下图片 token 折算与成本(M11 交付)
✔ 能按公式算任意分辨率的 token 数与成本倍数
核心知识点详解
  • 视觉 token 数是 (W/patch)²:patch=14 时:336²→(336/14)²=576 token、1008²→(1008/14)²=5184——分辨率翻 3 倍 token 涨 9 倍(平方增长)。
  • token 随分辨率平方增长:576 token ≈ 一段约 400 字中文的算力成本;图片/文档一多,账单随分辨率平方级放大。
  • 动态切图与池化控成本:只对需要看细节的子图用高分辨率切图(tiling),其余用整图低分辨率;视觉 token 压缩(池化/重采样)可把成本降一个数量级。
  • 常见坑:所有图都上高分辨率:对简单缩略图也喂 1008²,token 是 336² 的 9×,纯属浪费。按任务需求选分辨率,而不是默认拉满。
多模态评测视觉幻觉率细粒度 OCR / 计数空间关系(左/右/上/下)文档图表理解claimed−present 集合
学习路径
  1. 读 1.2:理解幻觉与细粒度感知是能力分水岭
  2. 跑 hallucination_rate 代码,用 claimed−present 集合算幻觉率
  3. 完成 1.3 练习 3/4:写幻觉业务危害与评估流程
  4. 对接 M11:在 mm/vlm.py 上做细粒度评测并单独统计幻觉率
✔ 能分维度统计 OCR/计数/空间准确率并单独报幻觉率
核心知识点详解
  • 攻击分水岭:细粒度感知:小物体、密集 OCR、图表数值、空间关系(左/右/上/下)是能力分水岭——通用 VLM 在此远低于人类直觉,需分维度评测。
  • 幻觉率的集合计算:幻觉率 = |claimed − present| / |claimed|,用「模型提到的元素集合 − 图中真实元素集合」的差占比。文字密集/低分辨率/专业图表时幻觉率显著升高。
  • 幻觉比 OCR 错更危险:OCR 错误至少对应真实存在的文字;幻觉是说出图中不存在的内容,在医疗/金融/合规会直接误导决策。
  • 常见坑:只看整体准确率:整体相似度会被大量简单题拉高,掩盖幻觉与细粒度弱项。必须分维度(OCR/计数/空间/图表)各算准确率,并单独报幻觉率。
趋势与判据原生统一涌现视觉推理数据与算力门槛高
学习路径
  1. 读 1.3 练习 5 答案:理解原生统一的趋势与门槛
  2. 复盘 1.1 的角标,判断你该走拼接还是原生路线
  3. 完成 1.3 练习 5:说明趋势原因
  4. 对接 M11:在预算约束下选一个 VLM 底座
✔ 能解释原生统一为何门槛高但交互最深,并为项目选对底座
核心知识点详解
  • 原生统一的门槛:需海量交错图文数据 + 大算力在预训练期让视觉/文本共享同一 Transformer 骨干;小团队通常跑不动,只能依赖大厂开源/API。
  • 交互最深 & 能涌现视觉推理:跨模态注意力在底层发生,能涌现比投影式更强的视觉推理(如「看+听+说」统一),这是选原生统一的核心收益。
  • 选底座看预算与任务:预算紧、任务偏理解 → 用开源投影式 VLM(LLaVA/Qwen-VL/InternVL)底座;要原生多模态统一及最强视觉推理 → 用 Gemini 3 / Qwen3-VL。
  • 常见坑:为趋势硬上原生路线:原生统一需要的数据/算力门槛高,多数业务用拼接 + 现有底座已够;趋势≠无脑跟随,先算清预算 ROI 再选。
学习路径

1.1 三种架构范式

范式做法优点缺点
投影式(后接)视觉编码器 ViT → 投影层 → 冻结/微调 LLM实现简单、复用成熟 LLM、训练成本低视觉与语言交互较浅,细粒度推理弱
交叉注意力式在 LLM 层间插入对视觉特征的交叉注意力融合更深,对高分辨率与细节更友好改造 LLM 结构,训练与推理更复杂
原生统一式视觉 token 与文本 token 在同一骨干内做统一注意力交互最深,能涌现视觉推理能力数据与算力需求极大,工程门槛高

2026 年的趋势明确指向原生统一架构:图像与文本不再是「编码器 + 适配器」的拼接,而是在共享潜空间里直接做 token 级跨模态注意力。这也是「原生多模态」这个词的含义。

python# VLM 的最小前向结构(投影式):理解视觉 token 是怎么“进入”LLM 的
import torch, torch.nn as nn

class SimpleVLM(nn.Module):
    def __init__(self, vision, d_vision=1024, d_llm=4096, patch=14, img=336):
        super().__init__()
        self.vision = vision                                  # ViT / SigLIP,输出 patch 特征
        self.projector = nn.Sequential(                       # 关键适配层:维度对齐
            nn.Linear(d_vision, d_llm), nn.GELU(), nn.Linear(d_llm, d_llm))
        self.n_visual_tokens = (img // patch) ** 2            # 336/14 = 24 -> 576 个视觉 token
        print(f"每张图将占用 {self.n_visual_tokens} 个 token —— 这是成本的关键")

    def forward(self, pixel_values, text_embeds):
        vis = self.vision(pixel_values)                       # (B, N_patch, d_vision)
        vis = self.projector(vis)                             # (B, N_patch, d_llm)
        # 把视觉 token 拼在文本 token 之前(或按占位符插入)
        return torch.cat([vis, text_embeds], dim=1)

# 成本直觉:576 个视觉 token ≈ 一段 400 字中文;高分辨率切图会成倍放大
# 这就是「图片一多,账单就爆」的根本原因,也是视觉 token 压缩成为热点的原因
⚠
多模态最大的成本陷阱:视觉 token 数量随分辨率平方增长。把图片从 336×336 提到 1008×1008,token 数从 576 涨到约 5184(9 倍)。因此生产系统必须做:分辨率自适应、动态切图(只在需要看细节时切)、视觉 token 压缩(池化 / 重采样)、以及缓存。这些优化带来的成本差异可以达到一个数量级。

1.2 多模态评测:幻觉与细粒度感知

python# 幻觉率评测:把「模型提到的元素」与「图中真实元素」做集合比较
def hallucination_rate(samples):
    """samples: [{"claimed": [...], "present": [...]}, ...]"""
    total, halluc = 0, 0
    for s in samples:
        claimed = set(x.strip().lower() for x in s["claimed"])
        present = set(x.strip().lower() for x in s["present"])
        total += len(claimed)
        halluc += len(claimed - present)          # 说了但图里没有
    return halluc / max(1, total)

# 典型结论:通用 VLM 在自然图片上幻觉率较低,
# 但在「文字密集 / 低分辨率 / 专业图表」上会显著升高 —— 这决定你能否用在业务里

1.3 动手练习与自测

  1. 三种 VLM 架构(投影式 / 交叉注意力式 / 原生统一式)在「跨模态交互深度」与「训练成本」上如何排序?
  2. 一张 336×336 图在 patch=14 时产生多少视觉 token?提到 1008×1008 后是多少?
  3. 为什么视觉幻觉比 OCR 错误更危险?给出一个业务场景。
  4. 写一个评估流程,把「细粒度感知(OCR / 计数 / 空间)」与「幻觉率」分开统计。
  5. 2026 年 VLM 架构的趋势是什么?为什么?
✔
参考答案 / 判据:① 交互深度:原生统一 > 交叉注意力 > 投影式;训练成本:投影式 < 交叉注意力 < 原生统一(大体反向)。② (336/14)²=576;(1008/14)²=5184(9 倍)。③ 幻觉是「说出图中不存在的内容」,在医疗 / 金融 / 合规场景会直接误导决策;OCR 错误至少对应真实存在的文字。④ 流程:按能力维度分别构造带标准答案的问题集 → 逐项算准确率 → 再用「claimed 集合 − present 集合」占比算幻觉率(见 v-eval 代码)。⑤ 趋势是原生统一:视觉与文本 token 在共享骨干做统一注意力,跨模态交互最深、能涌现视觉推理,代价是数据与算力门槛极高。

2. 生成模型:扩散与 Flow Matching

知识结构图 · 生成模型:扩散与 Flow Matching
生成模型:扩散与 Flow Matching4 大知识域 · 17 个知识点
扩散模型前向加噪 x_t=√ᾱ_t·x0+√(1−ᾱ_t)·εᾱ_t 累积预测噪声 εMSE 去噪训练目标
学习路径
  1. 读 2.1:理解前向加噪公式与 MSE 去噪目标
  2. 跑 DDPM 最小实现(MNIST),观察加噪→去噪损失下降
  3. 完成 2.3 练习 1:写加噪公式与预测 ε 的原因
  4. 对接 M11:可为图像小数据集跑通一个扩散生成基线
✔ 能手写加噪公式并解释 ᾱ_t 累积,训练一个小生成器到可看
核心知识点详解
  • 前向加噪公式:x_t = √ᾱ_t·x_0 + √(1−ᾱ_t)·ε,其中 ᾱ_t = Π_{s≤t} α_s(累积乘积),噪声 ε~N(0,1)。加噪可一步到位而非逐 t 迭代。
  • MSE 去噪训练目标:训练网络预测噪声:loss = MSE(model(q_sample(x0,t,ε), t), ε)。预测 ε 与预测 x0/v 等价(可换算),只是参数化不同。
  • 采样 = 从噪声迭代去噪:从纯噪声出发按学到的去噪方向迭代(DDPM 需 1000 步)得到样本;DDIM/流匹配可压到几十步。
  • 常见坑:时间步条件没注入:网络必须接收时间步 t(用正弦编码)才能区分各噪声档;遗漏 t 会导致不同噪声水平的去噪混在一起、训练失效。
DiT 替代 U-NetTransformer patch 注意力可扩展性吃缩放律统一异构条件Sora / Veo / Wan
学习路径
  1. 读 2.1 的「为什么是 DiT」:可扩展性 + 统一性
  2. 对照 ddpm 骨架,理解把 U-Net 换成 patch 注意力的点
  3. 完成 2.3 练习 2:给出 DiT 替代 U-Net 的两个关键理由
  4. 对接 M11:识别你项目里哪些生成子模块该用 DiT
✔ 能说出 DiT 走缩放与统一条件的两个理由,并举例主流模型
核心知识点详解
  • 理由一:可扩展性吃缩放律:Transformer 直接受益于模型/数据规模,越大约好(FID 单调提升);U-Net 的卷积偏置在大规模下收益有限。
  • 理由二:统一异构条件:同一套骨干可接受文本 / 图像参考 / 深度图 / 动作 / 相机轨迹等异构条件,支撑「图像编辑、图生视频、动作生成」统一下游。
  • 主流 DiT 模型:Sora、Veo、可灵、Wan、HunyuanVideo、CogVideoX、FLUX 基本都是 DiT 系(为视频/图像生成骨干)。
  • 常见坑:以为 DiT 必然更好:DiT 需更大数据/算力才显优势;小数据小任务上简单 U-Net 或更省。选骨干要看预算与数据量。
Flow Matching连续速度场线性插值路径v=x1−x020–50 步采样蒸馏到 1–4 步
学习路径
  1. 读 2.2:理解连续速度场 v=x1−x0 与直线路径
  2. 跑 flow_matching_loss / sample 代码,对比步数对样本的影响
  3. 完成 2.3 练习 3/5:写路径与速度目标、解释与扩散的关系
  4. 对接 M11:用直线路径的目标理解多模态生成加速
✔ 能写 Flow Matching 目标并说明为何 20–50 步即可、可蒸馏
核心知识点详解
  • 直线路径与常速速度场:路径 x_t=(1−t)x0+t·x1,速度目标 v=x1−x0(沿直线为常数)。训练 = MSE(model(x_t,t), x1−x0)。
  • 为何 20–50 步即可:路径越直、速度场越接近常数,大步长积分误差越小,所以 20–50 步(甚至更少)就能出高质量样本,对比 DDPM 需上千步。
  • 可蒸馏到 1–4 步:先训好速度场,再用蒸馏把大模型「教师」压成少步「学生」,FLUX/SD3 敢把采样压到 4 步甚至 1–2 步(见 12.1 的 1 步均值示例)。
  • 常见坑:曲线路径硬用大步数:若用弯曲路径(如 DDPM)却只取 20 步,积分误差大、样本是噪声;Flow Matching 的直线路径才是少步的前提。
预测目标与统一ε / x0 / v 可换算v-prediction 高噪更稳Rectified Flowmixture-of-transformers
学习路径
  1. 读 2.3 练习 4/5 答案:理解 ε / x0 / v 可换算与统一视角
  2. 跑参数化对比(或对照 11.1),观察 v-prediction 高噪更稳
  3. 完成 2.3 练习 4/5:各阶段更稳的目标与数学统一
  4. 对接 M11:为生成管线选目标参数化并记录理由
✔ 能说明 ε/x0/v 的区别与换算,并解释流匹配的统一性
核心知识点详解
  • 三种预测目标:ε(DDPM 默认,预测噪声)稳定;x0 采样后期更准、易约束;v=αε−σx0 高噪声步更稳。三者可相互换算(给定 α_t, σ_t)。
  • v-prediction 为何高噪更稳:极噪时预测干净 x0 数值敏感;预测速度 v(沿直线对时间求导)更稳,数值上避开极噪区的不稳定。
  • 数学统一视角:ε-pred、x0-pred、v-pred 都是「学一个把噪声推向数据的变换」的不同参数化;v 与 Flow Matching / Rectified Flow 速度场同构。
  • 常见坑:固定一种预测目标死磕:不同阶段最优目标不同(高噪重 v、后期重 x0)。只用一个目标会在某些噪声档表现差,可混合/切换参数化。
学习路径

2.1 扩散模型的直觉与最小实现

扩散模型的想法是:定义一条从数据到噪声的加噪路径,然后训练一个网络学会反向去噪。生成时从纯噪声出发,迭代去噪若干步得到样本。它稳定、可控、覆盖模式全,是 2024 年之后图像与视频生成的主流。

python# DDPM 的核心:加噪公式与训练目标(极度精简版)
import torch, torch.nn as nn

class TinyUNet(nn.Module):
    def __init__(self, d=64):
        super().__init__()
        self.net = nn.Sequential(nn.Conv2d(1, d, 3, padding=1), nn.SiLU(),
                                 nn.Conv2d(d, d, 3, padding=1), nn.SiLU(),
                                 nn.Conv2d(d, 1, 3, padding=1))
        self.temb = nn.Linear(1, d)                      # 时间步条件(实际用正弦编码)
    def forward(self, x, t):
        h = self.net[0](x) + self.temb(t).view(-1, -1, 1, 1)
        return self.net[2:](torch.cat([h], dim=1)) if False else self.net(x)

T = 1000
betas = torch.linspace(1e-4, 0.02, T)
alphas = 1.0 - betas
alpha_bar = torch.cumprod(alphas, dim=0)                 # ᾱ_t

def q_sample(x0, t, noise):
    """前向加噪:x_t = √ᾱ_t · x_0 + √(1-ᾱ_t) · ε  —— 一步到位"""
    a = alpha_bar[t].view(-1, 1, 1, 1)
    return a.sqrt() * x0 + (1 - a).sqrt() * noise

# 训练目标:预测噪声 ε(等价于预测 x0 或速度 v,只是参数化不同)
model = TinyUNet()
opt = torch.optim.Adam(model.parameters(), lr=1e-3)
for x0 in loader:
    t = torch.randint(0, T, (x0.size(0),))
    noise = torch.randn_like(x0)
    loss = nn.functional.mse_loss(model(q_sample(x0, t, noise), t), noise)
    opt.zero_grad(); loss.backward(); opt.step()
★
为什么是 DiT 而不是 U-Net:原版扩散用 U-Net(卷积的层次结构适合图像)。DiT 把骨干换成 Transformer(在 patch 上做注意力),带来两个关键好处:① 可扩展性——能直接吃下缩放律带来的收益,模型越大效果越好;② 统一性——同一套骨干可以接受文本、图像、动作、相机轨迹等异构条件,这正是「视频生成」与「世界模型」需要的能力。今天的 Sora、Veo、可灵、Wan、HunyuanVideo、CogVideoX 基本都是 DiT 系。

2.2 Flow Matching 与统一架构

Flow Matching(流匹配)可以理解为扩散的简化版:不定义离散的加噪步,而是直接学习一个从噪声分布到数据分布的连续速度场,训练目标变成回归「把噪声点推向数据点的速度」。它训练更稳、采样步数更少、实现更干净,因此在 2025–2026 年被大量图像/视频模型采用(如视频扩散中的 Flow Matching、机器人 VLA 中的动作头)。

python# Flow Matching 的目标:给定噪声 x0 与数据 x1,学一个线性路径的速度
import torch

def flow_matching_loss(model, x1):
    """x1: 真实数据;x0: 噪声;t~U(0,1)"""
    x0 = torch.randn_like(x1)
    t = torch.rand(x1.size(0), *([1] * (x1.dim() - 1)))
    xt = (1 - t) * x0 + t * x1          # 线性插值路径
    v_target = x1 - x0                  # 该路径上的真实速度(常数)
    return torch.nn.functional.mse_loss(model(xt, t), v_target)

# 采样:从噪声出发,沿学到的速度场用少量步数积分(欧拉法)
@torch.no_grad()
def sample(model, shape, steps=20):
    x = torch.randn(shape)
    for i in range(steps):
        t = torch.full((shape[0],), i / steps)
        x = x + model(x, t) * (1.0 / steps)          # 20 步左右即可出图
    return x

2.3 动手练习与自测

  1. 写出扩散的前向加噪公式 x_t = √ᾱ_t·x_0 + √(1−ᾱ_t)·ε,并说明训练目标为什么可以是预测 ε。
  2. 为什么 DiT 替代 U-Net 能带来缩放收益?给出两个关键理由。
  3. 写出 Flow Matching 的直线路径与速度目标,并解释为什么它采样步数更少。
  4. ε / x0 / v 三种预测目标各在什么阶段更稳?
  5. 扩散与 Flow Matching 在数学上是什么关系?
✔
参考答案 / 判据:① 前向是「一步到位」的高斯加噪,ε 是标准正态噪声;预测 ε 与预测 x0/v 等价(可相互换算),预测 ε 数值稳定所以 DDPM 默认用它。② ① 可扩展性:Transformer 直接受益于缩放律,越大越好;② 统一性:同一骨干可接受文本 / 图像 / 动作 / 相机轨迹等异构条件。③ 路径 x_t=(1−t)x0+t·x1,速度 v=x1−x0(沿直线为常数);路径近直线时大步长积分误差小,20–50 步甚至 1–4 步即可。④ 高噪声步 v-prediction 更稳;采样后期 x0-prediction 更准 / 易约束;ε 是 DDPM 默认基线。⑤ 同属「学一个把噪声推向数据的变换」,只是参数化不同;Rectified Flow 可视为把弯曲路径「整流」成直线。

3. 视频生成:一致性是最大的难题

知识结构图 · 视频生成
视频生成4 大知识域 · 18 个知识点
三类失效时序一致性物理合理性长视频漂移音画不同步身份保持
学习路径
  1. 读 3.1 表格:识别视频生成五类失效
  2. 生成 3 段 10 秒长镜头,标注换脸/穿模/漂移等失效
  3. 完成 3.2 练习 1/2:写三类核心失效与对应技术
  4. 对接 M11:对你的视频子任务做一致性失效分析
✔ 能标出真实生成片段的失效类型,并关联对应技术手段
核心知识点详解
  • 五类失效:时序一致性(换脸/闪)、物理合理性(穿模)、长视频漂移、音画不同步、身份保持。3 段 10 秒镜头标注即可暴露大部分。
  • 失效→技术映射:时序一致性→3D VAE/时空注意力/长上下文;物理→物理先验/世界模型预测;漂移→分层生成/潜空间时序映射/相机控制。
  • 一致性随时长约指数衰减:短视频看不出差距,拉到 60–90 秒误差逐帧累积演变成结构性崩坏——时长/连续镜头数是关键评测维度。
  • 常见坑:只看单帧画质:单帧好看≠视频连贯。评测必须看连续镜头一致性(对象持久性),否则会把「偶然好看」误当可用。
对应技术3D VAE 压缩时空注意力长上下文记忆参考锚定分层生成 + 插帧相机控制
学习路径
  1. 读 3.1 表格:把五类失效映射到对应技术
  2. 跑一致性命中实验(或对照分层生成),看插帧/相机控制效果
  3. 完成 3.2 练习 1/5:写技术手段与身份保持
  4. 对接 M11:为生成添加强类比锁/身份保持
✔ 能给每个失效找到技术方案并区分全局与局部记忆手段
核心知识点详解
  • 技术手段分全局/局部:全局记忆(身份保持/对象持久性)用参考锚定、3D VAE、长上下文记忆;局部手段(当前镜头)用时空注意力、插帧、相机控制。
  • 对象持久性靠长上下文记忆:长镜头里角色不消失/不变形,依赖长期记忆 + 一致性约束(参考锚定/种子锚定),这是「看起来合理」与「真的连贯」的分界线。
  • 相机控制防漂移:镜头运动时环境要稳定,靠相机控制 + 潜空间时序映射 + 关键帧插帧,避免「镜头一移环境就变形」。
  • 常见坑:只加局部一致性不加长记忆:只在帧内做一致性无法保证跨镜头;长视频靠持续的对象锚定,否则角色到 60 秒后一定崩。
长短视频对比60–90s 一致性差距对象持久性误差逐帧累积一致性随时长约指数衰减
学习路径
  1. 读 3.1 经验结论:一致性随时长约指数衰减
  2. 对比短视频与长视频片段,观察对象持久性与漂移
  3. 完成 3.2 练习 2/3:说明为何短视频好看不等于可进生产
  4. 对接 M11:用连续镜头数作为你的评测维度
✔ 能量化长视频一致性的指数衰减,并给出评测维度
核心知识点详解
  • 60–90s 一致性差距:不同架构在 60–90 秒连续镜头上的对象持久性一致性差距可以很大,这直接决定能否进生产(广告/影视/仿真)。
  • 误差逐帧累积呈指数衰减:物理误差与对象漂移随帧数累积,一致性随时长近似指数衰减——短视频「碰巧好看」掩盖不了结构性崩坏。
  • 评测用时长 + 连续镜头数:评测视频模型时,时长与连续镜头数比单帧画质更能区分高下(见 9.2 token 预算也按此算)。
  • 常见坑:拿 10 秒样片当生产依据:短视频片段质量高不代表长视频可用。上线前至少要测 60 秒 + 多次连续镜头,看对象持久性与物理一致性。
世界模型分界可被动作条件化可交互性种子锚定
学习路径
  1. 读 3.2 练习 4 答案:理解可交互=世界模型的分界
  2. 实测视频模型的「响应动作/指令」能力,判断交互性
  3. 完成 3.2 练习 4:说明动作条件化为何是分界
  4. 对接 M11:判断你的模型是否已具备世界模型雏形
✔ 能区分视频生成与世界模型,并解释交互性判据
核心知识点详解
  • 可交互 = 世界模型的分界:能对动作条件化输出未来帧/状态(而非只播放预先决定的帧)才是世界模型;纯视频生成只是「回想」,不可交互。
  • 动作条件化 vs 被动生成:世界模型接受动作/指令作为输入并预测下一状态;视频生成只从潜变量采样。前者有「响应」,后者只是「播放」。
  • 用交互性实测判断模型:实测模型的「响应动作/指令」能力:能否在中间注入控制并改变后续帧?能→已具世界模型雏形。
  • 常见坑:把好看的展示视频当世界模型:视频生成好≠世界模型。用「可被动作条件化、可交互」来判,而不是看演示视频效果。
学习路径

3.1 三类失效与对应技术

失效类型表现技术手段
时序一致性人物换脸换衣、物体闪烁3D VAE 压缩、时空注意力、长上下文记忆、参考锚定
物理合理性物体穿模、违反重力与碰撞物理先验、世界模型预测、动作条件化、数据质量
长视频漂移镜头一移动环境就变形分层生成(关键帧 + 插帧)、潜空间时序映射、相机控制
音画不同步音效延迟或错位原生 Omni 架构同时生成画面与音频(而非后期拼接)
身份保持多镜头里角色不一致参考图 / 身份编码、种子锚定、一致性约束
ℹ
2026 年的一个重要分水岭:「能生成好看视频」已经不够了。真正的分野在于长视频的对象持久性(object permanence)与物理一致性——研究对比显示,不同架构在 60–90 秒连续镜头上的一致性差距可以很大,而这直接决定它能否进入真实生产流程(广告、影视、仿真)。此外,可交互 / 可被动作条件化是「世界模型」与「视频生成」的分界线。
能力短视频(≤10s)长视频(60s+)关键差异来源
画面质量各家接近拉开差距长时间一致性约束
对象持久性基本满足差别明显长期记忆 / 参考锚定
物理合理偶有穿模误差累积放大世界模型 / 物理先验
可交互少数支持尚在探索动作条件化能力
音画同步后期拼接原生同生成Omni 架构

经验上,视频一致性随时长近似指数衰减:短视频看不出差别,一旦拉到 60 秒,误差会逐帧累积,把「偶然好看」暴露成「结构性崩坏」。所以评测视频模型时,时长与连续镜头数比单帧画质更能区分高下。

3.2 动手练习与自测

  1. 视频生成的三类核心失效是什么?各对应什么技术手段?
  2. 为什么「能生成好看短视频」不足以判断视频模型能否进生产?
  3. 长视频的对象持久性(object permanence)为什么是分水岭?
  4. 「可被动作条件化」为什么被视为世界模型与视频生成的分界?
  5. 身份保持(角色一致)可用哪些手段提升?
✔
参考答案 / 判据:① 时序一致性(3D VAE / 时空注意力 / 长上下文记忆)、物理合理性(物理先验 / 世界模型 / 动作条件)、长视频漂移(分层生成 / 潜空间时序映射 / 相机控制)。② 因为短片段容易「碰巧好看」,真正考验是 60–90 秒连续镜头的一致性,研究显示不同架构差距很大,直接决定能否用于广告 / 影视 / 仿真。③ 长镜头中物体 / 角色不能凭空消失或变形,这依赖长期记忆与一致性约束,是「看起来合理」与「真的连贯」的分界线。④ 可交互意味着模型能对动作 / 指令响应并预测下一状态,而不只是播放预先决定的帧,这正是「世界模型」的核心。⑤ 参考图 / 身份编码、种子锚定、一致性约束与多镜头共享参考。

4. 语音与全模态(Omni)

知识结构图 · 语音与全模态(Omni)
语音与全模态(Omni)4 大知识域 · 16 个知识点
三条技术路线级联 ASR→LLM→TTS端到端语音对话Omni 统一模型延迟 vs 副语言权衡
学习路径
  1. 读 4.1 与表格:对比级联/语音LLM/Omni 三条路线
  2. 用浏览器 ASR + LLM API + 系统 TTS 搭个最小语音回路
  3. 完成 4.2 练习 1:按延迟与副语言权重给场景选路线
  4. 对接 M11:为语音问答估算端到端延迟预算
✔ 能按场景选路线,并拆解端到端延迟各环节
核心知识点详解
  • 三条技术路线:级联式(ASR→LLM→TTS,成熟可控)、端到端语音对话(直接语音进出,保留副语言)、Omni 统一模型(文本/图像/音频/视频同模型处理生成)。
  • 延迟 vs 副语言的取舍:级联延迟三端相加(≥1s)且语气/情绪在中间丢失;端到端延迟低、保留副语言但训练/工程难。延迟与副语言权重越高越靠后端到端。
  • 按场景选路线:要成熟易调试→级联;要保留情绪的助手→语音 LLM;要低延迟自然对话→端到端 Omni。
  • 常见坑:无视端到端延迟预算:语音交互门槛是轮次延迟 < 1s。选路线前先拆各环节时延(ASR/LLM/TTS),否则产品听到「延迟叠加」才改架构。
组件与开源Whisper 系 ASRwhisper-tiny ONNX 量化神经声码器 TTS零样本声音克隆
学习路径
  1. 读 4.1:理解 ASR/TTS 组件与开源生态
  2. 跑 whisper-tiny ONNX 量化(或读示例)做本地识别
  3. 完成 4.2 练习 2/4:拆时延预算、写声音克隆合规红线
  4. 对接 M11:在语音回路里评估 WER 与延迟
✔ 能跑通本地 ASR 组件,并给出延迟与 WER 等指标选择依据
核心知识点详解
  • Whisper 系是 ASR 主力:Whisper(编码器-解码器)仍是开源主力;浏览器端可用 whisper-tiny/base 的 ONNX 量化版做本地离线识别(CPU 也能跑)。
  • TTS 从拼接到神经声码器:TTS 从拼接式进化到神经声码器、再到零样本声音克隆;声纹授权与合成水印是合规硬约束(见 4.1)。
  • 选型看延迟与精度:实时本地识别偏好 tiny/base 量化版(低延迟);精度优先用 large-v3。用 WER 评估 ASR;长音频要分段 + 重叠窗口防截断/重复。
  • 常见坑:整段一次性识别大音频:长音频直接整段喂 Whisper 会因上下文过大而截断/幻觉。要分段 + 重叠窗口(如 30s/overlap 5s),再去重处理边界。
实时性与评测端到端 <1s流式 ASR + 生成 + TTSASR 用 WERTTS 用 MOSbarge-in 打断
学习路径
  1. 读 4.1:掌握 <1s 门槛与流式链路
  2. 实测你的回路各环节延迟,拼流水线并行
  3. 完成 4.2 练习 2/3:拆延迟预算、写 ASR/TTS 评测指标
  4. 对接 M11:用 WER/MOS 评估语音回路并优化延迟
✔ 能量化每环节时延并压到 <1s,会用 WER/MOS 评测
核心知识点详解
  • 端到端 <1s 门槛:语音交互体验门槛是轮次延迟 < 1000ms,由「流式 ASR 首字 200–600ms + LLM 500–3000ms + 流式 TTS 首包 150–400ms」流水线并行 + 早启动拼出来。
  • 三个阶段指标不同:ASR 看 WER(词错率);TTS 看 MOS(自然度)与说话人相似度;语音对话看打断(barge-in)成功率与轮次延迟。
  • 压延迟靠流水线并行:不要三端串行等完整结果;用流式 ASR(VAD 断句)+ 流式生成 + 流式 TTS,边收边处理边播放。
  • 常见坑:只测 50 分位延迟:语音对话体验看 P99,长尾波动的轮次最伤人。要测并压 P99 <1s,而不是只报告均值。
合规红线声纹授权合成音频水印防深度伪造滥用
学习路径
  1. 读 4.1 的合规:声纹授权 + 合成水印 + 防滥用
  2. 为你的 TTS 加声纹授权与合成音标记
  3. 完成 4.2 练习 4:写合规红线与工程落实
  4. 对接 M11:把合规开关集成进你的语音产品
✔ 能列声音克隆的合规要求并给出可落地的工程措施
核心知识点详解
  • 合规红线:声音克隆必须做声纹授权 + 合成音频水印 + 可检测性,防止深度伪造滥用;这是监管关注点、工程之外的硬约束。
  • 声纹授权:克隆前需本人显式授权(声纹授权);未授权使用他人声纹是合规红线。
  • 落地措施:给 TTS 加合成音标记/水印、做音频来源可检测;高风险场景设滥用拦截与追踪。
  • 常见坑:把合规当纯技术问题:忽视授权与水印会在上线后触雷(深度伪造监管)。工程实现之外要先设计授权流与追踪机制。
学习路径

4.1 三条技术路线

级联式
ASR → LLM → TTS 三段拼接。工程成熟、可控、易调试;缺点是延迟叠加、情感与韵律信息在中间丢失。
端到端语音对话
语音直接进、语音直接出,模型内部处理理解与生成。延迟低、能保留副语言信息(语气、情绪);训练数据与工程难度高。
Omni 统一模型
文本 / 图像 / 音频 / 视频在同一模型中处理与生成。2026 年的方向,能处理「看画面 + 听声音 + 说话」的复合任务;算力与数据门槛最高。
路线延迟构成副语言信息典型实现
级联式ASR + LLM + TTS 三段相加(≥1s)易在中间丢失Whisper + LLM + 神经 TTS
语音 LLM音频 token + LLM + 声码器保留(语气 / 情绪)音频 tokenizer + LLM
端到端 Omni单次前向 + 流式声码原生保留GPT-4o 语音 / Gemini 原生语音
ℹ
三条路线怎么选:延迟与副语言信息权重越高的场景越靠后端到端;追求成熟可控、易调试与低工程成本则选级联。实时语音的体验门槛是端到端轮次延迟 < 1s。

4.2 动手练习与自测

  1. 三条语音技术路线各适合什么场景?给出选择判据。
  2. 实时语音交互的体验门槛时延是多少?如何拆解各环节预算?
  3. ASR / TTS / 语音对话分别用什么指标评测?
  4. 声音克隆有哪些合规红线?工程上如何落实?
  5. 端到端语音模型为什么能实现「打断(barge-in)」?
✔
参考答案 / 判据:① 级联适合成熟可控、易调试的业务;语音 LLM 适合需保留情绪的助手;端到端 Omni 适合低延迟自然对话。判据:延迟与副语言信息权重越高越靠后端到端。② 门槛是端到端 < 1s;可拆为流式 ASR 200–600ms + LLM 500–3000ms + 流式 TTS 150–400ms,用流水线并行与早启动压总延迟。③ ASR 看 WER;TTS 看 MOS 自然度与说话人相似度;对话看打断成功率与轮次延迟。④ 声纹授权、合成音频水印、可检测性,防止深度伪造滥用。⑤ 端到端模型在用户说话中途即可「听、想、回」,无需等完整语句结束,因此能自然处理打断与重叠发言。

5. 多模态数据与部署

知识结构图 · 多模态数据与部署
多模态数据与部署4 大知识域 · 19 个知识点
数据形态图文对交错图文 interleaved视频描述文档 / 图表指令数据合成数据
学习路径
  1. 读 5.1 表格:理解六类多模态数据的关键质量点
  2. 拿一个图文对/图表数据跑一遍,标出哪些需要过滤
  3. 完成 5.3 练习 3:说明交错图文为何是原生多模态核心数据
  4. 对接 M11:为 PDF 建结构化表示(段落 + 图表)准备数据形态
✔ 能对给定数据说出类型与质量点,并判断是否可用
核心知识点详解
  • 六类数据形态:图文对(噪声大需过滤)、交错图文(原生核心)、视频描述(时间对齐)、文档/图表(结构还原更有价值)、指令数据(覆盖弱项)、合成数据(控多样性)。
  • 交错图文是原生多模态核心:网页天然是图文交错长序列,能教模型「图文顺序对应、跨模态指代」——原生多模态预训练最关键的数据。
  • 文档/图表强调结构:对 PDF/报表/扫描件,段落 + 表格结构还原比纯文本更有价值(这正是 M11 PDF 结构化表示的目标)。
  • 常见坑:图文对不看相关性:网页图文对中描述与图常有错配;不过滤直接训练会让模型学到大量噪声(见 5.1 质量过滤)。
质量过滤CLIP / SigLIP 相似度文本启发式过滤网页 40%+ 低质min_score 0.25
学习路径
  1. 读 5.1 的 filter 代码:理解 CLIP 相似度 + 文本启发式过滤
  2. 跑 filter_image_text,调 min_score 看保留比例变化
  3. 完成 5.3 练习 1/2:说明低质占比与组合过滤手段
  4. 对接 M11:对图文数据做相关性过滤后再入库
✔ 能跑组合过滤并给出 min_score 选择,说明不过滤的伤害
核心知识点详解
  • 组合过滤手段:CLIP/SigLIP 相似度打分 + 文本启发式(短文本、"image"/"untitled" 占位文本剔除)+ 长度下限。这是性价比最高的组合。
  • 低质占比与伤害:真实网页图文对里常有 40%+ 低质量样本;不过滤直接训练会让模型学到大量噪声与图文错配,伤害下游。
  • min_score 的选择:filter_image_text(pairs, clip, proc, min_score=0.25, min_len=8) 用 clip.logits_per_image 打分 ≥ min_score 才保留;阈值调高→更干净但丢样本,需权衡。
  • 常见坑:阈值一刀切丢稀有样本:min_score 设太高会把难但高价值的配对丢掉。可先看保留比例曲线再定,避免「为了干净」损失长尾语义。
部署优化分辨率自适应 + 池化少步采样 + FP8/INT8 量化3D VAE 时空压缩动态批处理语义缓存级联降级
学习路径
  1. 读 5.2 表格:理解各类部署优化手段与收益
  2. 跑成本核算脚本,对某分辨率/步数配置算显存与延迟
  3. 完成 5.3 练习 4:写出视觉 token 优化的几个方向与量级
  4. 对接 M11:算清图片 token 折算 + 显存峰值(M11 交付)
✔ 能在延迟/成本约束下选架构与优化项,并核算 token 与显存
核心知识点详解
  • 降视觉 token:分辨率自适应、动态切图、池化压缩,可把成本降数倍(视觉 token 数决定大部分多模态成本)。
  • 生成加速:少步采样、蒸馏到 1–4 步、量化(FP8/INT8),把生成延迟降数倍;视频还需 3D VAE 时空压缩(显存主杠杆)。
  • 调度与缓存:动态批处理 / 优先级队列 / GPU 共享提升吞吐;图像哈希 / 语义缓存避免重复计算;级联降级(小模型草稿→满意再精修)兼顾体验与成本。
  • 常见坑:不算 token 与显存峰值就定架构:选 VLM/扩散架构前必须核算图片 token 折算 + 显存峰值(视频 49 帧可上 20GB),否则上线即 OOM 或爆账单。
合成数据风险风格坍缩多样性控制标注自动校验
学习路径
  1. 读 5.1 合成数据行:理解风格坍缩与多样性风险
  2. 用生成模型造样本并自动校验标注正确性
  3. 完成 5.3 练习 5:写合成数据的风险与缓解
  4. 对接 M11:用合成数据补充图表样本并校验
✔ 能识别风格坍缩信号并给出多样性控制与自动校验手段
核心知识点详解
  • 风格坍缩风险:合成数据模型会陷入统一风格与构图(风格坍缩),多样性不足会损害微调的泛化——需在生成条件上做多样性控制。
  • 标注自动校验:合成样本的标注(如 OCR/计数)可能本身错误,必须用自动校验(规则/另一模型交叉核对)过滤错标,否则把错误当标注。
  • 缓解组合:控制生成条件多样性 + 自动校验标注 + 与真实数据混合配比(合成占一定比例而非全替代)。
  • 常见坑:合成数据全量替代真实数据:合成数据分布与真实有偏,若全替代会导致模型在真实分布上崩。要有配比上限并持续监控真实样本表现。
学习路径

5.1 数据形态与质量

数据类型来源关键质量点
图文对网页 alt 文本、图库、商品数据文本描述与图片是否真正相关(噪声极大,需过滤)
交错图文网页、教程、说明书图文顺序对应关系,是原生多模态预训练的核心数据
视频描述字幕、解说、样例标注时间对齐;长视频需要分段描述
文档 / 图表PDF、报表、扫描件结构还原(表格、版面)比纯文本更有价值
指令数据人工标注的问答对覆盖细粒度感知、OCR、空间关系、计数等弱项
合成数据用生成模型造图文 / 视频多样性控制,避免风格坍缩;标注需自动校验
python# 图文对质量过滤:CLIP 相似度 + 文本启发式,是性价比最高的清洗组合
import torch

@torch.no_grad()
def filter_image_text(pairs, clip_model, clip_proc, min_score=0.25, min_len=8):
    kept = []
    for img, text in pairs:
        if len(text.strip()) < min_len:            # 文本太短("image1.jpg")直接丢
            continue
        if text.strip().lower() in {"图片", "照片", "image", "photo", "untitled"}:
            continue
        inputs = clip_proc(text=text, images=img, return_tensors="pt", padding=True)
        score = clip_model(**inputs).logits_per_image.item()
        if score >= min_score:                     # 图文相关性达标
            kept.append((img, text))
    return kept

# 经验:真实网页图文对里常有 40%+ 的低质量样本,不过滤直接训练会显著伤害模型

5.2 部署与成本核算

优化方向手段收益
降低视觉 token分辨率自适应、动态切图、池化压缩成本可降数倍
生成加速少步采样、蒸馏到 1–4 步、量化(FP8 / INT8)延迟降数倍
视频编码压缩3D VAE 时空压缩、关键帧 + 插帧、分块生成显存与算力的主要杠杆
批处理与调度动态批处理、优先级队列、GPU 共享吞吐提升,成本下降
缓存图像哈希 / 语义缓存,避免重复计算常见场景命中率高
级联降级先小模型快速出草稿,用户满意再精修体验与成本兼顾
★
阶段验收标准:你能独立回答:「在给定延迟与成本约束下,我的多模态系统该用哪种架构、视觉 token 怎么控、生成步数怎么定、缓存放哪里」。做到这一点,多模态方向对你就不再是黑盒。

5.3 动手练习与自测

  1. 真实网页图文对里低质量样本占比大概多少?不做过滤直接训练会怎样?
  2. 写出图文质量过滤的组合手段(至少两种信号)。
  3. 交错图文(interleaved)数据为什么是原生多模态预训练的核心?
  4. 视觉 token 成本可从哪几个方向优化?各降多少量级?
  5. 合成数据用于多模态训练有什么风险?如何缓解?
✔
参考答案 / 判据:① 常达 40%+;直接训练会让模型学到大量噪声、图文错配,伤害下游。② CLIP/SigLIP 相似度打分 + 文本启发式(长度、"image"/"untitled" 这类占位文本过滤)是性价比最高的组合。③ 因为网页天然是图文交错的长序列,能教模型「图文顺序对应」「跨模态指代」等原生多模态能力。④ 分辨率自适应 / 动态切图 / 池化压缩(成本可降数倍)、生成加速(少步 / 蒸馏 / 量化)、3D VAE 时空压缩(显存主杠杆)、缓存与批处理。⑤ 风险是风格坍缩、多样性不足;缓解:控制生成条件多样性、自动校验标注、与真实数据混合配比。

6. 对比学习与 CLIP:对齐图文空间

知识结构图 · 对比学习与 CLIP
对比学习与 CLIP4 大知识域 · 17 个知识点
InfoNCE正样本 exp(sim/τ)分母含 N−1 个负样本对称损失两方向平均温度 τ 0.01–0.1余弦相似度
学习路径
  1. 读 6.1:理解 InfoNCE 分子/分母与温度 τ
  2. 跑 InfoNCE 伪代码或双塔示例,观察对称损失
  3. 完成 6.3 练习 1:写分子分母并解释 τ 的作用
  4. 对接 M11:用 CLIP 图文对齐做以文搜图/以图搜图
✔ 能写出 InfoNCE 并调 τ 观察分布锐度变化
核心知识点详解
  • InfoNCE 分子分母:分子 exp(sim(I_i,T_i)/τ)(正样本相似度温度缩放);分母 Σ_j exp(sim(I_i,T_j)/τ)(含 1 正 + N−1 负,即 batch 内其他图)。损失 −log(分子/分母)。
  • 对称损失:图像→文本 与 文本→图像 两方向各算一次取平均,保证图文双向对齐。
  • 温度 τ 控制锐度:τ 典型 0.01~0.1;越小 logits 越极端、对比任务越难、学到越 sharp 的表征。sim 用余弦相似度。
  • 常见坑:τ 设过大或过小:τ 太大任务太简单、表征学不好;太小易过拟合负样本噪声。先把 logits 稳定后扫 τ 观察分布锐度再定。
大 batch 玄机batch 内负样本32k–64k 多卡累积400M→数 B 图文对免维护负样本库
学习路径
  1. 读 6.1:理解为何需大批次、如何用多卡累积
  2. 跑小批量伪代码,理解负样本随 batch 增加
  3. 完成 6.3 练习 2:说明为何依赖极大 batch、如何白嫖负样本
  4. 对接 M11:设计图文检索的 embedding 入库与批量构建
✔ 能解读信息量-批大小权衡,并解释免负样本库的机制
核心知识点详解
  • 负样本来自 batch 内:InfoNCE 的分母用 batch 内的其他图/文做负样本,免维护负样本库——这是 CLIP 能大规模训练的关键。
  • 为什么依赖极大 batch:batch 越大分母负样本越多、对比任务越难、表征越好。CLIP 用 32k–64k 多卡梯度累积,训练约 30 亿样本(~590k step @ 32k)。
  • 规模与数据的关系:训练图文对从 400M(CLIP)增到数 B,零样本越强;数据量是零样本泛化的决定因素。
  • 常见坑:batch 小却期望好表征:个人卡 batch 只有几百时,负样本太少对比难不够。要么用内存队列补负样本,要么选 SigLIP(对 batch 不敏感)。
零样本分类类别 prompt 模板文本编码归一化余弦 × 温度 argmaxprompt 集成提鲁棒
学习路径
  1. 读 6.2:理解类别 prompt → 文本编码 → 相似度 → argmax 流程
  2. 跑 clip_zero_shot 代码,换 prompt 模板观察结果变化
  3. 完成 6.3 练习 4/5:写零样本分类流程、说明 prompt 集成
  4. 对接 M11:用零样本分类做图文匹配打分
✔ 能写零样本分类并解释 prompt 集成对鲁棒性的提升
核心知识点详解
  • 零样本分类流程:类别名写 prompt("a photo of a {class}")→ 文本编码归一化 → 与图像特征算余弦 × 温度 → argmax 取最相似类。全程不需要下游训练数据。
  • 文本编码归一化:txt_feat = F.normalize(text_enc(texts)),与 img_feat 归一化后 logits = img @ txt.T * 100(温度放大)。
  • prompt 集成提鲁棒:用多模板("a photo of a {c}"、"{c} 的图片"…)各算一次再平均,减少单一措辞偏差,提升零样本分类稳定性。
  • 常见坑:类别名直出不改写:类别词短(如"apple")直接当文本喂效果差;写成完整 prompt 模板能显著提升,这是零样本分类第一步优化。
SigLIP 改进sigmoid 逐对二分类对 batch size 不敏感长尾 / 难负更鲁棒SigLIP-2 成视觉塔主流
学习路径
  1. 读 6.2:对比 CLIP softmax 与 SigLIP sigmoid 的损失差异
  2. 跑 SigLIP 逐对打分示例,看对小 batch 的稳定性
  3. 完成 6.3 练习 3:写 SigLIP 改进与为何对 batch 不敏感
  4. 对接 M11:pick SigLIP 作视觉塔的考量
✔ 能说清 softmax vs sigmoid 的差别及 SigLIP 的取舍
核心知识点详解
  • CLIP softmax vs SigLIP sigmoid:CLIP 用 batch 内归一化交叉熵(分母随 batch 构成变化);SigLIP 对每对 (image,text) 独立做二分类(匹配/不匹配),正负解耦。
  • 对 batch size 不敏感:因为不做 batch 内归一化,SigLIP 小 batch 也能训好、稳定——而不像 CLIP 小 batch 易训偏。
  • 长尾/难负更鲁棒:SigLIP 的独立打分可对难负样本重点加权,不易被 batch 平均掉;SigLIP-2 因此成 2026 多数 VLM 视觉塔首选。
  • 常见坑:在小 batch 硬套 CLIP:只给 CLIP 几百的 batch 训练,负样本量小导致表征差;此时应换 SigLIP(无 batch 依赖)而非硬加 batch。
学习路径

6.1 InfoNCE:把「匹配」变成分类

CLIP 用对比学习把图像与文本编码到同一向量空间:正样本对(同一图的 caption)靠近,负样本对远离。其核心损失是 InfoNCE:把「从一堆里挑出正确配对」建模为 N 分类。

text# InfoNCE(NT-Xent 变体)
# 一个 batch 有 N 个图文对;对第 i 对:
#   分子: exp( sim(I_i, T_i) / τ )          # 正样本相似度(温度缩放)
#   分母: Σ_j exp( sim(I_i, T_j) / τ )       # 含 1 个正 + (N-1) 个负(其他图)
#   L_i = -log( 分子 / 分母 )
# 对称:图像->文本 与 文本->图像 两方向各算一次取平均
# sim = 余弦相似度;τ(温度) 典型 0.01~0.1,控制分布锐度
组件作用常见取值
温度 τ缩放 logits、控制难度0.01–0.1
batch 内负样本替代海量负样本库batch 越大越好(常 8k–32k, 多卡累积)
对称损失图文双向对齐两方向平均
双塔编码器图/文各自塔,最后投影同维ViT-B/32 + Transformer
规模要素CLIP 量级(示意)影响
训练图文对400M(CLIP)→ 数 B(后续)数据越多零样本越强
batch size32k–64k(多卡累积)负样本多、对比难
训练步数~30 亿样本(~590k step @ 32k)需大算力/长时间
视觉塔ViT-B/32 → ViT-L/14分辨率与参数影响细粒度
✔
batch 大的玄机:负样本越多,对比任务越难、学到的表征越好。CLIP 用极大 batch(数千到数万,靠多卡梯度累积近似)来「白嫖」海量负样本,而不用维护负样本库。这是它为何需要大算力但效果普适。

6.2 CLIP 零样本分类怎么算

CLIP 最强的能力是零样本分类:把类别名写成 prompt("a photo of a {class}"),编码所有类别文本,再与图像编码算余弦相似度,取最高者。整个过程不需要任何下游训练数据。

python# CLIP 零样本分类(伪代码)
import torch.nn.functional as F

def clip_zero_shot(image, classes, image_enc, text_enc, prompts="{c}"):
    img_feat = F.normalize(image_enc(image), dim=-1)            # (1, D)
    texts = [prompts.format(c=c) for c in classes]
    txt_feat = F.normalize(text_enc(texts), dim=-1)             # (C, D)
    logits = img_feat @ txt_feat.T * 100.0                      # 相似度(温度放大)
    return classes[logits.argmax()]                             # 取最相似类

# 进阶:prompt 集成("a photo of a {c}", "a drawing of a {c}"...) 提升鲁棒性

SigLIP 的改进:把 CLIP 的 softmax(归一化)换成sigmoid 损失,对每个 (image, text) 对独立做二分类(是否匹配),不再依赖 batch 内归一化。好处是不依赖超大 batch,小 batch 也能训好,且对长尾/难负样本更鲁棒——这正是 2025–2026 年许多 VLM 视觉编码器的首选(SigLIP-2 等)。

维度CLIP(softmax)SigLIP(sigmoid)
损失batch 内归一化交叉熵逐对二分类(匹配/不匹配)
负样本来源仅 batch 内batch 内 + 构造/难负
对 batch 大小敏感度高(分母变)低(独立打分)
小 batch 表现易训偏稳定
长尾/难负样本易被平均掉可被重点加权
2026 采用度基线仍常用新视觉塔主流(SigLIP-2)
ℹ
SigLIP sigmoid 损失直觉:CLIP 的分母随 batch 变化,负样本质量受 batch 构成影响;SigLIP 的 sigmoid 对每个 pair 独立打分(匹配=1,不匹配=0),正负样本解耦,训练更稳定、对 batch size 不敏感。所以现在实践多用 SigLIP 作视觉塔。

6.3 动手练习与自测

  1. 写出 InfoNCE 的分子与分母,并解释温度 τ 的作用与典型取值。
  2. CLIP 为什么依赖极大 batch?不维护负样本库是怎么做到的?
  3. SigLIP 相对 CLIP 的 sigmoid 损失改进在哪里?为什么它对 batch size 不敏感?
  4. 写出 CLIP 零样本分类流程(类别 prompt → 文本编码 → 相似度 → argmax)。
  5. prompt 集成(多模板平均)为什么能提升零样本鲁棒性?
✔
参考答案 / 判据:① 分子 = exp(sim(I_i,T_i)/τ),分母 = Σ_j exp(sim(I_i,T_j)/τ)(含 1 正 N−1 负);τ 控制分布锐度,越小学生越难,典型 0.01–0.1。② 负样本越多对比越难、表征越好,CLIP 用数千到数万的多卡累积 batch「白嫖」batch 内负样本,因此不用负样本库。③ CLIP 分母随 batch 构成变化,SigLIP 对每对独立做二分类(匹配 / 不匹配),正负解耦,故对 batch size 不敏感、对长尾 / 难负更鲁棒。④ 把类别名写成 "a photo of a {c}" → 文本塔编码归一化 → 与图像特征算余弦 × 温度 → argmax。⑤ 不同模板覆盖不同表述分布,平均后可减小单一模板措辞带来的偏差,提升鲁棒性。

7. ViT:把图像当 token 序列

知识结构图 · ViT
ViT4 大知识域 · 16 个知识点
ViT 核心组件patch embedding 14×14class token [CLS]位置编码弱归纳偏置224/14 = 256 token
学习路径
  1. 读 7.1:理解 patch/CLS/位置编码与弱归纳偏置
  2. 跑 PatchEmbed 极简版,算 224/14=256 token
  3. 完成 7.3 练习 1/5:写组件作用、算 token 数
  4. 对接 M11:在视觉编码里用 ViT 输出 patch 序列
✔ 能说清每个组件的角色并算出 token 数,指出弱归纳偏置代价
核心知识点详解
  • patch embedding 把图变 token:把图切 P×P patch,每 patch 拉平过线性投影成一个 token。224×224、patch=14 → (224/14)²=256 个 token。
  • [CLS] 聚合全局:额外一个可学 [CLS] token 与 patch token 一起过 Transformer,用其输出做分类(CNN 则用全局池化)。
  • 位置编码补回 2D 结构:patch 打散后需加可学位置编码补回空间信息;CNN 靠卷积平移不变性隐含位置——这就是「弱归纳偏置」的由来。
  • 常见坑:低估数据依赖:弱归纳偏置使 ViT 在小数据(ImageNet-1k)打不过 ResNet,需 JFT-300M 级数据才反超——小数据任务先想清楚数据量够不够。
数据规模代价JFT-300M 反超 ResNetViT-B/16 84.2%DeiT 蒸馏小数据ResNet-50 76.1%
学习路径
  1. 读 7.1 表格:理解 ViT 大数据反超现象
  2. 对照表内分数,理解数据规模对 ViT 的影响
  3. 完成 7.3 练习 2:解释为何小数据打不过、大数据反超
  4. 对接 M11:评估你的任务数据量是否够 ViT 类编码器
✔ 能解释弱归纳偏置下的数据依赖,并判断数据是否够
核心知识点详解
  • 大数据反超 CNN:ViT-B/16 用 JFT-300M 达 84.2%(反超 ResNet-50);DeiT 用 ImageNet-1k(1.2M)+ 蒸馏也能到 79.8%,说明数据量决定了谁赢。
  • 弱归纳偏置需要更多数据:ViT 缺少局部性/权重共享偏置,小数据学不好中间层;数据补足偏置缺失后规模优势才显现并反超强偏置 CNN。
  • 判断数据是否够:目标任务数据量 < 百万级时优先考虑 CNN 或 DeiT 蒸馏;数据海量(千万级)则 ViT/VLM 系编码器收益更大。
  • 常见坑:小数据硬上 ViT-B/L:只有几万张图却用大 ViT,没数据支撑只会欠拟合。先评估数据量,必要时预训练权重 + 蒸馏。
高效变体Swin 窗口注意力O(N²)→O(N)移位窗口通信层次化特征
学习路径
  1. 读 7.2:理解 Swin 窗口注意力与复杂度下降
  2. 跑全局 vs 窗口注意力的复杂度对比(或做表)
  3. 完成 7.3 练习 3:解释 O(N²)→O(N) 的原理
  4. 对接 M11:在高分辨率场景考虑窗口注意力省算力
✔ 能写出窗口注意力的复杂度收益并解释移位通信
核心知识点详解
  • 窗口注意力的复杂度:标准 ViT 全局注意力 O(N²)(N=patch 数);Swin 只在局部窗口内自注意力 → 复杂度近 O(N),高分辨率下省约 80×。
  • 移位窗口实现跨窗通信:纯窗口注意力信息只在窗内流动;Swin 用移位窗口(下一层窗口错位)+ 掩码,让不同窗的 token 互相通信,保留全局依赖。
  • 层次化特征:Swin 逐层合并 patch 得到多尺度/层次化特征,适合检测、分割等任务。
  • 常见坑:窗口太小丢长程依赖:窗口过小、又没有移位/跨窗机制时,远处的空间关系无法建模——高分辨率里要平衡窗口大小与通信。
2026 视觉塔SigLIP-2 / InternViT 2B–6B轻量 projector 到 LLMtoken 成本核心
学习路径
  1. 读 7.2 尾段:理解 2B–6B 超大视觉塔趋势
  2. 跑一个视觉塔 embedding 示例,看 token 数与 projector
  3. 完成 7.3 练习 4:写视觉塔越大的成本代价
  4. 对接 M11:在 vlm.py 里选视觉塔并记录 token 成本
✔ 能说出主流视觉塔并量化其 token 成本代价
核心知识点详解
  • 主流视觉塔:SigLIP / SigLIP-2、InternViT 等超大 ViT(2B–6B 参数)作 VLM 编码器,再接轻量 projector 到 LLM。
  • 视觉塔越大,token 越贵:视觉塔越大细粒度/OCR 越强,但视觉 token 数成为成本核心(随分辨率平方涨)——大塔的收益要用 token 成本去权衡。
  • 选塔看任务:文档/细粒度优先大塔(SigLIP-2/InternViT);简单识别用中小塔省 token。
  • 常见坑:无脑上超大视觉塔:2B–6B 塔带来的精度提升可能撑不起 token 与显存翻倍的代价。先测 target 数据集的细粒度基准再决定塔大小。
学习路径

7.1 patch embedding、class token 与位置编码

ViT 的核心思想:把图像切成 P×P 的 patch,每个 patch 拉平后过线性层变成一个 token,再像文本一样喂进 Transformer。于是「图像理解」被统一成「token 序列理解」。

组件做法与 CNN 的区别
patch embedding14×14 切图,每 patch 线性投影CNN 用滑动卷积,局部感受野逐步扩大
class token ([CLS])额外一个可学 token,聚合全局CNN 靠全局池化
position embedding给每个 patch 加可学位置向量CNN 靠卷积的平移不变性隐含位置
归纳偏置弱(几乎无局部性假设)强(局部性、权重共享)
python# ViT 前向的极简版(patch -> token -> Transformer)
import torch, torch.nn as nn

class PatchEmbed(nn.Module):
    def __init__(self, img=224, patch=14, d=768):
        super().__init__()
        self.n = (img // patch) ** 2          # 224/14 = 16 -> 256 个 token
        self.proj = nn.Conv2d(3, d, patch, stride=patch)   # 卷积即「无重叠切图+投影」
    def forward(self, x):
        return self.proj(x).flatten(2).transpose(1, 2)      # (B, n_tokens, d)

# 拼接 [CLS] + 256 个 patch token,加位置编码,过 Transformer
# 输出取 [CLS] 做分类,或取全部 token 给 VLM 用
模型/设置训练数据Top-1(示意)说明
ViT-B/16JFT-300M84.2%大数据下反超 ResNet
ViT-L/16JFT-300M87.1%规模越大收益越明显
DeiT-SImageNet-1k(1.2M)79.8%小数据+蒸馏可训
ResNet-50ImageNet-1k76.1%强归纳偏置但天花板低
★
ViT vs CNN 的代价:弱归纳偏置意味着ViT 需要更多数据(常需 JFT-300M 级)才能打败 CNN;但一旦数据够,它在大规模上反超 CNN,且更易迁移到 VLM。这也是今天主流 VLM 视觉塔几乎都是 ViT/SigLIP 而非 CNN。

7.2 变体与高效化:Swin 的窗口注意力

标准 ViT 是全局注意力,复杂度 O(N²)(N=patch 数),高分辨率下爆炸。Swin Transformer 引入窗口注意力(只在局部窗口内做自注意力,再跨窗口移位通信),把复杂度降到近线性,且天然支持层次化特征(适合检测/分割)。

变体注意力范围复杂度特点
ViT (global)全图O(N²)表征强、吃数据
Swin局部窗口 + 移位O(N)层次化、省算力
DeiTViT + 蒸馏 tokenO(N²)小数据也能训
MViT / ViT-H多尺度O(N²)~视频/多分辨率

2026 年的 VLM 视觉塔趋势:SigLIP-2 / InternViT 等超大 ViT(2B–6B 参数)作编码器,再接轻量 projector 到 LLM。视觉塔越大,细粒度感知与 OCR 越强,但视觉 token 数随之成为成本核心(见 1.1)。

7.3 动手练习与自测

  1. ViT 的 patch embedding、[CLS] token、位置编码各起什么作用?
  2. 为什么 ViT 在 ImageNet-1k 上打不过 ResNet,却在 JFT-300M 上反超?
  3. Swin 的窗口注意力把复杂度从 O(N²) 降到近似多少?为什么可行?
  4. 2026 年 VLM 视觉塔的主流选择是什么?视觉塔越大带来什么代价?
  5. 224×224、patch=14 时序列有多少 token?
✔
参考答案 / 判据:① patch embedding 把图切成 patch 并线性投影成 token;[CLS] 聚合全局信息供分类;位置编码补回被打散的 2D 结构信息。② ViT 归纳偏置弱,小数据学不好;大数据下数据补足了偏置缺失,规模优势显现并超过强偏置的 CNN。③ 到近乎 O(N)(局部窗口内自注意力 + 移位通信),因为注意力只在窗口内做,避免全局两两计算。④ 主流是 SigLIP-2 / InternViT 等超大 ViT(2B–6B);代价是视觉 token 数成为成本核心(分辨率平方增长)。⑤ (224/14)²=256。

8. VLM 架构深入:连接器、分辨率与训练阶段

知识结构图 · VLM 架构深入
VLM 架构深入4 大知识域 · 17 个知识点
连接器方案线性投影MLPQ-Former bottleneckPerceiver Resampler保真 vs 省 token
学习路径
  1. 读 8.1 表格:对比四种连接器的保真与省 token
  2. 跑 project 前向,感受 视觉特征 → LLM 的维度对齐
  3. 完成 8.5 练习 1:按需求选连接器类型
  4. 对接 M11:在 vlm.py 里选连接器并记录取舍
✔ 能给场景选连接器,并解释保真 vs 省 token 的权衡
核心知识点详解
  • 四种连接器:线性投影(最简最快、信息压缩强)、MLP(2 层稍强仍轻量)、Q-Former(query 对视觉做 bottleneck 抽取)、Perceiver Resampler(cross-attn 重采样到固定 token 数)。
  • 保真 vs 省 token:追求保真/细粒度(文档、图表、OCR)→ MLP 或轻 Q-Former;追求省 token/固定长度(视频、多图)→ Perceiver Resampler。
  • 主流开源用 MLP 或直接投影:LLaVA-OneVision、Qwen-VL、InternVL 多用 MLP 或直接投影 + 动态分辨率,兼顾实现与质量。
  • 常见坑:固定低分辨率丢细节:连接器再强也补不回被判掉的分辨率。无论选哪种连接器,都要配合动态分辨率/切图(见 8.2)才能保细节。
分辨率处理动态分辨率 + 切图 tiling336² → 1 tile / 256 token1008² → 9 tile / 2304 tokenmax_tiles 上限
学习路径
  1. 读 8.2:理解动态切图的 token 平方增长
  2. 跑 dynamic_tiles 代码,调 base/max_tiles 看 token 变化
  3. 完成 8.5 练习 2:说明切图解决什么、代价是什么
  4. 对接 M11:按分辨率预算切图并设 max_tiles(M11 交付)
✔ 能算不同切图网格的 token 数并给出 max_tiles 约束
核心知识点详解
  • 动态切图的 token 计算:每 tile 按 base(如 336)编码且约 256 token:1×1→256、2×2→1,024、3×3→2,304、4×4→4,096。随 tile 数平方级增长。
  • 切图解决丢细节:固定低分辨率会丢小字/图表;dynamic_tiles 按宽高比切多个子图分别编码,兼顾「看清全局」与「看清局部」。
  • max_tiles 是硬约束:dynamic_tiles(img, base=336, max_tiles=12) 超出即丢弃/下采样。否则高分图会切出几十个 tile,token 与成本失控。
  • 常见坑:一律全程高分辨率:只在需要看细节的子图(图表/小字)上高分辨率,普通场景整图低分辨率即可;无脑全高清会让 token 涨 9×。
代表模型LLaVA MLPQwen3-VL 动态分辨率InternVL 超大视觉塔Gemini 3 原生多模态
学习路径
  1. 读 8.3 表格:对比主流 VLM 的视觉塔与亮点
  2. 跑一个开源 VLM 示例,理解其连接器与分辨率
  3. 完成 8.5 练习 5:说明 Gemini 3 原生多模态 vs 拼接的区别
  4. 对接 M11:选一个开源 VLM 作文档问答基座
✔ 能横向对比代表模型并选型一个基座
核心知识点详解
  • 代表模型差异:LLaVA(CLIP/SigLIP + MLP,开源基线)、Qwen-VL/Qwen3-VL(动态分辨率,强 OCR/文档)、InternVL(超大 InternViT)、Gemini 3(原生多模态统一骨干)。
  • Gemini 3 原生 vs 拼接:Gemini 3 在预训练期就让图像/音频/视频与文本共享同一 Transformer 骨干,跨模态注意力在底层发生;拼接式是 ViT 编码后经适配器接入冻结 LLM、交互浅。
  • 选型看任务与资源:文档问答 → Qwen3-VL/InternVL(强 OCR);统一多模态 → Gemini 3/Qwen3-VL;自部署基线 → LLaVA 系。
  • 常见坑:只看一句话宣传:选基座要实测你的数据分布(OCR/图表/空间),并核算视觉 token 成本;别只凭「强 OCR」/「原生」的标签决策。
训练三阶段对齐预训练冻视觉塔多任务预训练部分解冻指令微调全参 / LoRA看得见≠会用
学习路径
  1. 读 8.4 表格:掌握三阶段各自的冻结与对齐目标
  2. 复盘 lora 微调流程,理解指令微调阶段
  3. 完成 8.5 练习 3/4:写三阶段、说明只看对接会「看得见不会用」
  4. 对接 M11:规划你的 VLM 微调阶段与数据
✔ 能说清三阶段各自对齐什么,并解释为何只做一阶段不够
核心知识点详解
  • 三阶段的冻结与对齐:① 对齐预训练:海量图文对,冻结视觉塔,让视觉 token 与 LLM 词空间对齐;② 多任务预训练:图文/视频/OCR/检测混合、部分解冻,学多任务视觉能力;③ 指令微调:指令-回答对,全参或 LoRA。
  • 「看得见≠会用」:只做第一阶段只能让视觉特征被 LLM 读懂,未教会它用视觉信息做多任务。跳过二/三阶段会出现「看得见但不会用」。
  • 每个阶段解决一个目标:一阶段「能读懂」、二阶段「多种任务会用」、三阶段「按指令精准输出」。缺任一段对应能力就有明显短板。
  • 常见坑:只做指令微调:跳过对齐预训练,视觉特征未与词空间对齐,指令微调也救不回来。三阶段要按顺序走,别跳步。
学习路径

8.1 连接器方案对比

VLM 三段式 = 视觉编码器 + 连接器 + LLM。连接器负责把视觉特征「翻译」成 LLM 能懂的 token,方案差异直接决定信息保真度与参数量。

连接器做法优点缺点
线性投影单层 Linear(d_vis → d_llm)最简、最快信息压缩强、细节易丢
MLP2 层 MLP + 激活稍强、仍轻量中等
Q-Former可学 query 对视觉做 bottleneck 抽取压缩可控、跨模态对齐好多一坨参数、训练复杂
Perceiver Resamplercross-attn 重采样到固定 token 数输出长度固定、省 token可能丢细节
✔
怎么选连接器:追求保真度与细粒度(文档、图表、OCR)优先 MLP 或轻 Q-Former;追求省 token 与固定长度(视频、多图)优先 Perceiver Resampler / 重采样。2026 年主流开源(LLaVA-OneVision、Qwen-VL、InternVL)多用 MLP 或直接投影 + 动态分辨率。

8.2 分辨率处理:切图与动态分辨率

固定低分辨率会丢细节。主流做法是动态分辨率 + 切图(tiling):原图按宽高比切成多个子图(tile),每个 tile 编码成若干视觉 token,再拼回序列;超分辨率信息作为单独 tile。这样兼顾「看清全局」与「看清局部」。

python# 动态切图:按原图比例切若干 tile,每块独立编码
def dynamic_tiles(img, base=336, max_tiles=12):
    w, h = img.size
    scale = base / min(w, h)
    tw, th = int(w * scale), int(h * scale)
    cols, rows = max(1, round(tw / base)), max(1, round(th / base))
    tiles = []
    for r in range(rows):
        for c in range(cols):
            tile = img.crop((c*base, r*base, (c+1)*base, (r+1)*base))
            tiles.append(tile)
    return tiles[:max_tiles]            # 超出的丢弃或下采样

# token 数 = Σ tile 的 patch 数;动态分辨率下可能从 256 涨到 1024+
原图切图网格tile 数视觉 token(每 tile 256)
336×3361×11256
672×6722×241,024
1008×10083×392,304
1344×13444×4164,096
⚠
切图的代价:tile 越多 token 越多(平方级),成本与延迟随之上升。务必设 max_tiles 上限,并只在「需要看细节」的子图(如图表、小字)上用高分辨率,普通场景用整图低分辨率即可。

8.3 代表模型差异

模型视觉塔连接器亮点
LLaVA / LLaVA-OVCLIP/SigLIPMLP开源基线、生态成熟
Qwen-VL / Qwen3-VLViT + 动态分辨率MLP + 切图强 OCR/文档、原生多模态
InternVLInternViT(超大)MLP视觉塔大、细粒度强
Gemini原生多模态(统一骨干)—图像/视频/音频统一建模
ℹ
2026 前沿:Gemini 3 原生多模态:与「ViT + LLM 拼接」不同,Gemini 3 在预训练期就让图像/音频/视频与文本共享同一 Transformer 骨干,跨模态注意力在底层就发生。这带来更强的视觉推理与「看+听+说」统一能力,但算力与数据门槛极高。Qwen3-VL 等也在朝原生多模态靠拢。

8.4 训练三阶段:各自对齐什么

阶段数据对齐目标冻结什么
对齐预训练海量图文对让视觉 token 与 LLM 词空间对齐通常冻视觉塔
多任务预训练图文/视频/OCR/检测混合学会多任务视觉能力部分解冻
指令微调人工指令-回答对学会按指令做细粒度任务全参数 / LoRA

关键洞察:第一阶段只解决「视觉特征能被 LLM 读懂」,第二阶段解决「模型真的会用视觉信息做多种任务」,第三阶段解决「按用户指令精准输出」。跳过任一阶段都会在对应能力上出现明显短板(如只做一阶段会「看得见但不会用」)。

8.5 动手练习与自测

  1. 四种连接器(线性 / MLP / Q-Former / Perceiver)各适合什么需求?
  2. 动态分辨率 + 切图解决了什么问题?代价是什么?
  3. 列出 VLM 训练的三阶段,以及各阶段冻结什么、对齐什么。
  4. 为什么只做第一阶段会出现「看得见但不会用」?
  5. Gemini 3 的原生多模态与「ViT + LLM 拼接」的本质区别是什么?
✔
参考答案 / 判据:① 追求保真 / 细粒度(文档 / OCR)用 MLP 或轻 Q-Former;追求省 token / 固定长度(视频 / 多图)用 Perceiver Resampler。② 解决固定低分辨率丢细节的问题,靠 tile 兼顾全局与局部;代价是 tile 越多 token 越多(平方级),需设 max_tiles。③ ① 对齐预训练(海量图文对,冻视觉塔,对齐视-词空间);② 多任务预训练(图文 / 视频 / OCR / 检测,部分解冻);③ 指令微调(指令-回答对,全参或 LoRA)。④ 第一阶段只让视觉特征「能被读懂」,未教会模型用视觉信息做多种任务,故看得见却不会用。⑤ Gemini 3 在预训练期就让图像 / 音频 / 视频与文本共享同一骨干,跨模态注意力在底层发生;拼接式是视觉塔编码后经适配器接入冻结 LLM,交互更浅。

9. 视频理解:帧、时序与 token 爆炸

知识结构图 · 视频理解
视频理解4 大知识域 · 15 个知识点
帧采样均匀采样 K 帧关键帧密集采样常取 8–32 帧时序位置编码 Temporal PE
学习路径
  1. 读 9.1:理解三种帧采样策略与时序位置编码
  2. 跑 video_tokens 估算,对比采样前后 token 数
  3. 完成 9.3 练习 1/2/3:算帧数、写策略取舍、说明 Temporal PE
  4. 对接 M11:为视频问答选定采样帧数
✔ 能算任意帧率/帧数下的 token 数,并解释 Temporal PE 作用
核心知识点详解
  • 三种帧采样策略:均匀采样(等间隔 K 帧,覆盖全片但可能漏关键时刻)、关键帧(镜头切换/动作检测,抓重点省 token)、密集采样(高帧率,细但 token 爆炸)。常取 8–32 帧。
  • 时序位置编码 Temporal PE:帧间顺序靠 Temporal PE 注入(帧级 embedding 或 3D 位置=帧内 2D + 帧间 1D),让注意力区分「先发生/后发生」动作,对因果/排序问题关键。
  • token 计算:30s@8fps=240 帧;每帧 256 token → 采样 16 帧 = 16×256=4096;若不采样则 240×256=61440(撑爆上下文)。
  • 常见坑:采样漏掉关键时刻:均匀采样可能在两个语义点之间取帧漏掉关键动作;对事件型视频用关键帧采样更省更准。
token 爆炸帧数 × 每帧 token30s@8fps = 240 帧采样 16 帧 = 4096全帧 61440 撑爆上下文
学习路径
  1. 读 9.2:理解 token = 帧数 × 每帧 token 的爆炸问题
  2. 跑 video_tokens 代码,对比采样 vs 全帧
  3. 完成 9.3 练习 1:算 240 帧全额与采样 16 帧
  4. 对接 M11:估视频类请求的 token 预算
✔ 能量化全帧 vs 采样的 token 差并解释为何会撑爆上下文
核心知识点详解
  • token = 帧数 × 每帧 token:30s@8fps=240 帧;采样 16 帧 = 16×256=4096 token;不采样全帧 = 61440 token——直接撑爆上下文。
  • 全帧 vs 采样差 15 倍:240 帧全编码约 61440 token,采样到 16 只剩 4096,差距超过一个数量级,是视频类请求的第一成本杠杆。
  • 为什么全帧不可行:1 分钟视频全帧对应数万 token,比一张图贵 100 倍以上;超出上下文长度还会被迫截断丢信息。
  • 常见坑:拿全帧堵高精度:以为全帧更准却实际超上下文被截断,反而更差。应先采样 + 分层(先粗看再精看 relevant 段)。
压缩手段3D VAE 时间维 /4Perceiver 固定 token分层先摘要再精看窗口注意力省约 80×
学习路径
  1. 读 9.2:理解四种压缩手段(降帧/固定 token/3D VAE/分层)
  2. 跑 video_tokens(3D VAE) 代码,算压缩后的 token 预算
  3. 完成 9.3 练习 4/5:写压缩手段、说明为何窗口注意力省 80 倍
  4. 对接 M11:在视频管线里选压缩策略
✔ 能跑压缩估算并解释窗口注意力的显存收益
核心知识点详解
  • 四种压缩手段:降帧率(关键帧优先)、每帧 Perceiver 压到固定 token、3D VAE 时间维压缩、分层(先摘要再精看 relevant 段)。
  • 3D VAE 压缩公式:video_tokens(F,H,W) = lf·(lh//patch)·(lw//patch)(时间 /td、空间 /sd)。49帧480×832 压后 20280 token、121帧720×1280 压后 111600。
  • 窗口注意力省约 80×:49 帧 20280 token 全时空注意力 fp16 下 K V + 注意力矩阵约 20 GB;改为只看前后 12 帧的窗口注意力只需约 0.26 GB——相差近 80 倍。
  • 常见坑:忽略注意力矩阵显存:只算 token 数不算注意力矩阵大小时,长序列会莫名 OOM。长视频必须用“空间全注意力 + 时间窗口注意力 + 关键帧全局记忆”三段式。
成本判据1 分钟视频贵 100×先决策看不看 / 看多少帧
学习路径
  1. 读 9.3 练习 5 答案:理解「看不看/看多少」优先于选模型
  2. 跑 token 预算脚本,量化 1 分钟视频成本
  3. 完成 9.3 练习 5:说明为何帧决策比模型更重要
  4. 对接 M11:在路由里决定是否看视频、看多少帧
✔ 能量化视频成本并给出「看不看/看多少」的决策流程
核心知识点详解
  • 1 分钟视频贵 100×:1 分钟视频全帧可能对应数万 token,比一张图贵 100 倍以上——视频类请求的成本天花板极高。
  • 先决策看多少优于选模型:「要不要看视频、看多少帧、看哪几段」对成本的影响远大于选哪个模型;这又回到路由与预算控制。
  • 决策流程:路由先判断「是否真的需要看视频」→ 用关键帧/低采样粗看 → 分层只对 relevant 段精看。避免照单全收。
  • 常见坑:预览片段也要全帧编码:即使只取 10 秒预览,若全帧编码仍会上万 token。按内容类型分别设定帧数上限,别统一拉满。
学习路径

9.1 帧采样与时序位置编码

视频 = 帧序列。直接对每帧做 ViT 会 token 爆炸(1 分钟 30fps = 1800 帧)。做法是帧采样:均匀/关键帧抽样到 K 帧(常 8–32 帧),每帧取若干 token,再在时序维做位置编码让模型知道先后顺序。

策略做法取舍
均匀采样等间隔取 K 帧简单、覆盖全片但可能漏关键时刻
关键帧镜头切换/动作检测取帧抓重点、省 token
密集采样高帧率细但 token 爆炸
ℹ
时序位置编码:帧与帧之间的顺序靠时序位置编码(Temporal PE)注入:可以是可学的帧级 embedding,也可以是 3D 位置(帧内 2D + 帧间 1D)。它让注意力能区分「先发生的动作」与「后发生的动作」,对因果/排序问题至关重要。

9.2 长视频的 token 爆炸与压缩

长视频的瓶颈是token 数 = 帧数 × 每帧 token。压缩手段:① 降低帧率(关键帧优先);② 每帧用 Perceiver/重采样压到固定 token;③ 用 3D VAE 在时间维压缩(视频生成同款思路);④ 分层——先粗看全片摘要,再对 relevant 片段精看。

python# 视频 token 预算估算
def video_tokens(n_frames, tokens_per_frame, sampler="uniform", k=16):
    picked = min(k, n_frames) if sampler == "uniform" else n_frames
    return picked * tokens_per_frame      # 例如 16 帧 * 256 = 4096 token

# 30s@8fps=240 帧 -> 若只取 16 帧、每帧 256 token = 4096
# 若不采样 240*256 = 61440 token —— 直接撑爆上下文
⚠
成本直觉:一段 1 分钟视频若全帧编码可能对应数万 token,比一张图贵 100 倍以上。生产里先决定「要不要看视频、看多少帧、看哪几段」比选模型更重要——这又回到路由与预算控制的老话题。
python# 用 3D VAE 压缩后的真实 token 预算(空间 /8, 时间 /4, patch 2)
def video_tokens(F, H, W, sd=8, td=4, patch=2):
    lf = 1 + (F - 1)//td          # 潜空间帧数(首帧不压缩)
    lh, lw = H//sd, W//sd
    return lf * (lh//patch) * (lw//patch)

for F, H, W in [(16, 480, 832), (49, 480, 832), (121, 720, 1280)]:
    print(F, '帧', H, 'x', W, '->', video_tokens(F, H, W), 'tokens')

# 预期输出:
# 16 帧 480 x 832 -> 6240 tokens
# 49 帧 480 x 832 -> 20280 tokens
# 121 帧 720 x 1280 -> 111600 tokens
ℹ
为什么必须做窗口注意力:把 49 帧 480×832 的 20280 个 token 送进全时空注意力,K V 与注意力分数矩阵在 fp16 下就要约 20 GB(24 头、head dim 128);若改成每 token 只看前后 12 帧的窗口注意力,同样设置只要约 0.26 GB——相差近 80 倍。这正是 2026 视频模型普遍采用「空间全注意力 + 时间窗口注意力 + 关键帧全局记忆」三段式的原因。

9.3 动手练习与自测

  1. 30 秒 8fps 视频共多少帧?若全帧每帧 256 token 是多少?均匀采样到 16 帧后是多少?
  2. 帧采样的三种策略各有什么取舍?
  3. 时序位置编码(Temporal PE)解决什么问题?
  4. 长视频 token 爆炸的四种压缩手段是什么?
  5. 为什么「要不要看视频、看多少帧」比选模型更重要?
✔
参考答案 / 判据:① 30×8=240 帧;240×256=61440 token(撑爆上下文);采样 16 帧后 16×256=4096 token。② 均匀采样简单、覆盖全片但可能漏关键时刻;关键帧抓重点省 token;密集采样细但 token 爆炸。③ 让注意力能区分动作先后顺序,对因果 / 排序问题至关重要。④ 降帧率(关键帧优先)、每帧重采样到固定 token、3D VAE 时间维压缩、分层(先粗看摘要再精看片段)。⑤ 因为 1 分钟视频全帧可能对应数万 token,比一张图贵 100 倍以上,先做「看不看 / 看多少」的预算决策对成本的影响远大于模型选择。

10. 语音与音频:从 ASR 到端到端对话

知识结构图 · 语音与音频
语音与音频4 大知识域 · 16 个知识点
Whisper编码器-解码器mel 谱输入多任务特殊 token<|transcribe|> / <|translate|>长音频重叠窗口
学习路径
  1. 读 10.1:理解 Whisper 的多任务特殊 token 机制
  2. 跑 whisper transcribe 示例,切换 transcribe/translate 任务
  3. 完成 10.3 练习 1/2/5:写多任务格式、选型、重叠窗口
  4. 对接 M11:接 Whisper 做语音入站识别
✔ 能跑 Whisper 并解释多任务 token 切换,能说明长音频重叠处理
核心知识点详解
  • 编码器-解码器 + mel 谱:Whisper 音频 mel 谱过 encoder,decoder 自回归生成文本;一套权重覆盖多语言多任务。
  • 多任务特殊 token:在输入前拼接 <|startoftranscript|>、语言标记、<|transcribe|>/<|translate|>、时间戳标记来切换任务——同一个 decoder 靠条件 token 学会不同模式。
  • 长音频重叠窗口:长音频要分段 + 重叠窗口(如 30s/overlap 5s)避免截断与幻觉重复;边界词靠重叠保全上下文,再对重复做去重。
  • 常见坑:整段一次转录长音频:一次性喂长音频会因体验上下文截断或产生幻觉重复。务必分段 + 重叠 + 去重处理。
语音 LLM 路线级联 ASR→LLM→TTS音频离散 token端到端语音进出保留语气 / 情绪
学习路径
  1. 读 10.2 表格:对比级联/语音LLM/端到端
  2. 搭一个 ASR→LLM→TTS 回路,感受级联的延迟叠加
  3. 完成 10.3 练习 4:说明语音 LLM 与级联在副语言信息上的差别
  4. 对接 M11:思考端到端语音对话的成本
✔ 能对比三条路线并说明副语言信息的保留差异
核心知识点详解
  • 三条路线:级联(ASR→LLM→TTS)、语音 LLM(音频离散 token 进 LLM)、端到端(语音直接进出)。
  • 副语言信息之差:级联在 ASR 与 TTS 之间有文本瓶颈,语气/情绪易丢失;语音 LLM 直接建模音频 token 可保留副语言(语气/情绪);端到端原生保留。
  • 音频离散 token:语音 LLM 用音频 tokenizer 把声音切成离散 token 与文本 token 在同一 Transformer 联合建模,才能保留非文字信息。
  • 常见坑:级联以为能自然对话:级联三段拼接无法做「边说边打断」,语气也丢失;要自然打断/情绪保留就得上语音 LLM 或端到端。
实时对话端到端 <1s流式 ASR 200–600msLLM 500–3000ms流式 TTS 150–400msbarge-in 打断
学习路径
  1. 读 10.2:掌握 <1s 门槛与各环节时延预算
  2. 实测或估算三级时延,做流水线并行
  3. 完成 10.3 练习 3/5:写时延预算、解释重叠窗口
  4. 对接 M11:为语音回路压延迟并测量轮次延迟
✔ 能写出各环节毫秒级时延预算并拼出 <1s 目标
核心知识点详解
  • 各环节时延预算:流式 ASR 首字 200–600ms、LLM 500–3000ms、流式 TTS 首包 150–400ms;端到端目标 <1000ms 轮次延迟。
  • 用流水线并行拼 <1s:不要三端串行等完整结果;流式 ASR(VAD 断句)+ 流式生成 + 流式 TTS,边收边处理边播放 + 早启动压总延迟。
  • barge-in 打断:端到端模型在用户说话中途即可「听、想、回」,无需等完整语句结束,因此能自然处理打断与重叠发言。
  • 常见坑:忽略 VAD 与首字延迟:只优化 LLM 端面忽略听写首字,体验仍卡;从 本地 VAD 断句 + 小模型 ASR 砍首字最实际。
合规红线声纹授权防滥用合成音频水印
学习路径
  1. 读 10.2 的合规红线:声纹授权与合成水印
  2. 为你的语音组件加授权与合成音标记
  3. 完成 10.3 练习 4(或读答案):列出合规要求
  4. 对接 M11:把合规开关集成进语音产品
✔ 能列出声音克隆的合规红线并给出落地措施
核心知识点详解
  • 合规红线:声音克隆做声纹授权 + 合成音频水印 + 可检测性,防止深度伪造滥用——这是监管硬约束。
  • 落地措施:为 TTS 加合成音标记/水印与来源可检测;高风险场景设授权流、滥用拦截与追踪。
  • 授权是第一道闸:未授权使用他人声纹是红线;产品需在克隆前完成本人显式授权流程。
  • 常见坑:把合规留给上线后:授权流与水印必须在架构设计期就纳入,否则临时加补丁成本高且可能漏。
学习路径

10.1 Whisper:编码器-解码器与多任务格式

Whisper 用编码器-解码器做语音识别:音频 mel 谱过 encoder,decoder 自回归生成文本。它的妙处是多任务格式——在输入前加特殊 token(如 <|startoftranscript|>、语言标记、<|transcribe|>/<|translate|>)来指定任务(转录/翻译/带时间戳),一套权重覆盖多语言多任务。

python# Whisper 的多任务条件 (伪代码)
# 输入: [<|startoftranscript|>, <|en|>, <|transcribe|>, <|notimestamps|>] + mel
# 输出: 对应语言的文本
# 关键: 这些条件 token 让同一个 decoder 学会「切换到不同任务模式」
result = whisper_model.transcribe(
    audio, language="en", task="transcribe",  # 也可 task="translate"
)
# 端到端时延取决于模型尺寸: tiny(32MB) < base < small < ... < large-v3
✔
选型:实时本地识别偏好 tiny/base 的 ONNX 量化版(CPU 也能跑);精度优先用 large-v3 / Whisper2 等。注意:长音频要分段 + 重叠窗口,避免截断与幻觉重复。

10.2 语音 LLM 与端到端对话

路线拼接方式优点缺点
级联ASR → LLM → TTS成熟、好调试延迟叠加、副语言丢失
语音 LLM音频编为离散 token 进 LLM保留语气/情绪需音频 tokenizer
端到端语音直接进、语音直接出低延迟、自然数据/工程门槛高

2026 年的实时语音模型(如 GPT-4o 语音、Gemini 原生语音、各家 Omni 模型)走端到端:语音切成离散 token 或连续表征,与文本 token 在同一个 Transformer 里联合建模,能在用户说话中途就「听、想、回」,实现打断(barge-in)与自然轮次。体验门槛是端到端延迟 < 1s。

环节典型时延(流式)优化手段
流式 ASR200–600 ms 首字小模型 / 局部 VAD 断句
LLM 思考+生成500–3000 ms(取决于是否思考)低温度、缓存、小模型兜底
流式 TTS150–400 ms 首包神经声码器量化、边生成边播
端到端目标< 1000 ms 轮次延迟三段流水线并行 + 早启动
⚠
合规红线:声音克隆(zero-shot TTS)必须做声纹授权与防滥用(水印、可检测合成音频),否则触及深度伪造监管。这是工程之外的硬约束。

10.3 动手练习与自测

  1. Whisper 的多任务格式靠什么实现?一套权重如何覆盖转录 / 翻译 / 时间戳?
  2. 实时本地 ASR 与精度优先各该选什么尺寸的模型?
  3. 写出一条流式语音对话的端到端时延预算(各环节毫秒数)。
  4. 语音 LLM 与级联式在「副语言信息」上的差别是什么?
  5. 长音频识别为什么需要重叠窗口?
✔
参考答案 / 判据:① 靠输入前拼接的特殊 token(<|startoftranscript|>、语言标记、<|transcribe|>/<|translate|>、时间戳标记)来切换任务模式。② 实时本地用 tiny/base 的 ONNX 量化版(CPU 可跑);精度优先用 large-v3。③ 例:流式 ASR 首字 200–600ms + LLM 500–1500ms + 流式 TTS 首包 150–400ms,目标轮次 <1s。④ 级联在 ASR 与 TTS 之间有文本瓶颈,语气 / 情绪易丢失;语音 LLM 直接建模音频 token,可保留副语言信息。⑤ 分段边界会切断词或上下文,重叠窗口保证边界词的上下文完整,但也需去重以避免重复转录 / 幻觉。

11. 扩散模型数学进阶:引导、加速与潜空间

知识结构图 · 扩散模型数学进阶
扩散模型数学进阶4 大知识域 · 17 个知识点
预测目标ε 噪声 DDPM 默认x0 采样后期更准v=αε−σx0 高噪稳三者可相互换算v 与 Flow Matching 统一
学习路径
  1. 读 11.1 表格:理解 ε / x0 / v 及换算
  2. 跑参数化对比,观察 v-prediction 在高噪步更稳
  3. 完成 11.4 练习 5:说明哪种与 Flow Matching 统一
  4. 对接 M11:为生成管线选目标参数化
✔ 能区分三种预测目标并说明各自更稳的阶段与换算关系
核心知识点详解
  • 三种预测目标:ε(DDPM 默认,预测噪声)稳定;x0 采样后期更准、易约束;v=αε−σx0(预测速度)高噪声步更稳。
  • 可相互换算:给定 α_t、σ_t,ε/x0/v 三者可相互转换——只是参数化不同,网络都能拟合,但数值稳定性不同。
  • v 与 Flow Matching 统一:v 与 Flow Matching / Rectified Flow 的速度场均质同构,是 2025–2026 多视频/高分辨率模型的选择。
  • 常见坑:全阶段用一个目标:高噪步重 v、后期重 x0;固定单目标会在特定噪声档表现差。可混合/切换参数化解耦不同阶段的最优目标。
CFG 引导ε_hat=ε_uncond+w·(ε_cond−ε_uncond)w=3~7 常用w>10 过饱和伪影视频时域 CFG
学习路径
  1. 读 11.2:理解 CFG 外推公式与 w 的影响
  2. 跑 CFG 脚本,调 w 观察文图贴合与过饱和
  3. 完成 11.4 练习 1/4:写公式、解释视频时域引导
  4. 对接 M11:在生成里调 CFG 平衡次数
✔ 能写 CFG 公式并说明 w 取值与过饱和现象,能给视频时域引导理由
核心知识点详解
  • CFG 外推公式:ε_hat = ε_uncond + w·(ε_cond − ε_uncond),同时跑有条件/无条件两次预测再线性外推,w 控制文本对齐强度。
  • w 的取值区间:w=3~7 常用且文图贴合、保持多样;w>10 出现过饱和、文字伪影、构图崩、多样性下降。
  • 视频需时域 CFG:视频里还需对运动强度做时域引导,防止「静止但精致」的画面;时空分别引导才平衡。
  • 常见坑:w 太大追求贴文:w 太大虽贴 prompt 但过度饱和/伪影/多样性崩。用「文本对齐 vs 多样性」曲线找甜点位,别一味调大。
DDIM 加速非马尔可夫确定性采样1000 → 20–50 步允许跳步
学习路径
  1. 读 11.3:理解 DDIM 确定性采样与跳步
  2. 跑 DDIM/DDPM 对比,看步数对质量的影响
  3. 完成 11.4 练习 2:写 DDIM 步数与为何能跳步
  4. 对接 M11:在生成选少步采样加速
✔ 能说明 DDIM 压步原理并给出经验步数
核心知识点详解
  • DDIM 非马尔可夫确定性采样:不保证逐 t 加噪马尔可夫链,用确定性公式直接跳步反演,把 1000 步 DDPM 压到 20–50 步质量损失小。
  • 允许跳步:确定性假设使相邻 t 步可合并,跳步后仍可重建,故 20–50 步即可。
  • 经验步数:图像通常 DDPM 1000 步 / DDIM 50 步;潜空间扩散 + 蒸馏可到 20–30 甚至更少。
  • 常见坑:越少步越好:步数太少仍有细节损失或伪影。以任务可接受的画质为下限,别盲目压步。
潜空间扩散VAE 压缩 8×64×64×4 潜变量token 262144 → 4096FLOPs ≈ 1/64SD = CLIP+VAE+U-Net
学习路径
  1. 读 11.3:理解 VAE 潜空间压缩与算力收益
  2. 手算 token 数 262144→4096,体验 1/64 FLOPs
  3. 完成 11.4 练习 3:写压缩倍数与注意力 token 数
  4. 对接 M11:评估生成管线是否值得上潜空间扩散
✔ 能算压缩倍数并解释为何消费级可跑、代价是丢细节
核心知识点详解
  • VAE 压缩 8×:像素 512×512×3 → 潜空间 64×64×4(8 倍压缩),像素空间注意力 token 262,144 → 潜空间 4096,降 64×。
  • FLOPs ≈ 1/64:单次去噪 FLOPs 降约 1/64(8²),这就是 SD 能跑在消费级 GPU 的根本原因。
  • 代价:丢极细高频细节:VAE 压缩会丢一部分极细纹理,所以潜空间扩散在超高清/极细细节上不如像素空间。
  • 常见坑:只看到省算力忽略保真:极高保真/专业级细节任务用潜空间可能不够;先对比「VAE 重建清晰度」判断能否接受压缩损失。
学习路径

11.1 预测目标:ε / x0 / v

预测目标网络输出特点
ε (噪声)预测加进去的噪声DDPM 默认,稳定
x0 (干净图)预测原始数据采样后期更准、易约束
v (速度)预测速度场 v=αε−σx0高噪声步更稳、与 Flow Matching 统一

三者可相互转换(给定 α_t, σ_t),只是参数化不同。v-prediction 在极噪步更数值稳定,且和 Flow Matching 的速度场同构,是 2025–2026 许多视频/高分辨率模型的选择。

11.2 分类器无关引导(CFG)

CFG 是「文本对齐」的关键:同时跑有条件与无条件两次预测,按引导强度 w 外推:

text# CFG:在条件与无条件预测之间插值
# ε_hat = ε_uncond + w * ( ε_cond - ε_uncond )
# w(引导强度): 越大越贴合 prompt,但多样性和自然度下降
#   经验: w=3~7 常用;w>10 易过饱和、文字伪影、构图崩
# 实现: 把空 prompt 也拼进 batch,一次前向得两个输出,再线性组合
⚠
CFG 的取舍:w 太小→文图不符;w 太大→过饱和、重复纹理、失去多样性。视频里还需时域 CFG(对运动强度引导)防止「静止但精致」。这是出图质量最敏感的超参之一。

11.3 DDIM 加速与潜空间扩散

DDIM 用非马尔可夫确定性采样,把 1000 步 DDPM 压到 20–50 步且质量损失小。而潜空间扩散(Latent Diffusion)先在 VAE 把图像压到 8×8 倍小的潜空间再扩散——把像素级去噪换成潜变量级去噪,算力降约 1/64(8²),这是 SD 系列能跑在消费级 GPU 的根本。

text# 为什么 latent diffusion 更高效
# 像素空间: 512x512x3 -> U-Net 在 (512,512) 上算注意力 O(HW)^2
# 潜空间   : 64x64x4  (VAE 压缩 8x) -> 注意力 token 数降 64 倍
# 代价: VAE 编码/解码的一次性开销 + 潜空间可能丢极细高频细节
# DDIM 采样: x_{t-1} = ...(确定性, 可跳步) -> 步数 1000->25 仍可用
维度像素空间扩散Latent Diffusion (SD)
潜变量尺寸512×512×364×64×4(VAE 压缩 8×)
U-Net / DiT token 数262,1444,096(降 64×)
单次去噪 FLOPs≈ 1.0(基准)≈ 1/64(同算力可更细)
典型步数1000 (DDPM) / 50 (DDIM)50 (DDIM) / 20–30 (蒸馏)
代价消费级难跑消费级可跑
★
SD 系列的骨架:Stable Diffusion = CLIP 文本编码 + VAE 潜空间 + U-Net 去噪。SDXL 加大 U-Net 与双文本编码器;FLUX 进一步用DiT 替代 U-Net + 更优的潜空间与 Rectified Flow(见 12、13 节)。

11.4 动手练习与自测

  1. 写出 CFG 的外推公式,并说明 w 取 3~7 与 >10 的差别。
  2. DDIM 把 DDPM 的 1000 步压到多少步?为什么可以跳步?
  3. 潜空间扩散为什么比像素空间省算力?给出压缩倍数与注意力 token 数对比。
  4. CFG 在视频生成里为什么还需要时域引导?
  5. ε / x0 / v 哪种参数化与 Flow Matching 统一?
✔
参考答案 / 判据:① ε_hat = ε_uncond + w·(ε_cond − ε_uncond);w=3~7 文图较匹配且多样;w>10 过饱和、文字伪影、构图崩、多样性下降。② 压到 20–50 步(可蒸馏到更少);DDIM 是非马尔可夫确定性采样,允许跳步积分。③ VAE 压缩 8×,像素 512×512×3 的注意力 token 262,144 → 潜空间 64×64×4 的 4,096(降 64×),单次去噪 FLOPs ≈ 1/64。④ 视频里需对运动强度引导,防止出现「静止但精致」的画面,时空需分别引导。⑤ v-prediction(速度场)与 Flow Matching / Rectified Flow 统一。

12. Flow Matching / Rectified Flow 深入

知识结构图 · Flow Matching / Rectified Flow
Flow Matching / Rectified Flow3 大知识域 · 10 个知识点
Rectified Flow直线插值 x_t=(1−t)x0+t·x1常速 v=x1−x0MSE 回归速度把弯曲路径整流
学习路径
  1. 读 12.1:理解直线插值路径与常速 v=x1−x0
  2. 跑 Flow Matching 最小示例,看 1 步均值到 1.985
  3. 完成 12.2 练习 1/3:写路径与速度、说明训练优势
  4. 对接 M11:理解 FLUX/SD3 的生成加速原理
✔ 能写直线路径与常速目标,并解释为何路径越直步数越少
核心知识点详解
  • 直线插值路径:x_t = (1−t)x0 + t·x1(t:0→1,x0=噪声、x1=数据);速度是导数,沿直线为常数 v=x1−x0。
  • 训练即回归速度场:loss = MSE(model(x_t,t), x1−x0),目标干净稳定,这就是 Rectified Flow 的「整流」——把弯曲路径掰直。
  • 路径越直步数越少:速度场近常数时大步长积分误差小,1 步就能把均值推到目标近值(示例 1 步均值到 1.985,目标 2.0)。
  • 常见坑:把均值当完整分布:少步后均值已对但方差不收敛仍不完整;1 步 std 0.476 vs 目标 0.583——仍要多步才能收敛到正确分布,别只看均值。
少步采样路径越直步数越少可蒸馏到 1–4 步1 步均值就到 1.985FLUX / SD3 采用
学习路径
  1. 读 12.1 表格/结论:路径越直采样步数越少
  2. 跑 sample 代码,对比 1/2/4/8 步的均值与 std
  3. 完成 12.2 练习 2:写为何可蒸馏到 1–4 步
  4. 对接 M11:比较不同采样步数与质量的关系
✔ 能量化不同步数下均值/std 的变化,说明少步可行的原因
核心知识点详解
  • 路径越直则步数越少:直线路径速度场近常速,1 步均值 1.985(目标 2.0)、2 步 1.997、4 步 1.996——均值几乎一步到位。
  • 可蒸馏到 1–4 步:直线路径使大步长积分误差小,FC/FLUX、SD3 能把采样压到 4 步甚至蒸馏到 1–2 步。
  • 分布收敛看 std 不看均值:均值 1 步就对,但 std 从 0.476→0.583 需更多步收敛——少步会欠方差、多步才完整。
  • 常见坑:用均值评估生成质量:均值只反映位置,不反映多样性/方差。生成质量要同时看均值(位置)与 std(多样性),否则被「均值对」误导。
统一视角扩散与流匹配同族与 v-prediction / DiT 兼容
学习路径
  1. 读 12.1 的 2026 地位:理解扩散与流匹配同族
  2. 对照 11.1 的 v-prediction,理解与 DiT 兼容
  3. 完成 12.2 练习 5:写数学上的统一
  4. 对接 M11:用统一视角理解理解与生成合流
✔ 能在数学上把扩散与流匹配统一,并解释与 DiT 兼容
核心知识点详解
  • 扩散与流匹配同族:两者都是「学一个把噪声推向数据的变换」,只是参数化不同——流匹配把弯曲加噪路径「整流」成直线。
  • 与 DiT 兼容:Flow Matching 的速度目标与 v-prediction 同构,而 DiT 是骨干;同一 DiT 骨干可用不同的预测目标,天然兼容。
  • 统一视角的意义:用统一视角,「理解」与「生成」正搭同一骨干(如 mixture-of-transformers),支撑世界模型方向。
  • 常见坑:把两者当完全不同的方法:它们在数学上是同一家族(参数化差异)。理解这一层才能在看 FLUX/SD3 技术报告时不被术语绕晕。
学习路径

12.1 为什么训练更直

扩散的路径是「加噪→去噪」的随机过程,轨迹弯曲、需要多步。Rectified Flow 把路径直接定义成噪声到数据的直线插值,训练目标是沿这条直线的常速场。路径越直,采样步数越少——可蒸馏到 1–4 步,且训练目标更简单稳定。

text# Rectified Flow 的路径与速度
# 直线路径:  x_t = (1-t)*x0 + t*x1     (t:0->1, x0=噪声, x1=数据)
# 速度目标:  v = dx/dt = x1 - x0       (沿直线是常数!)
# 训练:  MSE( model(x_t, t), x1 - x0 )
# 采样: 从 x0 出发,沿学到的 v 积分(几步即可,因为路径近直线)
# 与 DDPM 关系: 可视为把「弯曲的加噪路径」整流成「直线」
ℹ
2026 的地位:FLUX、SD3、以及大量视频模型都采用 Rectified Flow / Flow Matching 作为训练目标。它的优势在:① 训练目标干净(回归速度场);② 采样步数少、易蒸馏;③ 与 v-prediction、DiT 天然兼容。可以认为「扩散」与「流匹配」在数学上同属「学一个把噪声推向数据的变换」,只是参数化不同。
python# Flow Matching 最小可运行示例(纯标准库):把噪声推向 N(2, 0.7)
import random, statistics
random.seed(0)
def data(n):  return [random.gauss(2.0, 0.7) for _ in range(n)]
N = 4000
x0 = [random.gauss(0.0, 1.0) for _ in range(N)]   # 噪声
x1 = data(N)                                       # 数据
t  = [random.random() for _ in range(N)]
xt = [(1.0 - ti)*a + ti*b for ti, a, b in zip(t, x0, x1)]
vt = [b - a for a, b in zip(x0, x1)]               # 真速度 = x1 - x0 (常数)

def lstsq3(A, y):                                  # 正规方程 + 高斯消元
    n = 3
    AtA = [[sum(r[i]*r[j] for r in A) for j in range(n)] for i in range(n)]
    Aty = [sum(r[i]*yy for r, yy in zip(A, y)) for i in range(n)]
    M = [row[:] + [Aty[i]] for i, row in enumerate(AtA)]
    for c in range(n):
        p = max(range(c, n), key=lambda r: abs(M[r][c]))
        M[c], M[p] = M[p], M[c]
        pv = M[c][c]
        for j in range(c, n+1): M[c][j] /= pv
        for r in range(n):
            if r != c:
                f = M[r][c]
                for j in range(c, n+1): M[r][j] -= f*M[c][j]
    return [M[i][n] for i in range(n)]

w = lstsq3([[1.0, ti, xi] for ti, xi in zip(t, xt)], vt)
print('coef [bias, t, x]:', [round(v, 3) for v in w])

def sample(steps):                                 # Euler 积分
    x = [random.gauss(0.0, 1.0) for _ in range(20000)]
    dt = 1.0 / steps
    for i in range(steps):
        tt = i*dt
        x = [xi + dt*(w[0] + w[1]*tt + w[2]*xi) for xi in x]
    return x
for k in (1, 2, 4, 8):
    x = sample(k)
    print('steps', k, 'mean', round(statistics.mean(x), 3),
          'std', round(statistics.pstdev(x), 3))

# 预期输出(近似):
# coef [bias, t, x]: [1.984, 1.066, -0.524]
# steps 1 mean 1.985 std 0.476
# steps 2 mean 1.997 std 0.541
# steps 4 mean 1.996 std 0.57
# steps 8 mean 1.997 std 0.583

读这三个数:均值目标 2.0——1 步就把均值推到 1.985,说明直线路径的单步积分误差极小;再增加到 8 步,均值几乎不动(1.997),分布只做微调。这正是 FLUX / SD3 敢把采样压到 4 步甚至更少、并进一步蒸馏到 1–2 步的原因。对比之下,DDPM 的弯曲路径若只用 1 步,图像几乎是噪声。

12.2 动手练习与自测

  1. 写出 Rectified Flow 的直线路径与速度目标,并说明为什么速度是常数。
  2. 为什么路径越直采样步数越少?可蒸馏到几步?
  3. Rectified Flow 相对 DDPM 的训练优势是什么?
  4. FLUX / SD3 采用什么训练目标?
  5. 「扩散」与「流匹配」在数学上如何统一?
✔
参考答案 / 判据:① x_t=(1−t)x0+t·x1,v=dx/dt=x1−x0;因路径是直线,导数与 t 无关,故为常数。② 直线的速度场近似常数,大步长积分误差小,可蒸馏到 1–4 步。③ 目标干净(回归速度场)、训练更稳、采样更少、与 v-prediction / DiT 天然兼容。④ Rectified Flow / Flow Matching。⑤ 两者都属「学一个把噪声推向数据的变换」,可视为同一家族的不同参数化。

13. DiT:用 Transformer 替代 U-Net

知识结构图 · DiT
DiT4 大知识域 · 12 个知识点
adaLN-Zero条件预测 shift/scale/gate零初始化 MLPh=x·(1+scale)+shiftgate 初 0 退化为恒等
学习路径
  1. 读 13.1:理解 adaLN-Zero 的条件注入机制
  2. 跑 gate=0 vs gate=0.8 示例,看恒等 vs 条件输出
  3. 完成 13.2 练习 1:写注入方式、说明为何 gate 初始化 0
  4. 对接 M11:理解主流生成骨干的 zero-init 设计
✔ 能写 adaLN-Zero 公式并解释 gate=0 带来的训练稳定性
核心知识点详解
  • adaLN-Zero 条件注入:用条件(时间步/文本)经零初始化 MLP 预测 LayerNorm 的 (shift, scale, gate),h = x×(1+scale)+shift。
  • gate 初 0 退化为恒等:h_out = x + gate·h_attn;gate=0 时残差分支贡献为 0,整层开头是恒等映射(示例 max|out−x|=0.0),训练第一步梯度平稳传播。
  • 条件逐步「接管」:随训练 gate 从 0 长到 0.5–1.5,条件调制才逐步生效——这就是绝大多数 2026 DiT 骨干(FLUX/Wan/HunyuanVideo)默认开 zero-init 的原因。
  • 常见坑:条件随机初始化破坏深层:若不 gate 而是直接随机调制,深层 Transformer 一上来就被条件噪声破坏、梯度不稳。gate 初始化 0 是稳定性关键。
缩放律表现XS 1x → XL 约 70xFID 单调提升遵循缩放律U-Net 难企及
学习路径
  1. 读 13.1 表格:看 DiT 从 XS 到 XL 的算力与质量
  2. 跑或对照参数对比,体会 70x 算力的 FID 提升
  3. 完成 13.2 练习 2/3:写计算与质量变化、解释为何优于 U-Net
  4. 对接 M11:评估是否值得上更大 DiT 骨干
✔ 能说明 DiT 遵循缩放律并指出 U-Net 的局限
核心知识点详解
  • XS→XL 约 70x:DiT 从 0.4G(XS,1x)到 28G(XL,约 70x),FID 随规模单调提升,清晰度与一致性增强。
  • 遵循缩放律:Transformer 模型/数据越大生成质量单调提升且计算高效,这正是「可扩展性」的核心卖点。
  • U-Net 的局限:U-Net 的卷积偏置在大规模下收益有限,FID 提升随规模趋平、难以企及 Transformer 的缩放曲线。
  • 常见坑:拿小数据断言 DiT 缩放失败:缩放律需要足够大模型 + 大 token 数 + 大数据才显优势;在极小任务上 DiT 未必比 U-Net 强,别据此误判。
文本条件注入cross-attentionconcat 后进 adaLN
学习路径
  1. 读 13.1:理解文本条件的两种注入方式
  2. 跑一个文本提示扩散样例,看条件如何影响生成
  3. 完成 13.2 练习 4:写文本条件的两种进法
  4. 对接 M11:为你的文本到图/视频条件的注入选型
✔ 能对比 cross-attention 与 concat 两法并选对注入方式
核心知识点详解
  • 两种文本注入方式:① cross-attention:在 DiT 各层对文本特征做交叉注意力;② concat 进 adaLN:文本特征拼进条件向量一起预测 shift/scale/gate。
  • cross-attention 更强但更贵:cross-attn 让每层都能显式关注文本 token,文图对齐更强,但增加序列交互、更贵;concat 更轻量。
  • 按任务选注入:强文本对齐任务(文生图/文生视频)多用 cross-attention 或两者结合;轻量/速度敏感用 concat 进 adaLN。
  • 常见坑:浅层不看文本:若只在少数层注入文本,模型对文本对齐较弱。检查各层是否都传递了条件,别只在输出端加。
骨干转向Sora / Veo / 可灵 / Wan / FLUXzero-init 成默认
学习路径
  1. 读 13.1 尾段与练习 5:理解骨干为何转向 DiT
  2. 对照主流模型表,确认都采用 DiT + zero-init
  3. 完成 13.2 练习 5:写为何都用 DiT 骨干
  4. 对接 M11:在生成子模块遵循 DiT 选型惯例
✔ 能说出主流生成骨干为何转向 DiT,并给出两个理由
核心知识点详解
  • 主流骨干全线 DiT:Sora、Veo、可灵、Wan、FLUX、HunyuanVideo、CogVideoX 都转 DiT/Transformer 骨干,zero-init 成默认。
  • 理由一:可扩展性:Transformer 直接吃缩放律收益,越大约好 FID 单调提升——U-Net 难企及。
  • 理由二:统一性:同一骨干接受文本/图像/动作/相机轨迹等异构条件,支撑视频生成/世界模型等统一下游。
  • 常见坑:照搬旧 U-Net 设计:迁移项目常保留 U-Net 的通道/结构假设。转 DiT 要改成 patch 化 + zero-init + 自适应条件注入,否则发挥不出缩放收益。
学习路径

13.1 adaLN-Zero 条件注入

DiT 把 U-Net 换成 Transformer:在 patch 上做注意力。条件(时间步 t、文本、类别)通过 adaLN-Zero 注入——用条件预测 LayerNorm 的 scale/shift(以及 gate),且初始化为零,使残差分支从「恒等」开始,训练更稳、条件可控。

text# adaLN-Zero: 用条件预测归一化参数
# 输入条件 c (如时间步 t 的编码)
#   (shift, scale, gate) = MLP_zero_init(c)      # 零初始化 MLP
# 每个 DiT block 内:
#   h = x * (1 + scale) + shift                  # 自适应 LayerNorm
#   h = Attention(h)
#   h = x + gate * h                             # gate 初始 0 -> 先恒等
# 文本条件: 走 cross-attention 或 concate 到条件 c 一起进 adaLN
DiT 规模(G)相对计算生成质量(FID, 示意)规律
0.4 (XS)1x较高可跑但质量有限
2 (S)~5x中明显提升
8 (B)~20x较好接近可用
28 (XL)~70x优清晰、一致性强
★
DiT 的 scaling 表现:DiT 最大的卖点是遵循缩放律:模型越大(参数量、token 数)、数据越多,生成质量单调提升,且计算高效。这是 U-Net 难以企及的——所以 Sora、Veo、可灵、Wan、FLUX 全部转向 DiT/Transformer 骨干。
python# adaLN-Zero 为什么稳: gate=0 时整个 block 是恒等映射
import random
random.seed(1)
def layernorm(x):
    m = sum(x)/len(x)
    v = sum((xi-m)**2 for xi in x)/len(x)
    return [(xi-m)/((v+1e-5)**0.5) for xi in x]

d = 4
x = [random.gauss(0, 1) for _ in range(d)]

def block(x, shift, scale, gate, fb=0.5):
    h = [xi*(1.0+s)+sh for xi, s, sh in zip(layernorm(x), scale, shift)]
    attn = [hi*fb for hi in h]                     # 占位子层
    return [xi + gate*a for xi, a in zip(x, attn)]

o0 = block(x, [0.0]*d, [0.0]*d, 0.0)                # 零初始化
print('gate=0  -> max|out-x| =', round(max(abs(a-b) for a, b in zip(o0, x)), 6))
o1 = block(x, [0.2]*d, [0.1]*d, 0.8)                # 训练后
print('gate=0.8 -> max|out-x| =', round(max(abs(a-b) for a, b in zip(o1, x)), 3))

# 预期输出:
# gate=0  -> max|out-x| = 0.0
# gate=0.8 -> max|out-x| = 0.536

这个 0.0 就是 adaLN-Zero 的核心:训练第一步时,所有条件分支贡献为 0,整层退化成恒等映射,于是深层 Transformer 不会一上来就被随机的条件调制破坏,梯度能平稳传播。随着训练推进,gate 从 0 长到 0.5–1.5,条件才逐步「接管」——这也是绝大多数 2026 的 DiT 视频/图像骨干(FLUX、Wan、HunyuanVideo)默认开 zero-init 的原因。

13.2 动手练习与自测

  1. adaLN-Zero 如何注入条件?为什么 gate 初始化为 0?
  2. DiT 从 XS 到 XL,相对计算与生成质量大致如何变化?
  3. DiT 的 scaling 表现为什么优于 U-Net?
  4. 文本条件在 DiT 里怎么进?两种常见方式是什么?
  5. 为什么 Sora / Veo / FLUX 都转向 DiT 骨干?
✔
参考答案 / 判据:① 用条件(时间步 / 文本等)经零初始化 MLP 预测 LayerNorm 的 (shift, scale, gate),h = x×(1+scale)+shift;gate 初始 0 使残差分支从恒等开始,训练更稳、条件逐步介入。② 计算约 1x→70x,质量单调提升(XS 有限 → XL 清晰一致)。③ 因为 Transformer 直接受益于缩放律,模型 / 数据越大质量单调提升且计算高效,U-Net 的卷积偏置在大规模下收益有限。④ 走 cross-attention,或与条件 concat 后一起进 adaLN。⑤ 两个理由:可扩展性(吃下缩放收益)与统一性(同一骨干接受文本 / 图像 / 动作 / 相机轨迹等异构条件)。

14. 文生图与文生视频:架构演进与难点

知识结构图 · 文生图与文生视频
文生图与文生视频4 大知识域 · 15 个知识点
文生图演进SD = U-Net+VAE+CLIPSDXL 更大 U-Net + 双 CLIPFLUX = DiT + Rectified Flow文本编码 CLIP → T5
学习路径
  1. 读 14.1:理解 SD→SDXL→FLUX 的演进主线
  2. 跑一个文生图样例,观察骨干/目标/文本编码差异
  3. 完成 14.3 练习 1:写骨干/目标/文本编码器的演进
  4. 对接 M11:选文生图基座并记录其架构
✔ 能说清 SD/SDXL/FLUX 的骨干与目标演进及性能差异
核心知识点详解
  • 演进主线:骨干 U-Net → DiT、目标 DDPM → Rectified Flow、文本编码 CLIP → T5/多模态,文本对齐更强、细节更真、采样更快。
  • SD 三层骨架:SD = CLIP 文本编码 + VAE 潜空间 + U-Net 去噪;SDXL 加大 U-Net + 双 CLIP;FLUX 用 DiT + Rectified Flow。
  • 三者差异:SD 开源生态/消费级可跑;SDXL 分辨率细节提升;FLUX 高保真、强文本对齐、采样更快(可少步)。
  • 常见坑:以为 FLUX 只有图像:FLUX 采用 DiT + 多模态文本编码器,是「骨干演进」的范本;理解它才能举一反三到视频 DiT 模型。
文生视频难点时空一致性物理合理性时长与记忆身份保持
学习路径
  1. 读 14.2:理解视频在图像之上多出的三个难度
  2. 生成长视频片段,标出时空/物理/身份失效
  3. 完成 14.3 练习 2/5:写三大难度与身份保持手段
  4. 对接 M11:对视频子任务做一致性失效分析
✔ 能识别时空一致性/物理/时长的失效并关联技术
核心知识点详解
  • 三大难度:时空一致性(人物/物体跨帧不变形不闪)、物理合理性(重力/碰撞/遮挡)、时长与记忆(长镜头不漂移)。
  • 失效技术映射:时空→3D VAE/时空注意力/参考锚定;物理→物理先验/世界模型预测/动作条件;长镜→关键帧+插帧/潜空间时序映射。
  • 身份保持:多镜头角色一致用参考图/身份编码/种子锚定,是长视频可用的必要条件。
  • 常见坑:忽略物理合理性评测:只看时序一致不测物理,会出现「连贯但穿模/违反重力」的假象——物理合理性要单独设评测项。
视频模型对比Sora 约 60s DiTVeo 原生多模态Wan 开源 14B/1.3B可灵分钟级HunyuanVideo 3D VAE
学习路径
  1. 读 14.2 表格:对比 Sora/Veo/Wan/可灵/HunyuanVideo
  2. 跑一个开源视频模型,观察其骨干与时长
  3. 完成 14.3 练习 3:对比 Sora 与 Wan 的时长/部署差异
  4. 对接 M11:选视频基座并记录其能力边界
✔ 能横向对比主流视频模型并选型一个基座
核心知识点详解
  • 主流模型对比:Sora(DiT 时空 patch,最长约 60s,强物理一致/镜头语言);Veo(原生多模态 DiT);Wan(开源 DiT 14B/1.3B,可本地部署);可灵(分钟级高保真人像);HunyuanVideo(开源 3D VAE + DiT,中英对齐好)。
  • Sora vs Wan 差异:Sora 闭源、最长约 60s、强一致;Wan 开源(14B/1.3B)、数秒至十余秒、可本地部署与社区生态。
  • 选型看时长与部署:要自部署/可控 → Wan/HunyuanVideo;要长时高一致 → 闭源 Sora/Veo/可灵;要中英对齐 → HunyuanVideo。
  • 常见坑:拿时长当唯一指标:时长≠一致质量。选型要看你的目标场景「需要多长 + 能否自部署 + 物理/身份一致性」综合判断,不是越长越好。
统一理解生成原生多模态共享骨干世界模型方向
学习路径
  1. 读 14.2 尾段:理解原生多模态共享骨干的方向
  2. 对照组里理解与生成模型,思考共享骨干的意义
  3. 完成 14.3 练习 4:说明统一理解生成为何重要
  4. 对接 M11:评估你的多模态系统是否向共享骨干演进
✔ 能解释理解与生成合流为何是世界模型方向
核心知识点详解
  • 原生多模态共享骨干:同一个骨干既理解又生成(图像/视频/文本),支持「看图→生成一致视频」「理解视频→生成字幕与编辑」。
  • 合流为何是世界模型方向:理解(该发生什么)+ 生成(看起来什么样)统一后,模型才能对世界做可交互的预测与生成——这正是世界模型。
  • Gemini 3 / 各家 Omni 都在走:Gemini 3、各家的 Omni/世界模型都朝「理解与生成共享骨干」的合流点走(如 mixture-of-transformers)。
  • 常见坑:把理解/生成割裂设计:仍按「LLM 调度 + 视觉模型执行」两套拼接时,跨模态交互浅;要触达视觉推理,需让理解与生成在骨干层贴近。
学习路径

14.1 文生图架构演进:SD → SDXL → FLUX

模型骨干训练目标特点
Stable DiffusionU-Net + VAE + CLIPDDPM/ε开源生态、消费级可跑
SDXL更大 U-Net + 双 CLIPDDPM分辨率/细节提升
FLUXDiT + 多模态文本编码器Rectified Flow高保真、强文本对齐

演进主线:U-Net → DiT、DDPM → Rectified Flow、文本编码器从 CLIP 升级到 T5/多模态。结果是文本对齐更强、细节更真、采样更快。

14.2 文生视频:时空一致性、物理合理、时长

视频生成(Sora / Veo / Wan / 可灵)在图像生成之上叠加三个难度:① 时空一致性(人物/物体跨帧不变形、不闪);② 物理合理性(运动符合重力/碰撞/遮挡);③ 时长与记忆(长镜头不漂移)。

难点表现技术手段
时空一致性换脸/闪烁/物体变形3D VAE、时空注意力、参考锚定
物理合理穿模、违反重力物理先验、世界模型预测、动作条件
长镜头漂移镜头一动环境就变关键帧+插帧、潜空间时序映射
身份保持多镜头角色不一致参考图/身份编码、种子锚定
模型骨干上下文/时长关键能力
SoraDiT + 时空 patch最长约 60s强物理一致、镜头语言
Veo (Gemini)原生多模态 DiT数十秒级与 Gemini 文本/图像打通
Wan开源 DiT(14B/1.3B)数秒–十余秒可本地部署、社区生态
可灵 (Kling)自研 DiT分钟级高保真人像/动作
HunyuanVideo开源 3D VAE + DiT数秒级中文语义对齐好
ℹ
统一理解与生成的方向:2026 年的前沿是原生多模态(native multimodal):同一个骨干既理解图像/视频/文本,又能生成它们——「看一张图→生成一段一致视频」「理解视频→生成字幕与编辑」。Gemini 3、以及各家的 Omni/世界模型都在朝这个合流点走。

14.3 动手练习与自测

  1. 文生图架构从 SD → SDXL → FLUX 的演进主线是什么(骨干 / 目标 / 文本编码器)?
  2. 文生视频在图像生成之上多了哪三个难度?
  3. Sora 与 Wan 在上下文 / 时长与部署方式上的差别是什么?
  4. 「统一理解与生成」的方向为什么重要?
  5. 身份保持与长镜头漂移各用什么手段缓解?
✔
参考答案 / 判据:① 骨干 U-Net→DiT;训练目标 DDPM→Rectified Flow;文本编码器 CLIP→T5/多模态,结果文本对齐更强、细节更真、采样更快。② 时空一致性、物理合理性、时长与记忆。③ Sora 为闭源 DiT,最长约 60s,强物理一致与镜头语言;Wan 为开源 DiT(14B/1.3B),数秒至十余秒,可本地部署。④ 同一骨干既理解又生成,支持「看图生成一致视频」「理解视频再编辑」等复合任务,是世界模型方向。⑤ 身份保持用参考图 / 身份编码 / 种子锚定;长镜头漂移用关键帧 + 插帧、潜空间时序映射与相机控制。

15. 多模态评测:测什么、局限在哪

知识结构图 · 多模态评测
多模态评测4 大知识域 · 14 个知识点
主流基准MMBench 猜中约 25%MMMU 大学级MMBench-Video 时序SEED-Bench / RealWorldQA
学习路径
  1. 读 15.1 表格:理解主流多模态基准考什么
  2. 跑 evaluate_vlm 在四维上测开源 VLM,记录 acc
  3. 完成 15.3 练习 1:说明基准偏感知、为何误导
  4. 对接 M11:用自带基准搭一套结果对比
✔ 能说清各基准测什么与局限,并拆出推理子集
核心知识点详解
  • 主流基准:MMBench(多选感知+推理,猜中率约 25%)、MMMU(大学级跨学科图文推理)、MMBench-Video(视频时序)、SEED-Bench/RealWorldQA(真实场景感知)。
  • 基准偏感知需拆推理:多数基准偏感知(「图里有什么」),真正难的是推理(「为什么会发生」)。一个模型可能 MMBench 高分却在空间/因果推理崩,必须单独拆推理子集。
  • 各基准局限:MMBench 多选可猜、区分度有限;MMMU 题难方差大、易污染;视频基准标注成本高、长视频覆盖有限。
  • 常见坑:只看总分不看维度:MMBench 总分会被感知题拉高,掩盖推理/细粒度弱项。要按维度拆,别被整体分迷惑。
感知 vs 推理基准偏感知需单独拆推理子集
学习路径
  1. 读 15.1 的感知 vs 推理提示:多数基准偏感知
  2. 跑感知题与推理题两组,看出分差
  3. 完成 15.3 练习 1:写为何需要拆推理子集
  4. 对接 M11:在你的评测里把推理维度单列
✔ 能拆出感知与推理子集并分别报准确率
核心知识点详解
  • 感知 vs 推理:感知题考「图中有什么」(识别/OCR/计数),推理题考「为什么/下一步」(空间、因果、逻辑)——后者是能力真正分水岭。
  • 多数基准偏感知:主流基准(SEED-Bench/RealWorldQA 等)偏感知、轻推理;整体分会被简单感知题拉高,需单独拆推理子集才能看真实推理力。
  • 分维度评测:感知题与推理题分开算准确率并分别报告;推理维度弱项(空间/因果)要单列,否则被掩盖。
  • 常见坑:拿感知总分当推理能力:模型可能感知高分、推理崩。评测报告必须感知/推理分别出分,否则上线复杂任务会意外失败。
评测局限选择题策略性猜测公开基准污染幻觉率要单测自建优于刷榜
学习路径
  1. 读 15.2:理解选择题偏差/污染/细粒度缺失
  2. 跑 hallucination_rate 分维度统计,忽略总分
  3. 完成 15.3 练习 2/3/4:写选择题偏差与自建价值
  4. 对接 M11:对含图表文档做单项评测并算幻觉率
✔ 能识别评测局限并用自建集补足弱项
核心知识点详解
  • 选择题可策略性猜测:单选可被策略猜测抬高(猜中率约 25%);应辅以开放式 + 人工/LLM 评判,避免「靠猜得分」。
  • 幻觉率要单测:幻觉率、OCR、空间关系这些弱项常不在总分内,必须单独统计(见 hallucination_rate)。
  • 自建优于刷榜:用业务分布真实样本(文档/图表/监控帧)建私有评测,比刷公开榜更能反映真实可用性,且能溯源 + 污染检查。
  • 常见坑:只用公开多选基准定上线:公开多选可猜、污染且偏感知,无法支撑上线决策。要自建含开放式与细粒度项的分维评测。
自建评测按能力维度分桶OCR / 计数 / 空间 / 图表幻觉率 >0.05 警惕M11 多模态 RAG 衔接
学习路径
  1. 读 15.2:理解按能力分桶 + 单独统计幻觉率
  2. 跑 evaluate_vlm 代码,输出四维 acc 与幻觉率
  3. 完成 15.3 练习 5:写 M11 多模态 RAG 相对纯文本 RAG 的优势
  4. 对接 M11:实现多模态索引并对比多模态 vs 纯文本 RAG
✔ 能产出分维评测并说明多模态 RAG 在含图表文档的优势
核心知识点详解
  • 按能力分桶评测:evaluate_vlm 按维度分桶(OCR/计数/空间/图表)各报准确率并单独统计幻觉率;示例 ocr 0.72、count 0.55、chart 0.48、幻觉率 0.118。
  • 幻觉率 >0.05 要警惕:幻觉率超过 0.05 就需警惕、业务要加外部校验;用 |claimed−present|/|claimed| 计算。
  • 多模态 RAG vs 纯文本 RAG:含图表文档上,多模态 RAG 把图表/版面的视觉信息纳入检索与回答;纯文本 RAG 在图表数值、结构关系上会丢失信息导致答错。
  • 常见坑:计数/图表弱却不上心:计数与图表读数常是最大弱项(示例 chart 0.48)。针对弱项用更强 VLM 或外部 OCR/结构化抽取兜底。
学习路径

15.1 主流基准测什么

基准考什么局限
MMBench感知与推理的多选(含图表/ocr)多选可猜,区分度有限
MMMU大学级跨学科图文推理题难、方差大、易污染
MMBench-Video视频时序与事件理解标注成本高、长视频覆盖有限
SEED-Bench / RealWorldQA真实场景感知偏感知、轻推理
基准题量(量级)题型需注意
MMBench (EN/CN)~3,000 多选感知/推理混合猜中率 ~25%,看细分维度
MMMU~11,500 题大学级跨学科专家标注、方差大
MMBench-Video~4,000 视频问答时序/事件长视频覆盖有限
RealWorldQA~700 图真实场景空间偏感知、轻推理
⚠
感知题 vs 推理题:多数基准偏感知(「图里有什么」),而真正难的是推理(「为什么会发生」「下一步会怎样」)。一个模型可能在 MMBench 高分却在需要空间/因果推理时崩。评测你的模型时,要单独拆出推理子集,别被整体分迷惑。

15.2 评测的局限与自建

python# 自建多模态评测:按能力维度分桶,单独统计幻觉率
def evaluate_vlm(model, samples):
    # samples: [{"img":..., "q":..., "gold":..., "dim":..., "claimed":[...], "present":[...]}]
    from collections import defaultdict
    acc, tot = defaultdict(int), defaultdict(int)
    claimed_all, halluc_all = 0, 0
    for s in samples:
        pred = model.ask(s["img"], s["q"])
        tot[s["dim"]] += 1
        if normalize(pred) == normalize(s["gold"]):
            acc[s["dim"]] += 1
        claimed_all += len(s["claimed"])
        halluc_all += len(set(s["claimed"]) - set(s["present"]))   # 说了但图里没有
    for dim in tot:
        print(f"{dim}: acc={acc[dim]/tot[dim]:.2f} (n={tot[dim]})")
    print("幻觉率:", round(halluc_all / max(1, claimed_all), 3))

# 预期输出(示意):
# ocr: acc=0.72 (n=40)
# count: acc=0.55 (n=30)      <- 计数是大弱项
# spatial: acc=0.63 (n=30)
# chart: acc=0.48 (n=25)      <- 图表读数最弱
# 幻觉率: 0.118               <- >0.05 需警惕, 业务需加外部校验
★
与 Hamauls Orion M11 的衔接:M11 要求把图像纳入检索索引、做版面/图表问答、并算清图像 token 折算成本。它的交付 hamauls_orion/mm/vlm.py、ingest.py、多模态索引,正是把本节「理解 + 检索 + 成本」三件事落地。

15.3 动手练习与自测

  1. 多数基准偏「感知」还是「推理」?为什么这会导致误导?
  2. 选择题型评测的偏差是什么?如何补足?
  3. 自建评测集相比刷公开榜的价值是什么?
  4. 幻觉率、OCR、空间关系这些弱项为什么常不在总分里?
  5. M11 的多模态 RAG 相比纯文本 RAG 在含图表文档上的优势来自哪里?
✔
参考答案 / 判据:① 偏感知(图中有什么);模型可能感知高分却在空间 / 因果推理上崩,只看总分会被迷惑,必须拆推理子集。② 单选可被策略性猜测抬高(猜中率约 25%);应辅以开放式 + 人工 / LLM 评判。③ 自建评测贴合业务分布、可溯源、可做污染检查,比公开榜更能反映真实可用性。④ 因为整体分常被大量简单题拉高,弱项(幻觉 / OCR / 空间)样本少、不显眼,需单测。⑤ 多模态 RAG 能把图表 / 版面的视觉信息纳入检索与回答,纯文本 RAG 在图表数值、结构关系上会丢失信息,导致回答错误。

项目里程碑

贯穿项目 · Hamauls Orion
M11 多模态理解与检索 第 61–66 周

Hamauls Orion 要看得懂你的文档和图片:接入视觉语言模型做版面理解与图表问答,把图像也纳入检索索引(图文统一向量空间),并处理多模态输入的 token 预算。

本阶段产出(直接进入项目仓库)
验收标准:在含图表的技术文档问答上,多模态 RAG 相对纯文本 RAG 的准确率显著提升;能算清一张图片在不同分辨率下折算多少 token、成本增加多少。

阶段练习项目

PROJECT 1
开源 VLM 细粒度评测
用一个开源 VLM 在自建的 150 条样本上测四类能力:OCR、计数、空间关系、图表读数,并单独统计幻觉率,输出失效模式清单。
要达成的效果
  • 在 150 条自建样本上输出四维准确率(OCR / 计数 / 空间 / 图表)并给出每维的 bootstrap 置信区间
  • 单独报幻觉率(|claimed−present|/|claimed|),并判断是否超过 0.05 阈值
  • 产出一份失效模式清单,按严重度排序可指导选型
功能需求
  • 样本按能力维度分桶(OCR / 计数 / 空间 / 图表),每桶样本量足够给稳定估计
  • 用 normalize 做答案规范化后严格比对准确率,避免格式误判
  • 对每张图收集 claimed / present 集合,算幻觉率并区分「文字密集 / 低分辨率 / 图表」子场景
  • 统计对整体准确率但单独报告幻觉率,避免被总分掩盖弱项
  • 用 bootstrap(≥1000 次重采样)给每维与幻觉率配置信区间
交付物
  • scripts/mm/eval_vlm.py + 150 条标注数据集
  • 四维准确率 + 幻觉率分维评测报告
  • 失效模式清单与「能否上业务」的选型结论
边界 · 不做

不做模型训练 / 微调;不做开放式任务的 LLM-judge 评判(只测可验证的细粒度与幻觉)。

PROJECT 2
从零实现图像扩散
在 MNIST 或小尺寸数据集上从零实现 DDPM 与 Flow Matching 两版,对比训练稳定性、采样步数与生成质量。
要达成的效果
  • 两个版本都能从纯噪声生成可看图像,且在训练稳定性 / 损失曲线上可被解释
  • 对比 DDIM 与 Flow Matching 在不同采样步数(如 1/4/8/20/50 步)下的生成质量与均值/std
  • 给出「多几步能换来多少质量提升」的量化结论
功能需求
  • ddpm.py:x_t=√ᾱ_t·x0+√(1−ᾱ_t)·ε 加噪 + MSE 去噪目标,ᾱ_t 累积正确
  • flow.py:直线路径 x_t=(1−t)x0+t·x1 + 常速目标 v=x1−x0,用激励/欧拉采样
  • 两者都在 MNIST/小数据集上跑通并记录训练 / 采样步数对比
  • 对 Flow Matching 分别用 1/4/8/20/50 步采样,看均值与 std 收敛(少步只看均值会欠方差)
  • 对比 ε-pred 与 v-prediction 在不同噪声档的稳定性
交付物
  • scripts/mm/diffusion_{ddpm,flow}.py + 训练脚本
  • 生成样本对比图与「步数 – 质量」曲线
  • DDPM vs Flow Matching 的稳定性 / 步数报告
边界 · 不做

不训练大 DiT/潜空间扩散;只在像素小数据集上验证数学与数采集正确性。

PROJECT 3
视频一致性失效分析
用开源视频模型生成 3 段 10 秒以上长镜头,标注并归类一致性失效(换脸 / 闪烁 / 穿模 / 漂移),写一份技术分析报告。
要达成的效果
  • 生成 3 段 10 秒以上镜头并逐帧标注失效类型,统计各类型出现频率
  • 量化一致性随时间(帧数)的变化,判断是否呈近似指数衰减
  • 把观察到的失效映射到对应技术手段(3D VAE / 时空注意力 / 参考锚定等)
功能需求
  • 用开源视频模型生成至少 3 段 10 秒以上镜头,固定采样与 prompt 保证可复现
  • 按时序一致性 / 物理合理性 / 长视频漂移 / 身份保持四类标注失效
  • 统计每类失效随时间分布,判断是否逐帧累积 / 指数衰减
  • 对比不同时长(如 ≤10s vs 60s+)的一致性差距,说明为何短视频好看 ≠ 可进生产
  • 评估生成段 token 预算,量化「1 分钟视频贵 100×」的真实量级
交付物
  • 标注脚本 + 失效分类数据集
  • 技术分析报告(含时间-失效累积曲线)
  • 失效→技术映射清单与可用性结论
边界 · 不做

不训练视频模型;不评估音画同步(身锚定或单测评)之外的生成质量维度。

PROJECT 4
本地语音对话回路
用浏览器端 ASR(ONNX 小模型)+ LLM API + 系统 TTS,搭一个可离线识别、在线推理的语音问答回路,测量端到端延迟。
要达成的效果
  • 能跑通「语音输入 → ASR → LLM 推理 → TTS 播放」的闭环,且离线 ASR 部分在浏览器本地运行
  • 量化端到端轮次延迟(目标 < 1s)并拆解各环节(ASR / LLM / TTS 延迟预算)
  • 用 WER/MOS(或近似)给出 ASR / TTS 质量基线
功能需求
  • 用 whisper-tiny/base 的 ONNX 量化版在浏览器端做本地离线 ASR(CPU 可跑)
  • ASR → LLM API → 神经 TTS 组成级联回路,三段延迟分别计时
  • 长音频分段 + 重叠窗口(如 30s/overlap 5s)避免截断与幻觉重复
  • 用流水线并行 / 早启动把轮次延迟压向 < 1s,记录 P50/P99
  • 测量 WER(ASR)与 MOS(TTS,可近似自评)并评估异步打断(barge-in)可行性
交付物
  • 浏览器端 ASR 集成 + 语音回路 Demo
  • 各环节延迟拆解与端到端 P50/P99 报告
  • WER / MOS 质量报告与局限说明
边界 · 不做

不做端到端语音 LLM 训练;不实现真正语音打断的产品级实现(只做可行性评估)。

PROJECT 5
多模态理解与检索
实现 Hamauls Orion 的 hamauls_orion/mm/{vlm,ingest}.py 与多模态索引:VLM 做版面/图表问答、PDF→结构化段落与图表、图像 embedding 入库支持以文搜图/以图搜图,对比纯文本 RAG 与多模态 RAG 在含图表文档上的准确率,并算清图片 token 折算成本(里程碑 M11 交付物)。
要达成的效果
  • 同一批含图表文档上,多模态 RAG 相对纯文本 RAG 的问答准确率显著更高(quantified)
  • 以文搜图 / 以图搜图在自建图文对上召回可用(Top-k 命中率达标)
  • 算清图片 token 折算 + 显存峰值,给出含图表文档的成本基准
功能需求
  • mm/vlm.py:VLM/版面模型做 PDF 版面/图表问答,按图表 token 折算成本
  • mm/ingest.py:PDF → 结构化段落 + 图表,提取单图 embedding
  • 多模态索引:图像 embedding 入库支持余弦检索,归一化后与文本索引混合
  • 对比「纯文本 RAG」与「多模态 RAG」在同一含图表文档评测集上的准确率,给 bootstrap 置信区间
  • 统计含图表文档的图片 token 数(按分辨率折算)与显存峰值,输出成本核算表
交付物
  • hamauls_orion/mm/{vlm,ingest}.py + 多模态索引
  • 多模态 vs 纯文本 RAG 的准确率对比报告
  • 图片 token 折算 / 显存 / 成本核算表(M11 交付物)
边界 · 不做

不训练多模态模型;不做视频索引;不做跨语言 / 讲义的模糊检索。

常见误区

面试高频问题速答

VLM 的三种架构范式各有什么取舍?

投影式:视觉编码器 + 投影层 + LLM,实现简单、复用成熟 LLM、训练便宜,但跨模态交互浅,细粒度推理较弱。交叉注意力式:在 LLM 层间插入视觉交叉注意力,融合更深、对高分辨率细节更好,但结构改造复杂、训练与推理成本高。原生统一式:视觉与文本 token 在同一骨干做统一注意力,交互最深、可涌现视觉推理,但需要海量交错数据与算力。2026 年趋势指向原生统一。

为什么现代生成模型从 U-Net 转向 DiT?

两个原因:① 可扩展性——Transformer 能直接受益于缩放律,模型变大时生成质量持续提升,而 U-Net 的卷积归纳偏置在超大规模下收益有限;② 统一性——同一骨干可接受文本、图像、动作、相机轨迹等异构条件,从而支持视频生成、图像编辑与动作生成等统一下游,这是世界模型方向所必需的。

扩散模型和 Flow Matching 的关系?

两者都是「学一个从噪声到数据的变换」。扩散模型定义离散加噪步骤并学习去噪;Flow Matching 直接学习连续时间上的速度场,目标是把噪声点沿一条路径推到数据点。Flow Matching 训练更稳、采样步数更少、实现更简洁,因此在近两年的图像与视频模型中被广泛采用。它们在数学上可以视为同一家族的不同参数化。

视觉 token 为什么是成本关键?怎么优化?

视觉 token 数 ≈ (分辨率/切图尺寸)²。分辨率翻三倍,token 数涨九倍,而每个 token 都要过完整的注意力与 FFN,成本线性甚至更差地增长。优化手段:分辨率自适应(按任务需求降采样)、动态切图(只在需要看细节时切)、视觉 token 池化或重采样压缩、缓存重复图像、以及在路由层用小模型处理简单图像任务。

多模态模型最危险的失效模式是什么?怎么防?

视觉幻觉——描述图中不存在的内容,在医疗、金融、合规场景可能造成实际损害。防御:① 评测上单独统计幻觉率而不只报整体准确率;② 要求模型对不确定内容显式表达不确定或拒绝回答;③ 引入外部校验(OCR 引擎、结构化抽取后再比对);④ 高风险场景用人工复核;⑤ 训练数据里加入「否定的样本」以降低过度描述倾向。

学习资源

Denoising Diffusion Probabilistic Models论文 arxiv.org/abs/2006.11239 DDPM 原始论文,理解扩散模型的加噪与去噪目标。 Scalable Diffusion Models with Transformers(DiT)论文 arxiv.org/abs/2212.09748 DiT 论文,理解为什么 Transformer 骨干能带来缩放收益。 Flow Matching for Generative Modeling论文 arxiv.org/abs/2210.02747 流匹配的原始论文,配合视频生成模型的技术报告读效果更好。 Video generation models as world simulators(Sora 技术报告)报告 openai.com/research/video-generation-models-as-world-simulators 时空 patch + 扩散 Transformer 的范式说明,也讨论了世界模拟的视角。 HunyuanVideo / Wan 开源视频模型GitHub github.com/Tencent/HunyuanVideo 开源可跑的 DiT 视频模型,含 3D VAE 与工程实现细节。 Simulating the Real World(多模态生成统一综述)论文 arxiv.org/abs/2503.04641 把 2D / 视频 / 3D / 4D 生成放进「维度生长」框架,理解生成模型的统一视角。 LLaVA / Qwen-VL / InternVLGitHub github.com/QwenLM/Qwen-VL 主流开源 VLM 的代表实现,适合作为评测与微调底座。 Whisper 与 ONNX Runtime WebGitHub github.com/openai/whisper 语音识别的主力开源模型,配合 ONNX 可做浏览器端离线识别。
★
2026 形势提示:多模态是 2026 年技术榜单的榜首方向(多模态推理与生成大模型、可交互世界模型位居前列)。工程侧最直接的判断是:理解类需求(文档 / 图表 / GUI / 质检)已经可以落地,选择时重点看细粒度感知与幻觉率;生成类需求(图像 / 视频)在短片段上已可用于生产,长镜头一致性与物理合理性仍在快速改进中。掌握视觉 token 成本控制的人,在这里非常稀缺。