已开启
RFC-需求串讲模板 #284
xuxinglei创建于 7月9日
xuxinglei
7月9日 评论:
7月9日 评论:
Mmindspore-ci-bot
1 天前 关联了pull request:[mirror] mindspore-ai/hyper-parallel#1081: feat(agent): feature-doc skill for feature / model design documents
1 天前 关联了pull request:[mirror] mindspore-ai/hyper-parallel#1081: feat(agent): feature-doc skill for feature / model design documents


背景
特性在进入代码开发前,需要把问题背景、目标边界、对外接口、方案设计、组件依赖、兼容性约束和验证方式讲清楚。
建议落地方式
填写原则:
特性 RFC 模板
1. 基本信息
model/distributed/checkpoint/optimizer/trainer2. 背景
说明为什么要做。本节只保留和本特性直接相关的信息。
3. 目标和非目标
3.1 目标
3.2 非目标
4. 相关实现参考
5. 对外接口
5.1 接口定义
# 按实际特性替换 model = enable_xxx( model, enabled=True, mode="xxx", option_a=..., # 含义、默认值、合法范围 )enabledboolFalseTrue/Falsemodestr5.2 使用示例
config.xxx.enabled = True trainer = Trainer(config) trainer.fit(model, dataloader)5.3 接口说明
6. 方案设计
6.1 总体流程
flowchart TD A["读取用户配置"] --> B["校验参数合法性"] B --> C{"是否开启本特性"} C -- "否" --> D["保持现有训练流程"] C -- "是" --> E["准备分布式上下文"] E --> F["改写 / 包装模型"] F --> G["构建 optimizer / scheduler"] G --> H["执行训练 step"] H --> I["checkpoint save / load"] I --> J["指标与日志上报"]6.2 架构参考
建议用架构图说明本特性和框架内核心模块的依赖关系,各种并行、swap、重计算等的边界。
flowchart LR subgraph User["用户侧"] Config["Config"] Model["Model Definition"] Data["Dataloader"] end subgraph Framework["Hyper Parallel Framework"] Trainer["Trainer"] Feature["Feature Runtime"] Dist["Distributed Context"] Wrapper["Model Wrapper"] Optim["Optimizer Adapter"] Ckpt["Checkpoint Adapter"] end subgraph Backend["后端"] PT["PyTorch Backend"] MS["MindSpore Backend"] Comm["Communication Backend"] end Config --> Trainer Model --> Wrapper Data --> Trainer Trainer --> Feature Feature --> Dist Feature --> Wrapper Trainer --> Optim Trainer --> Ckpt Dist --> Comm Wrapper --> PT Wrapper --> MS6.3 时序参考
sequenceDiagram participant U as User participant T as Trainer participant R as Feature Runtime participant D as Distributed participant M as Wrapped Model participant O as Optimizer participant C as Checkpoint U->>T: fit(model, dataloader) T->>R: prepare(config, model) R->>D: init process group / mesh R->>M: wrap or transform model T->>M: forward(batch) M->>D: collective communication M-->>T: loss T->>M: backward(loss) M->>D: gradient sync / reduce-scatter T->>O: step() T->>O: zero_grad() T->>C: save / load when needed6.4 关键逻辑
def enable_xxx(model, config): validate_config(config) model = prepare_model(model, config) runtime = prepare_runtime(config) return WrappedModel(model, runtime)6.5 代码改动点
modeldistributedcheckpointoptimizertrainer6.6 方案取舍
如果有多个方案,填写:
如果只有一个方案,填写:
7. 组件依赖
8. 约束与兼容性
9. 验证设计
9.1 用例分层
9.2 交互验证(举例)
9.3 性能 / 显存验证
10. 实现计划