正式部署蒸馏 · Kokoro-FastGen-DMD · 2026-10-31 起 · zptxbx 8 × H200

正式部署蒸馏:交付用的 4 步学生

教师是当前的 CFG 蒸馏模型(主线 74000 + CFG LoRA),方法沿用方法探索阶段的 ODE-init → TDM。第一轮正式训练越训越偏离教师;两组消融排除了引导强度和 Huber 损失,之后用 fake : 学生 4 : 1 加样本层面的锚点重训到 2000 步,再在新教师上跑一版方法探索阶段最接近教师的 DP-DMD。

4步
学生前向次数,不需要多路 CFG;教师 40 步
7.6万
训练样本:CFG 蒸馏数据的子集(含用户真实请求 5,208 条)
2组消融
教师 cfg 3、Huber c 0.1,都没有改善
—
读取中…
01

进度

进行中

训练机每 30 分钟自动更新(读取中…)。

读取 formal.json…
02

进展与结论

阶段改了什么结果(EMA;对比度、偏离教师越接近 1 / 0 越好)
正式训练ODE-init 500 → TDM 3000 步,fake : 学生 1 : 1结构干净,但越训越偏离教师(偏离 0.126 → 0.173)、对比度越来越高(1.15 → 1.21),复杂画面被简化;最接近教师的是 500 步
消融 ①教师 cfg 4 → 3✗ 1000 步对比度 1.19(正式 1.14)、偏离 0.150(0.144);不采用
消融 ②Huber c 1e-3 → 0.1✗ 1000 步对比度 1.16、偏离 0.154,看图与正式训练几乎一样;不采用
正式重训练fake : 学生 4 : 1 + 第 1 步锚点(λ 0.6,1000 步后余弦降到 0.3);计划 2500 步,按用户要求训到 2000 步停训练中
DP-DMD方法探索阶段最接近教师的配方 2 原样换到新教师:学生从教师起步,第 1 步只学教师锚点(detach),DMD 只管第 2–4 步,fake : 学生 5 : 1,1000 步排队
训练设置与数据
教师主线 74000 EMA + CFG 蒸馏 LoRA(秩 128)第 10000 步 EMA,合并成完整权重;cfg 嵌入 4(推荐推理口径:40 步、shift 3,CFG 区间与 global renorm 已在 LoRA 的训练目标里)。学生、fake 从同一权重起步,不接 cfg 嵌入,推理时没有 CFG 旋钮
学生4 步,时间表 1 → 0.9 → 0.75 → 0.5 → 0(shift 3)
ODE-init500 iter,lr 2e-6;学生在 4 个时间点上回归教师 40 步的终点
TDM学生 lr 4e-6、fake lr 2e-5,β (0, 0.95),学习率余弦降到 0,pseudo-Huber c 1e-3,fake 权重 f = 1;8 × H200,每 iter 32 条,每 500 iter 存一档
数据CFG 蒸馏数据 sel600k v3(8 格均衡:t2i / i2i × SFW / NSFW × 动漫 / 真人,另加用户真实请求)的子集:包样本 71,053、用户请求 5,208,i2i 占一半。原 tar 已删,按清单回源重建,元数据全部与清单 sha256 一致;蒸馏从纯噪声展开,只用 prompt 和参考图
03

损失曲线

ODE-init 回归损失

对数纵轴;k0–k3 是学生 4 个时间点各自的 MSE。

TDM 损失

损失不直接反映出图好坏;训练是否健康主要看训练内预览(在 W&B,含训练数据,不放本页)。

04

评测

heldout15 × 3 个种子,4 步;图只放 8 条非成人用例,指标按全部 15 条算。除锐度外都以「教师 40 步同条同种子」为 1;偏离教师 = 缩到 128×128 后与教师同种子出图的像素 L1(0 = 同图)。

读取中…

05

记录

训练 run(= W&B 分组)内容W&B进度结论

代码与文档:GitHub BoltzMamba/Kokoro-FastGen-DMD 分支 dpdmd_tdm_pdd,方法文档 §3.9–3.11、实验文档 §1 与结论 15–17。W&B 项目 lovashi514-nus/bagel_step_distill。