| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 14 天前 | ||
[Feat] 架构实现及DMD蒸馏流程初始化 Co-authored-by: Zijun Huang<zijunhua@usc.edu> # message auto-generated for no-merge-commit merge: !3 merge master into master [Feat] 架构实现及DMD蒸馏流程初始化 Created-by: Huangzjun Commit-by: Zijun Huang Merged-by: ascend-robot Description: ## Summary FlashGen 是一个面向 **昇腾 Ascend NPU** 的扩散模型蒸馏框架,当前支持在 NPU 上对 **Wan 2.1 T2V 1.3B** 进行 **DMD2(Distribution Matching Distillation)** 多步蒸馏。 本 PR 的核心设计是保持 FlashGen 足够轻量:FlashGen 只实现蒸馏算法、模型适配与配置入口,训练基础设施如 Trainer、分布式、优化器、checkpoint、EMA、pipeline 等均复用已安装的 fastvideo。两者通过 YAML 配置中的 _target_ 字符串在运行时动态连接,FastVideo 无需直接引入 FlashGen 代码。 --- ## Architecture FlashGen 采用分层解耦设计,只保留算法与模型扩展层: text flashgen/ ├── configs/ # 运行配置:YAML + _target_ 动态实例化 ├── networks/ # 模型插件:WanModel,继承上游模型并覆盖 NPU 必需行为 ├── methods/ # 蒸馏算法:DMD2Method,编排 student / teacher / critic ├── datasets/ # 数据格式扩展点,默认复用 FastVideo parquet 数据格式 └── entrypoint # NPU 环境初始化,并委托 FastVideo 训练循环 关键边界: * FlashGen 负责模型与算法逻辑; * FastVideo 负责通用训练基础设施; * 模型、算法和训练组件通过 YAML _target_ 解耦; * 替换模型或蒸馏方法时,原则上只需修改配置,无需改动 FastVideo 主训练框架。 --- ## DMD2 Distillation 当前实现的 DMD2 蒸馏链路包含: * **三角色编排** * frozen teacher:提供真实分布分数; * trainable student:作为少步生成器; * trainable critic:估计 fake score。 * **两类训练损失** * DMD distribution matching loss:用于更新 student; * flow matching loss:用于更新 critic。 * **可配置训练策略** * 支持 student rollout / simulate rollout; * 支持 generator_update_interval 控制 student 与 critic 的交替更新; * 支持 CFG guidance; * 支持自定义少步去噪 schedule。 --- ## Ascend NPU Adaptation 本 PR 针对 Ascend NPU 做了以下适配: * 惰性激活 torch_npu,避免在非 NPU 环境中强绑定; * 注意力后端固定为 Torch SDPA; * 将 CUDA 专用算子路径隔离为可选逻辑; * 修复 NPU 环境下的 checkpoint RNG 保存逻辑; * 支持多卡 NPU 训练中的 EMA、checkpoint 保存与 DCP 导出; * 支持离线 negative prompt 预编码,避免多 rank 在线文本编码带来的同步问题。 --- ## Supporting Utilities * **配置驱动训练**:单份 YAML 声明模型、方法、训练参数与 callback,并支持 CLI 点号覆盖; * **negative prompt 预编码**:提前编码并保存 text embeddings,训练时直接加载; * **checkpoint 导出**:支持将 DCP 训练 checkpoint 转换为 diffusers 标准格式,便于后续推理和集成。 --- ## Test * [x] --dry-run 校验 YAML 配置解析与运行时组件构建; * [x] 多卡 Ascend NPU 端到端训练跑通; * [x] checkpoint 保存与 resume 正常; * [x] DCP checkpoint 可导出为 diffusers 格式; * [x] 导出的 diffusers checkpoint 可加载并完成推理。 See merge request: Ascend/FlashGen!3 | 11 天前 | |
[Feat] 架构实现及DMD蒸馏流程初始化 Co-authored-by: Zijun Huang<zijunhua@usc.edu> # message auto-generated for no-merge-commit merge: !3 merge master into master [Feat] 架构实现及DMD蒸馏流程初始化 Created-by: Huangzjun Commit-by: Zijun Huang Merged-by: ascend-robot Description: ## Summary FlashGen 是一个面向 **昇腾 Ascend NPU** 的扩散模型蒸馏框架,当前支持在 NPU 上对 **Wan 2.1 T2V 1.3B** 进行 **DMD2(Distribution Matching Distillation)** 多步蒸馏。 本 PR 的核心设计是保持 FlashGen 足够轻量:FlashGen 只实现蒸馏算法、模型适配与配置入口,训练基础设施如 Trainer、分布式、优化器、checkpoint、EMA、pipeline 等均复用已安装的 fastvideo。两者通过 YAML 配置中的 _target_ 字符串在运行时动态连接,FastVideo 无需直接引入 FlashGen 代码。 --- ## Architecture FlashGen 采用分层解耦设计,只保留算法与模型扩展层: text flashgen/ ├── configs/ # 运行配置:YAML + _target_ 动态实例化 ├── networks/ # 模型插件:WanModel,继承上游模型并覆盖 NPU 必需行为 ├── methods/ # 蒸馏算法:DMD2Method,编排 student / teacher / critic ├── datasets/ # 数据格式扩展点,默认复用 FastVideo parquet 数据格式 └── entrypoint # NPU 环境初始化,并委托 FastVideo 训练循环 关键边界: * FlashGen 负责模型与算法逻辑; * FastVideo 负责通用训练基础设施; * 模型、算法和训练组件通过 YAML _target_ 解耦; * 替换模型或蒸馏方法时,原则上只需修改配置,无需改动 FastVideo 主训练框架。 --- ## DMD2 Distillation 当前实现的 DMD2 蒸馏链路包含: * **三角色编排** * frozen teacher:提供真实分布分数; * trainable student:作为少步生成器; * trainable critic:估计 fake score。 * **两类训练损失** * DMD distribution matching loss:用于更新 student; * flow matching loss:用于更新 critic。 * **可配置训练策略** * 支持 student rollout / simulate rollout; * 支持 generator_update_interval 控制 student 与 critic 的交替更新; * 支持 CFG guidance; * 支持自定义少步去噪 schedule。 --- ## Ascend NPU Adaptation 本 PR 针对 Ascend NPU 做了以下适配: * 惰性激活 torch_npu,避免在非 NPU 环境中强绑定; * 注意力后端固定为 Torch SDPA; * 将 CUDA 专用算子路径隔离为可选逻辑; * 修复 NPU 环境下的 checkpoint RNG 保存逻辑; * 支持多卡 NPU 训练中的 EMA、checkpoint 保存与 DCP 导出; * 支持离线 negative prompt 预编码,避免多 rank 在线文本编码带来的同步问题。 --- ## Supporting Utilities * **配置驱动训练**:单份 YAML 声明模型、方法、训练参数与 callback,并支持 CLI 点号覆盖; * **negative prompt 预编码**:提前编码并保存 text embeddings,训练时直接加载; * **checkpoint 导出**:支持将 DCP 训练 checkpoint 转换为 diffusers 标准格式,便于后续推理和集成。 --- ## Test * [x] --dry-run 校验 YAML 配置解析与运行时组件构建; * [x] 多卡 Ascend NPU 端到端训练跑通; * [x] checkpoint 保存与 resume 正常; * [x] DCP checkpoint 可导出为 diffusers 格式; * [x] 导出的 diffusers checkpoint 可加载并完成推理。 See merge request: Ascend/FlashGen!3 | 11 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 14 天前 | ||
| 11 天前 | ||
| 11 天前 |