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 --> MS
6.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 needed
背景
特性在进入代码开发前,需要把问题背景、目标边界、对外接口、方案设计、组件依赖、兼容性约束和验证方式讲清楚。
建议落地方式
填写原则:
特性 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. 实现计划