🏠 总目录📚 本教程 10b · 图像生成 ← →
📑 本页目录(点开跳转)

10b · 图像生成:扩散模型

⏱ 14 分钟 | ⭐ 和 LLM 完全不同的一种生成范式


🎯 一句话

LLM 是一个词一个词写出来(自回归);扩散模型是从纯噪声开始一步步擦出图像。 ⭐ 为什么图像走这条路:语言天然有顺序,图像天然没有 —— 强行自回归等于给它加一个不存在的约束。

原图纯噪声前向:一步步加噪(这一步是固定的,不用学)反向:学一个网络「预测这一步加了什么噪声」,然后减掉⭐ 模型学的不是「怎么画画」,是「怎么去掉一点噪声」——重复几十次,噪声就变成了图
向右是加噪(固定规则,不用学),向左是去噪(这才是模型学的)。⭐ 模型学的不是「怎么画画」,而是「怎么去掉一点噪声」 —— 重复几十次,纯噪声就变成了图。

⚠️ 这一页不需要先读 10 章的 VLM 部分,可以直接看。


🎨 二、图像生成(扩散模型)

生成器 G造假的判别器 D辨真假假样本真实样本G 的梯度:想骗过 DD 的目标:真的判真假的判假两个网络互为对手,谁也不能赢太多⭐ 训练目标不是「让某一方最优」,而是让两者达到【均衡】⚠️ 这就是 GAN 难训的根源:D 太强 G 学不到梯度,G 太强 D 失去区分力对比扩散模型:那边是稳定的回归目标,所以更好训 —— 这也是它后来居上的原因
两个网络互为对手:G 想骗过 D,D 想抓出 G。⭐ 训练目标不是「让某一方最优」,而是让两者达到均衡 —— ⚠️ 这也是 GAN 难训的根源:D 太强 G 学不到梯度,G 太强 D 失去区分力。对比之下扩散模型是稳定的回归目标,所以后来居上。

和 LLM 完全不同的范式:

LLM:一个词一个词地「写」出来(自回归)。
扩散模型:从纯噪声开始,一步步「擦」出图像 ——

雪花噪声t = T
→
朦胧色块…
→
轮廓成形…
→
清晰图像t = 0

训练:给干净图片加噪声,让模型学会「预测加了什么噪声」。
生成:反过来,一步步去噪。

关键组件:

组件 作用
U-Net / DiT 去噪的主干网络(DiT = 用 Transformer 做去噪,现在的主流)
VAE 把图压缩到低维「潜空间」再扩散,省算力(Latent Diffusion)
文本编码器 把提示词变成条件,引导生成方向
CFG 分类器自由引导,控制「多听话 vs 多自由」
ControlNet / LoRA 精确控制构图 / 注入特定风格(LoRA 和第 5 章同源!)

💡 为什么扩散比自回归更适合图像

关键信息

自回归生成图像:像素/patch 一个一个生成
一张 1024×1024 的图有 400 万像素,生成得等到天荒地老
而且【左上角决定右下角】这个假设对图像很别扭
扩散:所有像素【同时】一点点变清晰
全局一致性天然更好(不会左边画完右边对不上)
步数可控(20 步快、50 步精细)⭐
⭐ 根本原因:语言【天然有顺序】,图像【天然没有】

🔗 和第 2 章对照着看: 自回归适合语言是因为语言本来就是线性的; 图像没有"下一个像素"这个概念,所以强行自回归是在给它加一个不存在的约束。

⚠️ 但两者正在互相靠拢:

图像生成开始用 Transformer 做去噪主干(DiT), 而语言模型也在探索扩散式生成。"哪种范式适合哪种数据"还没有定论。


📦 深挖的话要学什么

📍 每条后面标了它在哪:📗 本库有 = 站内已经讲透,点进去就行; 📙 半有 = 站内讲了一部分;📕 要外找 = 站内没有,得去别处。

图像生成:扩散过程的数学(前向加噪/反向去噪)、DDPM→DDIM 采样加速、Latent Diffusion、DiT、ControlNet、风格 LoRA 训练、图生图/局部重绘、评估(FID/CLIP Score)

→ 📗 本库有:《扩散模型》整套 11 页就是为这一行清单写的 —— 加噪与去噪、为什么训练目标是「预测噪声」、DDIM 为什么能跳步、Latent Diffusion 省的是哪一部分算力、CFG 那个 guidance scale 在权衡什么、U-Net 与 DiT、ControlNet 与风格 LoRA、以及 FID 的四个坑。⭐ 第 1 章在二维数据上从头训一个出来,CPU 几十秒。

前置数学仍然建议先过一眼:数学原理 01b · KL散度(扩散的变分下界整个建在 KL 上,而 KL 在全站被引用过六次却直到那一章才被定义)、数学原理 13 · EM与高斯混合(变分推断的同一套思路)。15 · 数学地基 也明说了「马尔可夫链 / 变分推断——只有挖图像生成才需要」。把这两章当地基,然后去 DDPM 和 DDIM 两篇原论文。


🔗 想再深一层,去哪一套

去哪 为什么
主线 2 · 模型怎样看懂一句话 「自回归为什么适合语言」那条对照的另一半 —— DiT 用的去噪主干正是 Transformer
主线 5 · 怎样把模型变成你的助手 ⭐ 表格里那句「LoRA 和第 5 章同源」:图像风格 LoRA 和语言模型的 LoRA 是同一个低秩适配
机器学习的数学原理 01b · KL 散度 扩散模型训练目标的数学地基:变分下界那一套建在 KL 上
AI基础设施 18 · 量化 图像模型同样吃显存;量化和显存优化那一套在这里一样适用

✅ 检查点

  1. 扩散模型和 LLM 的生成范式有什么根本不同?为什么图像更适合扩散?
  2. 训练时模型学的到底是什么?生成时又反过来做什么?
  3. Latent Diffusion(把扩散放进潜空间)省的是哪一部分开销?靠什么部件实现?
  4. CFG 和 ControlNet / LoRA 各自控制的是什么?
👀 答案
  1. LLM 是自回归(一个一个生成);扩散是从纯噪声开始迭代去噪,所有像素同时变清晰。图像更适合扩散是因为语言天然有顺序,图像天然没有——强行自回归是给它加一个不存在的约束;而且扩散的全局一致性天然更好、步数可控。
  2. 训练时给干净图片加噪声,让模型学会「预测加了什么噪声」;生成时反过来,从纯噪声开始一步步去噪。
  3. 省的是扩散过程本身的算力:先用 VAE 把图压缩到低维潜空间,在那里做扩散,最后再解码回像素。去噪主干是 U-Net / DiT(DiT 用 Transformer 做去噪,是现在的主流)。
  4. CFG(分类器自由引导)控制「多听话 vs 多自由」—— 提示词的约束力有多强;ControlNet 精确控制构图,LoRA 注入特定风格。

🛑 可以停在这里

⚠️ 一条别忽略的动向:两种范式正在互相靠拢 —— 图像生成开始用 Transformer 做去噪主干(DiT),语言模型也在探索扩散式生成。「哪种范式适合哪种数据」还没有定论,所以别把「图像=扩散、语言=自回归」当成铁律。

⚡ 走神救援

先记住这几件事

下一节 👉 10c-语音与视频.md

打卡记录保存在你的浏览器里,首页能看到总进度