Pull Request已成功合入, 合并人@ascend-robot
(感谢 chenpeizhe 的贡献)变更摘要
此次变更主要为 mindspeed_mm 项目的 FSDP2 训练管线新增视频数据处理模块,包含两个核心文件:video_processor.py 定义视频帧采样、分辨率校验与数据过滤的抽象流水线及其具体实现,video_reader.py 则提供统一的视频解码读取抽象层。整体上建立了从视频读取、帧序列采样到数据增强的完整链路,并通过 Registry 注册机制支持可扩展的后端切换。
主要改动
- 新增
VideoProcessor工厂及AbstractVideoProcessor抽象基类:定义了视频处理器的统一调用接口__call__和数据筛选方法select_valid_data,子类通过重写实现差异化处理逻辑。 - 新增
OpensoraplanVideoProcessor:实现了面向 OpenSoraPlan 模型的专用处理器,支持自动帧间隔计算、速度因子控制、时序随机裁剪、find_closest_yVA E 对齐帧数计算,以及基于分辨率、宽高比、美学评分的多阶段数据过滤管线。 - 新增
VACEVideoProcessor:面向 VACE 模型的处理器,实现了三种帧采样策略(_get_frameid_bbox_default、_get_frameid_bbox_adjust_last、_get_frameid_bbox_fixed),支持多视频源同步帧提取与下采样对齐的潜空间尺寸推算。 - 新增
Video抽象基类及DecordVideo/TorchvisionVideo实现:统一了视频文件的读取接口(get_batch、get_video_fps、get_len),DecordVideo通过类级共享解码器优化性能,TorchvisionVideo基于 torchvision 后端读取,并支持TCHW/THWC布局与torch/numpy数组类型切换。 - 新增
VideoReader工厂类:通过别名映射(如"decord"→"DecordVideo")与Registry查找机制,提供统一的视频读取器创建入口。


代码审查
我已经完成了对所有问题的审查,现在进行最终汇总。
审查总结
各文件审查结果
| 文件 | 结论 |
|---|---|
mindspeed_mm/fsdp/data/data_utils/generative_data_utils/video_processor.py |
发现 6 个问题(P0×3, P2×1, P3×2) |
mindspeed_mm/fsdp/data/data_utils/generative_data_utils/video_reader.py |
发现 2 个问题(P0×1, P1×1) |
按优先级统计
- P0: 4 个 — 全部为导入路径错误,会导致模块无法加载、代码完全不可用
- P1: 1 个 —
TorchvisionVideo.get_batch()中self.layout与self.array_type混淆,导致 numpy 输出模式静默失效 - P2: 1 个 —
_apply_final_filters中所有样本被过滤后zip(*)解包崩溃 - P3: 2 个 — 重复调用
get_video_fps()和_get_frameid_bbox_fixed死代码
整体风险评估
高风险。4 个 P0 导入错误意味着这两个新文件在当前状态下完全无法使用——任何导入 video_processor 或 video_reader 模块的代码都会立即抛出 ModuleNotFoundError 或 ImportError。导入路径需要从 mindspeed_mm.fsdp.data.data_utils.generative_data_utils.* / mindspeed_mm.fsdp.utils.utils 修正为实际存在的模块位置(mindspeed_mm.data.data_utils.* / mindspeed_mm.utils.utils),或者需要在 fsdp 路径下创建对应的模块副本/重新导出。在导入问题解决之前,这些代码无法进入任何测试或生产流程。
| 类型 | 数量 |
|---|---|
| 🔴 阻塞 | 5 |
| 🟡 建议 | 1 |
⛔ 需要修改


Thanks for your pull-request.
The full list of commands accepted by me can be found at here。
You can get sig-info at here
PR Approval Progress
✅ Congratulations! All modules have met the lgtm and approve requirements.
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| repo-Ascend/MindSpeed-MM | ✅ 王海涛, MoCuishle-M (2/2) | ✅ 王海涛 (1/1) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
chenpeizhe, thanks for your pull request. All authors of the commits have signed the CLA. 👍


Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


What this PR does / why we need it?
Support video processor for generative model training in FSDP2 backend.
https://gitcode.com/Ascend/MindSpeed-MM/issues/576
Does this PR introduce any user-facing change?
New video processor for generative model training in FSDP2 backend.
How was this patch tested?
UT/ST will be presented in other PR.