如果把生成图像比作装修房子,扩散模型就是一支按部就班的装修队:从毛坯水泥墙开始,刮腻子、刷底漆、贴瓷砖、装吊顶……每一道工序只改变一点点,甚至每刷一遍漆都要等它干透,几十上百道工序之后,才终于交付一套精装房。而 Consistency Model(一致性模型)像一位从业三十年的老工长,站在毛坯房里扫一眼,就能直接“脑补”出三个月后精装交付的样子,甚至一步画出完整设计方案——这就是“少步生成”的魔法。 这篇文章会带你认识这位“老工长”:它为什么能一眼看穿全程(一致性思想),它的“火眼金睛”长什么样(一致性函数),两种培育方式有什么区别(一致性训练 vs 一致性蒸馏),以及它在实际项目中跑得有多快、还有什么短板。所有公式都会像“装修验收单”一样逐行拆解,不怕数学。
掌握 Consistency Model,你就能在图像/视频生成项目中把推理时延从秒级压缩到毫秒级,这是部署实时 AIGC 产品的关键技术能力。
目录
可视化演示
动态演示Consistency Mo的核心机制,通过架构/数据/状态/性能四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
Consistency Mo:Cons Consistency Mod Consistency Tra 核心机制可视化 Consistency Mo整体架构与关键组件
扩散模型回顾(装修队为什么这么慢)
想象一支装修队拿到毛坯房,工作流程是:刮腻子,等干透;刷底漆,等干透;上面漆,再等……每道工序之间还要停下来检查、测量、返工。扩散模型的反向去噪就像这支装修队——每一步只消除一点点噪声,然后让神经网络(相当于装修监理)判断下一步动作,循环几十上百次。
在技术上,扩散模型把生成建模为“去噪的马尔可夫链”。前向过程把一张干净图片逐步加高斯噪声,直到变成纯噪声;反向过程训练一个网络,从当前带噪图像预测噪声并一步步还原。每一步都要跑一次网络前向推理:30 步就是 30 次,1000 步就是 1000 次——这就是“慢”的根源。
以 DDPM 为代表的反向更新公式如下:
装修队每道工序都“等油漆干”,扩散模型每步都跑一遍网络——工序越多越慢。所以客户开始琢磨:能不能请一位老工长,直接跳过中间几十道工序?
- 当前状态\( \mathbf{x}_t \) 是施工进行到第 t 步的半成品,噪声还很多。
- 缩放系数\( \frac{1}{\sqrt{\alpha_t}} \) 把材料用量按工序标准“回缩”到下一步的基准线。
- 噪声预测\( \epsilon_\theta(\mathbf{x}_t, t) \) 是监理判断“当前画面里哪些是瑕疵”,也就是模型要预测的噪声。
- 剥除权重\( \frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}} \) 决定这一步应该刮掉多少“腻子”,是信号与噪声的平衡比例。
- 随机扰动\( \sigma_t\,\mathbf{z} \) 是工艺上的随机微调,让每次施工结果不完全相同。
一致性思想(老工长的透视眼)
老工长为什么快?因为他心里有终点的完整画面。无论工地处于毛坯、半成品还是返工现场,他都能直接说出最终交付图的样子。而普通装修队只会“走一步看一步”,每一步都依赖上一道工序的结果。Consistency Model 的核心思想正是如此。
技术上讲,CM 学习一个函数 \( f(\mathbf{x}_t, t) \),把概率流 ODE 轨迹(从噪声到数据的连续路径)上的任意状态,直接映射到轨迹终点 \( \mathbf{x}_0 \)(干净数据)。这个性质叫自洽性:同一轨迹上的任意两个点,经过 \( f \) 映射后得到同一个结果。
自洽条件可以写成:
老工长的“透视眼”本质是把整条施工轨迹“压扁”成一张最终效果图——轨迹上任何一点,都能直达终点。这正是 CM 能单步生成的根基。
- 一致性函数\( f \) 是“老工长的火眼金睛”,输入工地状态和工期,输出最终交付图。
- 任意状态对\( (\mathbf{x}_t, t) \) 与 \( (\mathbf{x}_{t'}, t') \) 是同一轨迹上任意两个不同阶段的施工状态。
- 等号两个状态的预测结果必须相等,这是自洽性的灵魂。
- 全时间范围\( \forall\, t, t' \in [0, T] \) 表示从刚开工(0)到完全破坏(T)的任何时刻都要成立。
一致性函数(火眼金睛长什么样)
老工长的眼睛不是天生的,而是一套可训练的方法。给他的输入是“当前房子状态 + 施工进行到第几天”,他的输出是“最终精装交付的样子”。这个输入输出关系,就是一致性函数 \( f \)。
形式上,一致性函数 \( f: (\mathbf{x}_t, t) \mapsto \mathbf{x}_0 \)。它必须满足两个关键约束:一是可学习的网络(通常用 UNet 或 MLP);二是边界条件——当 \( t=0 \) 时,数据已经干净,函数必须输出输入本身,防止“画蛇添足”;当 \( t=T \) 时,纯噪声也要能映射到干净数据。
边界条件可写成:
老工长的“火眼金睛”其实是一套标准动作:看一眼现状、确认工期、直接画交付图;若工期为 0,房子已经完工,照搬就行。有了这个函数,单步采样就只是“调用一次网络”而已。
- 零时刻恒等\( f(\mathbf{x}, 0) = \mathbf{x} \) 表示 t=0 时房子已经是精装,输出就是输入。
- 最大噪声映射\( f(\mathbf{x}_T, T) = \mathbf{x}_0 \) 表示从完全被破坏的毛坯/废墟也能直接给出最终方案。
- 参数化\( f \) 通常用神经网络参数化,训练的目标就是让它在所有时间步上满足自洽。
一致性训练(从零培养新工长)
公司想批量培养老工长,不能只靠天赋,得从零训练新员工。一致性训练(Consistency Training,CT)正是这样:不需要现成的老师傅,只给学员看大量“装修案例”(真实图片),让他们反复练习“任意施工阶段 → 最终效果”。
CT 的关键是把连续时间离散化:把 \([0, T]\) 切成 N 个时间步,随机采样相邻两步 \( t_n \) 与 \( t_{n+1} \)。训练时,把同一个干净数据 \( \mathbf{x}_0 \) 加噪到这两个时刻,要求模型在两个状态上的输出一致。随着训练进行,N 从 2 逐渐增大到上千,模型学到越来越精细的自洽映射。
CT 损失函数:
其中 \( \hat{\mathbf{x}}_{t_n}^{t_{n+1}} = \mathbf{x}_{t_{n+1}} + (t_n - t_{n+1})\,\epsilon_\theta(\mathbf{x}_{t_{n+1}}, t_{n+1}) \)。
新工长每天拿“同一套房不同施工阶段”的照片反复练习,练到条件反射——这就是 CT 路线:零基础培养,成本高但无需预训练模型。
- 损失总称\( \mathcal{L}_{\text{CT}}(\theta) \) 是训练新工长的考核指标,数值越低,自洽性越好。
- 距离度量\( d(\cdot, \cdot) \) 是衡量两个预测差多少的“尺子”,常用 L2 距离。
- 较噪状态\( f_\theta(\mathbf{x}_{t_{n+1}}, t_{n+1}) \) 是模型在更乱施工阶段给出的方案。
- 较净状态\( f_\theta(\hat{\mathbf{x}}_{t_n}^{t_{n+1}}, t_n) \) 是模型在更整齐阶段给出的方案,两者必须一致。
- 状态估计\( \hat{\mathbf{x}}_{t_n}^{t_{n+1}} = \mathbf{x}_{t_{n+1}} + (t_n - t_{n+1})\,\epsilon_\theta(\cdots) \) 是用模型预测的噪声,把工地“倒放”一小段录像得到的相邻状态。
一致性蒸馏(老工长带徒弟)
与其从零培养,不如让出师的老师傅亲自带徒弟。一致性蒸馏(Consistency Distillation,CD)正是如此:先花大力气训练一支资深装修队(扩散模型),再让这支装修队当“示范老师”,把几十上百步的经验浓缩到新工长(一致性模型)的学生网络里。
CD 中,教师是预训练好的扩散模型 \( \epsilon_\phi \),负责提供“标准答案”;学生是待训练的一致性网络 \( f_\theta \)。训练时,用教师预测的噪声构造相邻时间步状态,然后约束学生在这两个状态上的输出一致;同时用 EMA 教师 \( f_{\theta^-} \) 提供稳定的回归目标,防止训练震荡。
CD 损失函数:
其中 \( \hat{\mathbf{x}}_{t_n}^{t_{n+1}} = \mathbf{x}_{t_{n+1}} + (t_n - t_{n+1})\,\epsilon_\phi(\mathbf{x}_{t_{n+1}}, t_{n+1}) \)。
老师傅做标准动作,徒弟模仿“同一阶段直接出交付图”的诀窍。CD 路线收敛更快、质量通常更高,因为站在了预训练扩散模型的肩膀上。
- 学生输出\( f_\theta(\mathbf{x}_{t_{n+1}}, t_{n+1}) \) 是徒弟在较乱阶段的判断。
- 教师目标\( f_{\theta^-}(\hat{\mathbf{x}}_{t_n}^{t_{n+1}}, t_n) \) 是 EMA 教师(老师傅的稳定版本)在较净阶段给出的标准答案。
- 教师噪声预测\( \epsilon_\phi(\mathbf{x}_{t_{n+1}}, t_{n+1}) \) 是预训练扩散模型判断“瑕疵在哪里”,用来构造标准状态。
- EMA 教师\( f_{\theta^-} \) 是学生参数的指数滑动平均,相当于老师傅积累多年的稳定手感。
采样与加速(验收时刻的取舍)
老工长虽然能“一眼出图”,但遇到豪宅别墅,他也会多转两圈、微调几笔再交付。一致性模型同样可以灵活选择“看一眼就画”还是“多检查几遍”——这就是采样步数的权衡。
CM 的采样出奇简单:从先验噪声 \( \mathbf{x}_T \sim \mathcal{N}(0, \mathbf{I}) \) 出发,直接令 \( \hat{\mathbf{x}}_0 = f_\theta(\mathbf{x}_T, T) \),一次前向完成生成。如果想要更高保真度,可以做 2~8 步迭代:跳到 \( \mathbf{x}_0 \) 后,再加一点噪声回到稍早时间步,再跳一次,逐步细化细节。
单步采样公式:
性能对比很直观:扩散模型要 50~1000 次网络前向,CM 只需 1~8 次,端到端时延降低一到两个数量级。代价是单步下边缘分布与真实数据略有偏差。验收时要不要老工长多转两圈?多转更稳,但“一眼交付”已能覆盖绝大多数实时场景。
- 生成结果\( \hat{\mathbf{x}}_0 \) 是模型给出的精装交付图(生成的干净图像)。
- 一致性网络\( f_\theta \) 是训练好的老工长(学生一致性模型)。
- 纯噪声输入\( \mathbf{x}_T \) 是施工最早期——完全毛坯/废墟状态的样本。
- 最大时间步\( T \) 表示噪声最强的那个时刻,相当于“工地被完全推平”。
应用与对比(不同装修队的方案)
现在市场上有两支装修队:传统扩散队(慢工出细活)和一致性老工长(快而稳)。客户怎么选?看场景——精装豪宅可以等,直播装修必须快。
实践中最有影响力的路线,是在扩散模型的潜在空间上做一致性训练,即潜在一致性模型(LCM)。它先让 VAE 把图像压缩成“户型图”(潜在特征 \( \mathbf{z} \)),再在潜在空间里学一致性映射,因此能在消费级 GPU 上实现 1~4 步出图。代表工作有 LCM-LoRA、SDXL-Turbo;在视频领域,少步生成把逐帧扩散的成本大幅压缩,让实时视频生成成为可能。
潜在空间的一致性目标:
对比来看,在相同极少步数下,CM 的 FID(生成质量指标)通常远优于直接对扩散模型做短步采样;但扩散模型跑足 1000 步的极致质量仍暂时领先。选装修队不是选“谁更好”,而是选“匹配场景”:要极致细节找慢工队,要实时交互找老工长。
- 潜在变量\( \mathbf{z} \) 是图像经过 VAE 编码器压缩后的“户型图”,尺寸远小于原图。
- 编码器\( \mathcal{E}(\mathbf{x}) \) 是“量房师”,把高分辨率图像变成紧凑潜在表示。
- 潜在一致性\( f_\theta(\mathbf{z}_t, t) = \mathbf{z}_0 \) 表示在潜在空间里,任意噪声状态都映射到干净的潜在表示。
局限与展望(老工长也有短板)
老工长再厉害也有失手的时候——单步出图偶尔会在复杂纹理上翻车,比如人物手部细节、复杂文字渲染。为什么?因为从毛坯直接跳到精装,中间省略了太多信息核对。
从数学上看,一致性模型的误差主要来自两点:时间步离散化的精度和单步跳跃对概率流 ODE 的近似程度。当轨迹曲率较大时,一步近似误差会被放大;此外,CM 的模式覆盖能力有时不如充分采样的扩散模型,罕见但重要的分布尾部容易被忽略。
误差上界可以近似写成:
未来方向也很清晰:用更密集的自适应时间网格、与 GAN/自回归模型混合互补、在 3D 和视频扩散模型上做蒸馏、设计更鲁棒的训练目标。老工长还在进化,公司正用“更多案例 + 更细节点检查 + 混合团队”来补短板。
- 误差大小\( \| f_\theta(\mathbf{x}_t, t) - \mathbf{x}_0 \|_2 \) 表示模型交付图与真实精装图之间的差距(L2 距离)。
- 偏差上限\( L \) 是 Lipschitz 常数,可以理解为老工长“手抖”的最大幅度。
- 时间间隔\( \Delta t \) 是相邻两次检查节点之间的时间差。
- 不等式方向误差随着时间间隔增大而变大——检查节点越密,误差越小。
AI 应用场景
实时文生图与设计工具
阶段:模型推理与部署
解决的问题:传统扩散模型在普通显卡上生成一张 512×512 图片需要 2~10 秒,设计师每次修改 prompt 都像“等油漆干”,交互体验很差。一致性模型把采样步数从 30~50 步压到 1~4 步,端到端延迟降到 0.1~0.5 秒,让“边输入边出图”成为可能。
具体案例:某 AI 绘画插件采用潜在一致性模型(LCM)做实时预览:用户每敲一个关键词,画面在 0.3 秒内刷新;确认风格后,再调用完整扩散模型做精修出图。这套“秒级预览 + 慢工精修”的混合管线,既保速度又保质量。
视频生成与实时滤镜
阶段:模型训练与推理
解决的问题:视频是逐帧生成的,30 帧视频用扩散模型要跑 \( 30 \times 50 = 1500 \) 次网络前向,几乎无法实时。一致性模型把每帧采样降到 1~2 步,总成本缩小一个数量级以上,为直播级视频生成铺平道路。
具体案例:某短视频平台在动画特效模块中,用一致性蒸馏后的视频扩散模型让用户上传照片后 1 秒内生成 8 帧“照片动起来”的短片;同时把一致性模型接入直播滤镜,实现实时风格迁移,主播抬手就有动态特效。
Python 演示
import torchimport torch.nn as nn def diffuse(x0, t, sigma=0.5): """给干净数据 x0 加噪,t 越大噪声越强""" eps = torch.randn_like(x0) return x0 + sigma * t * eps, eps def adjacent_states(x0, t1, t2, sigma=0.5): """构造同一条噪声轨迹上的两个状态 x1(较早) 和 x2(较晚)""" eps = torch.randn_like(x0) x1 = x0 + sigma * t1 * eps x2 = x0 + sigma * t2 * eps return x1, x2 class ConsistencyNet(nn.Module): """极简一致性网络:输入(带噪样本, 时间步),输出预测的干净样本""" def __init__(self): super().__init__() self.net = nn.Sequential( nn.Linear(3, 64), nn.ReLU(), nn.Linear(64, 64), nn.ReLU(), nn.Linear(64, 2), ) def forward(self, x, t): return self.net(torch.cat([x, t], dim=1)) def train_ct(model, opt, x0, t1, t2, sigma=0.5): """一致性训练一步:同一轨迹两个相邻状态,约束模型输出一致""" x1, x2 = adjacent_states(x0, t1, t2, sigma) pred1 = model(x1, t1) pred2 = model(x2, t2) loss = ((pred1 - pred2) ** 2).mean() opt.zero_grad() loss.backward() opt.step() return loss.item() def main(): torch.manual_seed(0) model = ConsistencyNet() opt = torch.optim.Adam(model.parameters(), lr=1e-3) center = torch.tensor([0.0, 3.0]) # 真实数据分布中心 for step in range(1500): x0 = torch.randn(256, 2) + center # 采样一批真实数据 t1 = torch.rand(256, 1) * 0.8 # 较早时间步 t2 = t1 + 0.15 * torch.rand(256, 1) + 0.05 # 稍晚时间步 loss = train_ct(model, opt, x0, t1, t2) if step % 300 == 0: print("step", step, "loss", round(loss, 4)) # 单步生成:从纯噪声直接预测干净样本 noise = torch.randn(8, 2) t = torch.ones(8, 1) # 最大噪声时间 T=1 samples = model(noise, t) print("单步生成样本均值:", samples.mean(dim=0).tolist()) print("真实数据期望 :", center.tolist()) if __name__ == "__main__": main()
x1, x2 = adjacent_states(x0, t1, t2, sigma)让同一个“干净房屋”沿同一噪声方向折旧到两个相邻工期,保证两者来自同一条轨迹。pred1 = model(x1, t1)老工长看较乱阶段的工地,给出精装预测。pred2 = model(x2, t2)老工长看稍好一点的工地,也必须给出同样预测。loss = ((pred1 - pred2) ** 2).mean()自洽性约束:两次判断不能打架。samples = model(noise, t)单步生成:从纯噪声直接输出样本,均值应接近真实数据中心[0.0, 3.0]。
常见误区
误区“Consistency Model 就是一步生成,既然只能一步,那质量上限肯定很低,没法做精细生成。”
正解CM 虽然为单步而设计,但完全支持 2~8 步迭代采样,而且多点迭代能逐步修正细节、明显提升 FID。就像老工长虽然能一眼给方案,但遇到豪宅也会多转两圈、微调后再交付。单步只是“最快模式”,不是唯一模式。
为何常见:因为 CM 的招牌卖点就是“单步生成”,宣传中容易把“支持单步”误读成“只能单步”。
误区“一致性蒸馏和知识蒸馏是一回事,都是把大模型压成小模型,学生参数更少、速度更快。”
正解两者目标不同。知识蒸馏让学生模仿教师的输出分布,通常学生更小;一致性蒸馏则是从预训练扩散模型中提取“任意状态 → 终点”的自洽映射,学生网络的结构可以和教师一样大,甚至就是同一个模型换训练目标。CD 压缩的不是模型体积,而是采样步数。
为何常见:都叫“蒸馏”,都有教师和学生两个角色,名字上的相似让人以为是一件事。
误区“既然 Consistency Training 直接从数据学、不需要预训练扩散模型,那肯定比 Consistency Distillation 更快,效果也更好。”
正解CT 确实不需要预训练扩散模型,但它要从零学会整条轨迹的自洽映射,离散化网格要从很小逐步增大,训练往往更难收敛、成本并不低;CD 站在预训练扩散模型的肩膀上,目标更明确,通常用更少训练步数就能达到更好的少步生成质量。两条路线各有适用场景,不能简单说谁更快。
为何常见:人们容易把“不需要预训练教师”等同于“成本更低”,却忽略了从零学习一个全局自洽映射本身的难度。
误区“少步生成一定是拿画质换速度,所以一致性模型生成的图像质量肯定不如扩散模型。”
正解在极少步数(1~2 步)下,CM 的 FID 通常显著优于用同样步数强行采样扩散模型;但当扩散模型跑到 1000 步的极限质量时,CM 在部分复杂数据集上仍略逊。这不是“谁绝对好”的问题,而是“同等步数下谁更快更好”与“极限质量谁更高”两个不同赛道。
为何常见:直觉上“步数少 = 信息少 = 质量差”,忽略了 CM 是把整条轨迹的信息压缩进一个函数里,而不是简单砍掉几步。
面试题
Q1. Consistency Model 的核心目标是什么?
- A.加速扩散模型的训练过程
- B.让噪声直接映射到干净数据← 正确答案
- C.减少模型的参数量
- D.提升图像的分辨率
答案:B。CM 学习一个把任意噪声状态映射到干净数据的函数 f(x_t, t)=x_0,从而支持单步/少步生成。A 是训练优化话题,C 是模型压缩,D 是超分辨率任务,都不符合 CM 的核心目标。
Q2. 一致性函数 f(x, 0) 在 t=0 时满足什么条件?
- A.输出等于输入自身← 正确答案
- B.输出等于全零向量
- C.输出等于模型噪声
- D.输出等于随机采样
答案:A。t=0 时数据已经干净,函数应当“照搬现状”,即 f(x,0)=x。这个边界条件保证模型在无噪声时不会画蛇添足。B、C、D 都会破坏恒等映射的基本要求。
Q3. 自洽性要求同一轨迹上的两个状态满足什么关系?
- A.两个状态的输出相等← 正确答案
- B.两个状态的输出递增
- C.两个状态的输出相反
- D.两个状态的输出无关
答案:A。自洽性规定 f(x_t,t)=f(x_{t'},t'),即同一 ODE 轨迹上的任意两个状态,经过一致性函数映射后都指向同一个终点 x_0。这就像老工长在不同工期看同一套房,给的最终方案必须一致。
Q4. Consistency Training 的损失函数主要约束什么?
- A.相邻时间步输出差异← 正确答案
- B.模型输出与标签交叉熵
- C.生成样本的对抗损失
- D.预测噪声的均方误差
答案:A。CT 把时间离散化后,随机采样相邻两步,要求模型对这两个状态的预测一致,即用 L2 距离度量相邻输出差异。B 是分类任务目标,C 是 GAN 目标,D 是扩散模型的噪声预测目标。
Q5. Consistency Distillation 需要什么样的教师?
- A.预训练好的扩散模型← 正确答案
- B.随机初始化的小网络
- C.任意图像生成模型
- D.训练好的自编码器
答案:A。CD 必须先用传统方式训练一个扩散模型作为教师,用它的噪声预测构造标准状态,再让学生学习自洽映射。B 没有可蒸馏的知识,C 太宽泛,D 自编码器不提供去噪轨迹,均不满足要求。
Q6. 为什么一致性训练要把时间步离散化?
- A.自洽条件无法全部枚举← 正确答案
- B.GPU 并行需要固定尺寸
- C.减少训练数据需求量
- D.避免模型产生过拟合
答案:A。自洽性理论上要求 [0,T] 内任意两个时间步的输出都相等,但连续时间是无穷无尽的,只能通过离散化网格采样有限个相邻状态对来近似。B、C、D 都不是离散化的根本原因。
Q7. 一致性函数的自洽性直接源于哪个数学对象?
- A.概率流 ODE 的积分曲线← 正确答案
- B.随机梯度下降的收敛点
- C.马尔可夫链的平稳分布
- D.VAE 的重构损失函数
答案:A。CM 建立在扩散模型的概率流 ODE 上:沿 ODE 的积分曲线,每个状态都对应同一个起点 x_0,自洽性正是对这一几何事实的参数化逼近。B 是优化过程,C 是马尔可夫性质,D 是自编码器目标,都不对应轨迹积分。
Q8. 关于少步生成的好处,以下说法正确的有?
- A.推理时延大幅降低← 正确答案
- B.采样步数降到个位← 正确答案
- C.无需训练即可生效
- D.生成质量一定更高
答案:AB。CM 把采样步数从扩散模型的几十上百步降到 1~8 步,网络前向次数大幅减少,时延随之降低,A、B 正确。C 错误——CM 必须经过训练或蒸馏;D 错误——少步生成是与质量权衡的,不是一定更高。
Q9. 实践中想提高一致性模型的生成质量,哪些做法有效?
- A.使用多步采样迭代← 正确答案
- B.加密时间步离散化← 正确答案
- C.移除 EMA 教师网络
- D.缩小噪声调度范围
答案:AB。多步迭代(如 2~8 步)能逐步修正细节,加密离散化网格能减小相邻步近似误差,A、B 正确。C 错误——EMA 教师能稳定训练目标,去掉通常会变差;D 错误——简单缩小噪声调度范围会破坏前向过程完整性,反而损害生成质量。
Q10. 关于 Consistency Distillation,下列说法正确的是?
- A.教师用预训练扩散模型← 正确答案
- B.学生学会单步跳跃采样← 正确答案
- C.教师参数用 EMA 更新← 正确答案
- D.学生必须比教师规模小
答案:ABC。CD 用预训练扩散模型做教师(A 对),学生一致性网络学会从噪声直接跳跃到数据(B 对),训练过程中教师通常用 EMA 版本提供稳定目标(C 对)。学生网络在结构上不一定比教师小(D 错),CD 压缩的是采样步数而非模型尺寸。