
<a id="n38-title"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-title)


# 想跨过中间步骤，模型需要学会什么？

王德泉 · Coding with AI · Lecture 04


<a id="n38-19d66d2f90b4"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-19d66d2f90b4)

上一页学习当前位置的运动方向。若想减少调用，只把中间几张图从屏幕上删掉没有用；模型必须学到足以支持长距离更新的关系。这里比较两种不同的学习任务。


<a id="n38-69c381e59257"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-69c381e59257)

第一种把同一条生成轨迹上不同阶段的状态，都映射到一致的数据端点。想象沿同一条路站在三个位置，问“沿这条路最后到哪里”，答案应相容。Yang Song、Prafulla Dhariwal、Mark Chen 与 Ilya Sutskever 的 [Consistency Models](https://arxiv.org/abs/2303.01469) 研究这类跨阶段一致性，以支持一步或少步生成。


<a id="n38-0948090b7ae2"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-0948090b7ae2)

**“不同阶段都指向同一张图，岂不是所有噪声都只能生成它？”** 约束比较的是同一轨迹上的阶段。另一条轨迹可以通向另一张图；没有要求所有随机起点共享同一个终点。这项“同轨迹终点”约束，也不能直接替换成普通受损图监督下所有合理干净来处的条件平均；两者定义的学习关系不同。若不区分“同一路上的位置”和“全体样本”，就会把一致性误读成模式坍缩。


<a id="n38-d2c5401a052c"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-d2c5401a052c)

还要问谁提供路线关系。一致性蒸馏可以利用预训练扩散模型；直接一致性训练则从数据与相邻噪声阶段构造训练关系。直接训练没有现成教师，不等于不需要目标分支、边界条件或稳定的训练设计。这两条路线的前置成本与监督来源应分开说明。


<a id="n38-cea0edc3a3ab"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-cea0edc3a3ab)

第二种把“这次要跨多远”直接交给模型。[Shortcut Models](https://arxiv.org/html/2410.12557v3) 由 Kevin Frans、Danijar Hafner、Sergey Levine 与 Pieter Abbeel 提出：对同一起点，比较一次大跨度更新与连续两次半跨度更新的结果是否相容，并以小步的方向监督作为基础。跨度改变时，网络回答的任务也改变；不是把同一个局部箭头机械乘大。


[课程图解] 跨度进入网络任务；大步结果与两半步结果接受相容性比较。；图中标签与关系：把“跨多远”也作为输入 同一起点 网络 + 大跨度 一大步端点 半步中间态 两半步端点 比较端点 Shortcut 当前表示 → 模型预测 → 更新规则 → 下一状态 跨区间一致性
跨度进入网络任务；大步结果与两半步结果接受相容性比较。


<a id="n38-a1b6dcf52286"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-a1b6dcf52286)

**“用模型自己的小步结果教大步，会不会把错误一起学进去？”** 这是需要关注的风险。组合一致性使不同步长之间相互约束，却不能凭空保证小步方向已经正确。因此数据提供的基础监督、训练过程与最终样本评价都仍然重要。课堂箭头解释的是约束，不能据它宣布某个一步结果已经与多步质量相同。


<a id="n38-30cc1e844d7d"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-30cc1e844d7d)

下一页再比较一种跨段预测对象：不只询问终点或步长相容，而是直接学习指定区间上的平均变化。


<a id="n38-process-key"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-process-key)


## 同一生成循环，本页改变跨区间一致性

当前表示 → 模型预测 → 更新规则 → 下一状态 跨区间一致性


<a id="n38-states"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-states)


## 画面怎样推进


<a id="n38-b0"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-b0)

减少显示帧并不减少计算，跨段生成需要相应学习能力。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N38.html?step=b0)


<a id="n38-b1"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-b1)

Consistency要求同一轨迹上不同阶段指向相容终点，不把全部起点绑定到同一图。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N38.html?step=b1)


<a id="n38-b2"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-b2)

Shortcut把跨度作为输入，比较一次大步和连续两半步的终点相容性。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N38.html?step=b2)


<a id="n38-materials"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-materials)


## 继续阅读与实验


<a id="n38-learning-unit-001"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-learning-unit-001)


## “同一终点”约束的是一条轨迹，还是所有样本？


<a id="n38-learning-unit-002"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-learning-unit-002)

假设路线A的两个阶段都应通向一张红杯，路线B则通向另一张蓝杯。Consistency比较路线A内部不同阶段的终点是否相容，并不要求A与B共享一张图。数据端边界条件还要保证已到达数据时保留其结果；只有一致性、没有边界和监督，也可能得到无用常数。


<a id="n38-learning-unit-003"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-learning-unit-003)

Shortcut另问一次大跨度与连续两个半跨度是否协调，并把跨度交给网络。若半步方向已经错了，大步与它一致仍会错；因此基础方向监督和最终分布检查不能撤掉。蒸馏与直接训练的路线关系来源不同，也要分别读清。


<a id="n38-learning-unit-004"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-learning-unit-004)

接着读：[跨阶段一致性与跨度学习](https://codingai-lec04.pages.dev/lecture.html#ch05-consistency)。


<a id="n38-chapter-reading"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-chapter-reading)


### [CLS 05 · 扩散：训练、采样与少步生成](https://codingai-lec04.pages.dev/lecture.html#ch05)

按连续正文理解这条方法的训练信号、使用过程与算例；数学与实践在相关问题旁展开。

先看：第5章，从对象和问题开始


<a id="n38-lab09-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-lab09-practice)


### [LAB 09 · 学得去噪器与完整采样](https://codingai-lec04.pages.dev/course/notebooks/e6fcbdfe3ca2418c9ed09344b4ae2b33.html)

固定初始噪声，仅改采样步数；把网络近似误差与数值步进误差分开。

先看：先看保存结果与读图解释


<a id="n38-lab05-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-lab05-practice)


### [LAB 05 · 扩散的条件均值与流积分](https://codingai-lec04.pages.dev/course/notebooks/be6db259db4f48478c7481ab51129971.html)

先读本册保存结果，再按实现顺序核对一个算例；最后只改一个变量。

先看：先看保存结果与读图解释


<a id="n38-material-1"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-material-1)


### [Consistency Models](https://arxiv.org/abs/2303.01469)

把一致性蒸馏和直接训练分开，找出各自的路线信息与训练目标来自哪里。

先看：第3节与第4节


<a id="n38-material-2"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N38.html#n38-material-2)


### [One Step Diffusion via Shortcut Models](https://arxiv.org/html/2410.12557v3)

追踪步长条件、一大步和两半步相容性，理解它与局部速度监督的关系。

先看：第3节及图2、图3

