Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
### 姓名
郑天宇

### 实习项目
自动并行流水并行功能增强和性能优化

### 本周工作

1. **动态图半自动化流水并行save_load 机制精度对齐,修复现存bug**
2. **动态图半自动化流水并行dataloader逻辑对齐,尤其在dp、pp混合场景下的micro_batch切分**
3. **GradientClipByGlobalNorm逻辑对齐,默认与动手对齐**
4. **get_group bug fix**
5. **增强stage对层间传递stop_grad=True的参数的支持**


### 下周工作

1. GradientClipByGlobalNorm逻辑对齐,在对齐模式下,与原动半pp对齐

### 导师评价
天宇本周高效推进了自动并行多个核心模块的优化,技术贡献显著,展现了独立承担复杂模块开发的能力。期待后续在性能优化方向上持续突破。



Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
### 姓名
郑天宇

### 实习项目
自动并行流水并行功能增强和性能优化

### 本周工作

1. GradientClipByGlobalNorm逻辑对齐,在对齐模式下,与原动半pp对齐
2. fused_rotary_position_embedding算子反向逻辑修复,同时修复原来单测的逻辑缺陷(因为此缺陷导致单测未检查出反向的错误)
3. 理解flexcheckpoint框架的开发逻辑,配合flexcheckpoint的dcp组件的开发验证,提出了一些逻辑问题
4. 使用flexcheckpoint适配paddlenlp、paddleformers跑通ernie、llama2、qwen3、qwen3-moe
5. 在llama2上对flexcheckpoint框架做了多重策略转换的验证


### 下周工作

1. 在llama2上对多重策略转换的情况继续做验证——md5对齐、loss收敛。

### 导师评价




Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
### 姓名
郑天宇

### 实习项目
自动并行流水并行功能增强和性能优化

### 本周工作

**1.在llama2上验证Flexcheckpoint框架**
- 在使用过程中,对于tp、pp、dp、shardingV1、shardingV2等多种策略转换的情况——验证md5对齐、loss收敛,同时针对每种情况都写了一个自动化脚本,一键运行两种策略的互转、对齐md5、运行接续热启动训练、验证loss接续。
- 在验证纯sharding时出错,原因是梯度累加数据类型有问题,需要在累加时做数据转换(临时hack,后来验证是paddle更新的pr导致的问题,最新版的paddle已修复此问题)
- 在测tp策略转换的过程中,发现fused_qkv, fused_ffn打开后loss差距不符合预期;经验证,当前存在fused_qkv与old_fused_qkv两套逻辑,llama当前默认使用的是old_fused_qkv此时无需配置aoa与tp自洽,而ernie使用的是fused_qkv,需要配置aoa。
- 在测dp策略转换的过程中,发现原来的纯dp策略只保存一份ckpt,而Flexcheckpoint框架
- 使用aoa_config时,macros优先级、关键字过滤、fused_ffn命令长度存在问题,已修复
- 针对llama2上验证Flexcheckpoint框架流程,撰写了运行指导文档: https://github.com/PFCCLab/FlexCheckpointVerf/blob/main/parallel-strategy-verification/llama2/env.md

**2.在ernie4.5上验证Flexcheckpoint框架**
- 在使用过程中,对于tp、pp、dp、shardingV1、shardingV2等多种策略转换的情况——验证md5对齐、loss收敛,同时针对每种情况都写了一个自动化脚本,一键运行两种策略的互转、对齐md5、运行接续热启动训练、验证loss接续。(**目前还在测试过程中,未全部完成**)
- tp2(ep2)->tp4时,gate参数的md5未对齐,经过验证发现,gate参数会在回调函数OrthogonalCallback中计算正交损失并更新,直接用FLAGS_shard_bypass_dygraph_optimizer 标志位控制优化器不更新无法制止gate的更新,而经过hack相应代码验证,gate不更新后,转换前后,tp2(ep2)的ckpt能完全对齐。
- tp2(ep2)->pp4时,发现未适配共享参数的场景,做了适配,同时发现ernie pp和ernie 非pp的组网逻辑不一致,无法直接做对齐验证。



### 下周工作

1.继续在ernie4.5上验证Flexcheckpoint框架

### 导师评价






Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
### 姓名
郑天宇

### 实习项目
自动并行流水并行功能增强和性能优化

### 本周工作

**1.在ernie4.5上验证method1:A->B->A的md5对齐,与loss接续**
- 验证了纯tp、pp、dp、shardingV1、shardingV2,在训练时,moe_group需要设置为dummy,即不划分experts。
- tp2(ep2)->pp4时,关闭tie_weights操作,md5仍无法对齐,查验后发现,需要关闭moe_use_aux_free,否则非pp将多出一份参数。
- tp下,bias为None时,出现bug,主要是MPScale.apply未考虑bias为None的情况。
- 当前ernie_moe跑vpp存在问题跳过。
- 纯DP下,opt未被封装,会导致init_optimizer报错,优化了paddlenlp的fc适配代码。
- DP2、ShardingV1、V2转TP2(EP2)_PP2等出现src_var和dst_var的global_size对不齐的现象,经验证,主要是Ernie下的SequenceParallelLayer未适配sharded_state_dict,做了适配。

**2.在ernie4.5上验证method2:A->B,二者合参后与uc的md5对齐**
- 1.编写自动化脚本,一键训练,转化,合参,并分别与uc对比md5,已经验证了纯tp、pp、dp、shardingV1、shardingV2、sd2(ep2)。
- 2.uc下,sd2(ep2)的md5无法对齐,经验证主要是uc未对expert的id做偏移,而fc做了偏移,对uc的expert_id偏移后,md5对齐。
- 3.涉及TP的都无法对齐,主要是当前ernie_moe与uc在跑tp时存在bug,以及ernie_moe的tp_mappings未对mtp_block层做映射,load_state_dict和_handle_aoa未考虑到多卡转单机,已做适配。



### 下周工作

1.继续在ernie4.5上验证method2。

### 导师评价






Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
### 姓名
郑天宇

### 实习项目
自动并行流水并行功能增强和性能优化

### 本周工作

**1.在ernie4.5上验证method2:A->B,二者合参后与uc的md5对齐**
全部验证完毕

**2.paddlnlp适配fc的代码,适配完成并合入pr**

**3.AOA验证工作**
- 1.添加专家ID的macro
- 2.修复rename不支持axis属性的问题
- 3.修复$LAYER_ID的get_num_hidden_layer的bug
- 4.修改及补充整个macro单测,覆盖AOAShardInfoContext类的测试
- 5.修改optimizer_it的逻辑——在后续过程过滤,而不是直接读取metadata文件初始化(当前这个修改暂时保留,后续如果需要支持fused_qkv->非fused_qkv且保留优化器状态的场景,则推进该修改合入)
- 6.尝试支持在qkv->q,k,v场景下,beta1_pow_acc_0,beta2_pow_acc_0一对多和多对一的赋值转换,但经过讨论后,pass了这个方案,此场景下随机赋值这两个动量。
- 7.修复star_macro和add aoa原语的bug
- 8.尝试在save时优化对DygraphShardingOptimizerV2的flatten_tensor的处理逻辑;目前最新pr已经将逻辑移入到load阶段,因此不做合入。


### 下周工作

1.完善aoa相关组件问题

### 导师评价






Loading