按这六条核了一遍当前 master,结论是这条已经不能按原样执行了 —— 结构被后续重构换过,期望里提到的几个符号现在不存在。
先说路径:issue 写的是 examples/training_demo/train.yaml,这个文件现在没有,那个目录下是 train_parallel_online.yaml、train_parallel_offline.yaml、train_parallel_full_offline.yaml;而 run_parallel_* 脚本实际用的配置是 hyper_parallel/models/qwen3_moe/recipes/train.yaml。两个我都看了。
逐条:
| 期望 | 现状 |
|---|---|
| 保留 PR1159 的能力 | 在:qwen3_moe/recipes/train.yaml 仍是 Qwen3-30B-A3B + FSDP + Muon |
恢复 build_llm_data_transform |
已在:qwen3_moe/recipes/train.yaml:111、train_parallel_online.yaml:91 |
恢复 build_llm_dataset 的 indexed mock 配置 |
全仓 build_llm_dataset 0 次命中;现在是 build_online_text_dataset(:123 / :96) |
恢复 hyper_models.components.datasets.DataLoader |
现在是 hyper_parallel.data.batching.DynamicBatchDataLoader(:127 / :107) |
恢复 build_llm_get_batch |
全仓 0 次命中;get_batch: 这个键在,值是 ParallelBatch(:131-132 / :111-112) |
train_iters=10、eval_iters=1 |
qwen3_moe/recipes/train.yaml:22 是 train_iters: 3;train_parallel_online.yaml:14 是 train_iters: 10、:16 是 eval_iters: 0 |
另外 issue 提到「当前实际配置为 IdentityDataTransform / DummyDataset / legacy dataloader / 未配置 get_batch」—— 这几项在现在的三个 demo yaml 里都搜不到,get_batch: 也已经配上了。
所以「按期望恢复」这件事做不了:build_llm_dataset 与 build_llm_get_batch 这两个名字已经不在代码里,照字面改会把现在的 online 数据集 + DynamicBatchDataLoader + ParallelBatch 结构换掉。eval_iters 期望 1、现在是 0 —— 这个我认为是有意的 smoke 配置(train_iters 也很小),不该照 issue 改。
如果这条的本意只是「demo 不要停在 PR1155 的临时 tiny-Llama/DummyDataset 形态」,那它已经达到了。要是你们认为还有哪一项没落地,麻烦指一下具体是哪一个 —— 我按现状重新看。
(没有实测跑 demo:那需要 8 卡与 Qwen3-30B-A3B 权重。上面全部是读配置与全仓检索的结果。)


Checklist
🐛 Describe the bug
trainer_dev依次合入 PR1154、PR1155 和 PR1159 后,examples/training_demo/train.yaml没有保留 PR1154 引入的 indexed data flow:get_batch。DummyDataset和 identity transform。run.sh,但保留了 PR1155 的临时DummyDataset数据链路。因此当前默认 demo 虽然可以覆盖预训练模型加载和 FSDP 训练,却不再覆盖 Trainer 的标准 indexed dataset 构建、数据变换、dataloader 与
get_batch链路。当前实际配置为:
train_iters=2、eval_iters=0;IdentityDataTransform;DummyDataset;components.data.dataloader.DataLoader;get_batch。本问题与 PR1155 修复的 optimizer layout 问题相互独立。PR1155 的
fully_shard/param.py、resolver、UT 和 accuracy 看护已经合入;PR1157 revert 已关闭且未进入trainer_dev,本问题不应重复修改这些文件。Expected behavior
training demo 应组合保留 PR1154 与 PR1159 的能力:
run.sh;build_llm_data_transform;build_llm_dataset的 indexed mock data 配置;hyper_models.components.datasets.DataLoader;build_llm_get_batch;train_iters=10、eval_iters=1。修复范围应限制为
examples/training_demo/train.yaml,不修改fully_shard/param.py、resolver 或 PR1155 的测试文件。Additional context
loss=0.00582964,grad_norm=0.859375;峰值显存 40.18 GB。4123 passed, 207 skipped, 21 failed, 106 subtests passed;21 项失败均可在相同upstream/trainer_dev干净基线复现。Environment info
trainer_dev@d253907aHYPER_PARALLEL_PLATFORM=torch