本文為您介紹Pai-Megatron-Patch適用的范圍及訓練參數(shù)詳情,建議在使用Pai-Megatron-Patch進行模型訓練加速前先查看本文進行了解學習。
適用范圍
黑盒化的加速微調
黑盒化的加速預訓練
基于Finetuner代碼模板的白盒化加速微調
基于Pretrainer代碼模板的白盒化加速預訓練
常規(guī)訓練設置:數(shù)據(jù)參數(shù)
參數(shù)名 | 取值類型 | 是否必選 | 默認值 | 枚舉值 | 描述 |
--micro-batch-size | int | 是 | None | NA | 每張卡的batch size |
--global-batch-size | int | 是 | None | NA | 分布式訓練總的batch size |
--tokenizer-type | str | 否 | None |
| 分詞器的類型 |
--split | str | 否 | 969, 30, 1 | NA | 預訓練、驗證、測試集的劃分 |
--data-impl | str | 否 | mmap |
| 預訓練indexed數(shù)據(jù)集的實現(xiàn)方式 |
--data-path | str | 是 | None | NA | 預訓練數(shù)據(jù)集文件路徑 |
--data-dir | str | 否 | None | NA | 微調數(shù)據(jù)集文件夾路徑 |
--data-name | str | 是 | None | NA | 微調數(shù)據(jù)集文件名 |
常規(guī)訓練設置:模型參數(shù)
參數(shù)名 | 取值類型 | 是否必選 | 默認值 | 枚舉值 | 描述 |
--pretrained-model-name-or-path | str | 是 | None | NA | 預訓練模型名或路徑 |
--num-layers | int | 是 | None | NA | 層數(shù) |
--hidden-size | int | 是 | None | NA | 隱層維數(shù) |
--num-attention-heads | int | 是 | None | NA | 自注意力的head數(shù) |
--max-position-embeddings | int | 是 | None | NA | 位置embedding的序列長度 |
--seq-length | int | 是 | None | NA | 序列長度 |
常規(guī)訓練設置:訓練參數(shù)
參數(shù)名 | 取值類型 | 是否必選 | 默認值 | 枚舉值 | 描述 |
--task | str | 是 | None |
| 執(zhí)行訓練任務的名稱 |
--save | str | 是 | None | NA | 保存模型的文件夾路徑 |
--lr | float | 是 | None | NA | 學習率 |
--lr-decay-style | str | 是 | linear |
| 學習率衰減方式 |
--weight-decay | float | 是 | 0.01 | NA | L2 正則權重衰減系數(shù) |
--clip-grad | float | 否 | 1 | NA | 梯度clipping |
--lr-warmup-fraction | float | 否 | None | NA | 學習率warmup比例 |
--train-iters | int | 是 | None | NA | 迭代輪數(shù) |
--epochs | int | 否 | None | NA | 迭代epoch數(shù) |
--log-interval | int | 否 | 100 | NA | 打印日志間隔 |
加速開關設置:MoE稀疏訓練
參數(shù)名 | 取值類型 | 是否必選 | 默認值 | 枚舉值 | 描述 |
--num-experts | int | 否 | None | NA | mlp層專家數(shù)量 |
加速開關設置:混合精度訓練
參數(shù)名 | 取值類型 | 是否必選 | 默認值 | 枚舉值 | 描述 |
--mixed-precision | bool | 否 | None | NA | FP16混合精度訓練 |
使用說明:需要和Pai-Megatron-Patch提供的Trainer、PreTrainer或Finetuner一起使用。
加速開關設置:模型狀態(tài)切分(ZeRO,OSS,SDP,F(xiàn)SDP)
參數(shù)名 | 取值類型 | 是否必選 | 默認值 | 枚舉值 | 描述 |
--oss-memory-optimization | bool | 否 | NA | NA | 優(yōu)化器狀態(tài)切分 |
--oss-sdp-memory-optimization | bool | 否 | NA | NA | 優(yōu)化器和梯度聯(lián)合狀態(tài)切分 |
--fsdp-memory-optimization | bool | 否 | NA | NA | 優(yōu)化器,梯度和模型參數(shù)聯(lián)合狀態(tài)切分 |
--zero-1-memory-optimization | bool | 否 | NA | NA | zero優(yōu)化器狀態(tài)切分 |
--zero-2-memory-optimization | bool | 否 | NA | NA | zero優(yōu)化器和梯度聯(lián)合狀態(tài)切分 |
--zero-3-memory-optimization | bool | 否 | NA | NA | zero優(yōu)化器,梯度和模型參數(shù)聯(lián)合狀態(tài)切分 |
使用說明:zero顯存優(yōu)化只能和trainer配合使用,oss、sdp、fsdp顯存優(yōu)化可以用在無Trainer的代碼中使用。
加速開關設置:3D混合并行(Data,Tensor,Pipeline并行)
參數(shù)名 | 取值類型 | 是否必選 | 默認值 | 枚舉值 | 描述 |
--tensor-model-parallel-size | int | 否 | 1 | NA | 張量并行 |
--pipeline-model-parallel-size | int | 否 | 1 | NA | 流水并行 |
使用說明:
只支持zero-1和zero-2的模型狀態(tài)切分組合。
需要和Trainer一起使用。
加速開關設置:計算圖優(yōu)化
參數(shù)名 | 取值類型 | 是否必選 | 默認值 | 枚舉值 | 描述 |
--onnx-runtime-training | bool | 否 | None | NA | onnx-runtime計算圖優(yōu)化 |
加速開關設置:CPU負載訓練
參數(shù)名 | 取值類型 | 是否必選 | 默認值 | 枚舉值 | 描述 |
--cpu-offload | bool | 否 | None | NA | 開啟CPU負載訓練 |
使用說明:顯存優(yōu)化中的CPU訓練只能和zero一起使用,不能和oss、sdp、fsdp這三種模型狀態(tài)切分一起使用。
加速開關設置:激活檢查點
參數(shù)名 | 取值類型 | 是否必選 | 默認值 | 枚舉值 | 描述 |
--checkpoint-activations | bool | 否 | None | NA | 激活檢查點 |
加速開關設置:梯度累積
參數(shù)名 | 取值類型 | 是否必選 | 默認值 | 枚舉值 | 描述 |
--micro-batch-size | int | 是 | 1 | NA | 梯度累積分母 |
--global-batch-size | int | 是 | 1 | NA | 梯度累積分子 |
使用說明:
只適用于預訓練基于Iter的Pretrainer和Finetune,如果微調是基于epoch的,暫時不支持梯度累積。
依據(jù)batch size和rank數(shù),自動求出累積步數(shù)。
加速開關設置:Dynamic Shape數(shù)據(jù)迭代器
參數(shù)名 | 取值類型 | 是否必選 | 默認值 | 枚舉值 | 描述 |
--data-iterator dynamic-shape | str | 否 | None |
| dynamic shape數(shù)據(jù)迭代器 |
使用說明:只適用于預訓練Pretrainer,不適用于Finetune。
加速開關設置:Op融合優(yōu)化器
參數(shù)名 | 取值類型 | 是否必選 | 默認值 | 枚舉值 | 描述 |
--optimizers | str | 是 | apex_adam |
| Apex fused adam/lamb |