全部產品
Search
文件中心

Platform For AI:參數配置指導

更新時間:Jul 13, 2024

本文為您介紹Pai-Megatron-Patch適用的範圍及訓練參數詳情,建議在使用Pai-Megatron-Patch進行模型訓練加速前先查看本文進行瞭解學習。

適用範圍

  • 黑盒化的加速微調

  • 黑盒化的加速預訓練

  • 基於Finetuner代碼模板的白盒化加速微調

  • 基於Pretrainer代碼模板的白盒化加速預訓練

常規訓練設定:資料參數

參數名

取實值型別

是否必選

預設值

枚舉值

描述

--micro-batch-size

int

None

NA

每張卡的batch size

--global-batch-size

int

None

NA

分布式訓練總的batch size

--tokenizer-type

str

None

  • BertWordPieceLowerCase

  • BertWordPieceCase

  • GPT2BPETokenizer

分詞器的類型

--split

str

969, 30, 1

NA

預訓練、驗證、測試集的劃分

--data-impl

str

mmap

  • lazy

  • cached

  • mmap

  • infer

預訓練indexed資料集的實現方式

--data-path

str

None

NA

預訓練資料集檔案路徑

--data-dir

str

None

NA

微調資料集檔案夾路徑

--data-name

str

None

NA

微調資料集檔案名稱

常規訓練設定:模型參數

參數名

取實值型別

是否必選

預設值

枚舉值

描述

--pretrained-model-name-or-path

str

None

NA

預訓練模型名或路徑

--num-layers

int

None

NA

層數

--hidden-size

int

None

NA

隱層維數

--num-attention-heads

int

None

NA

自注意力的head數

--max-position-embeddings

int

None

NA

位置embedding的序列長度

--seq-length

int

None

NA

序列長度

常規訓練設定:訓練參數

參數名

取實值型別

是否必選

預設值

枚舉值

描述

--task

str

None

  • sequence_classification

  • token_classification

  • question_answering

  • masked_lm

  • casual_lm

  • seq2seq_lm

  • pretraining

執行訓練任務的名稱

--save

str

None

NA

儲存模型的檔案夾路徑

--lr

float

None

NA

學習率

--lr-decay-style

str

linear

  • constant

  • linear

  • cosine

學習率衰減方式

--weight-decay

float

0.01

NA

L2 正則權重衰減係數

--clip-grad

float

1

NA

梯度clipping

--lr-warmup-fraction

float

None

NA

學習率warmup比例

--train-iters

int

None

NA

迭代輪數

--epochs

int

None

NA

迭代epoch數

--log-interval

int

100

NA

列印日誌間隔

加速開關設定:MoE稀疏訓練

參數名

取實值型別

是否必選

預設值

枚舉值

描述

--num-experts

int

None

NA

mlp層專家數量

加速開關設定:混合精度訓練

參數名

取實值型別

是否必選

預設值

枚舉值

描述

--mixed-precision

bool

None

NA

FP16混合精度訓練

使用說明:需要和Pai-Megatron-Patch提供的Trainer、PreTrainer或Finetuner一起使用。

加速開關設定:模型狀態切分(ZeRO,OSS,SDP,FSDP)

參數名

取實值型別

是否必選

預設值

枚舉值

描述

--oss-memory-optimization

bool

NA

NA

最佳化器狀態切分

--oss-sdp-memory-optimization

bool

NA

NA

最佳化器和梯度聯合狀態切分

--fsdp-memory-optimization

bool

NA

NA

最佳化器,梯度和模型參數聯合狀態切分

--zero-1-memory-optimization

bool

NA

NA

zero最佳化器狀態切分

--zero-2-memory-optimization

bool

NA

NA

zero最佳化器和梯度聯合狀態切分

--zero-3-memory-optimization

bool

NA

NA

zero最佳化器,梯度和模型參數聯合狀態切分

使用說明:zero顯存最佳化只能和trainer配合使用,oss、sdp、fsdp顯存最佳化可以用在無Trainer的代碼中使用。

加速開關設定:3D混合并行(Data,Tensor,Pipeline並行)

參數名

取實值型別

是否必選

預設值

枚舉值

描述

--tensor-model-parallel-size

int

1

NA

張量並行

--pipeline-model-parallel-size

int

1

NA

流水並行

使用說明:

  • 只支援zero-1和zero-2的模型狀態切分組合。

  • 需要和Trainer一起使用。

加速開關設定:計算圖最佳化

參數名

取實值型別

是否必選

預設值

枚舉值

描述

--onnx-runtime-training

bool

None

NA

onnx-runtime計算圖最佳化

加速開關設定:CPU負載訓練

參數名

取實值型別

是否必選

預設值

枚舉值

描述

--cpu-offload

bool

None

NA

開啟CPU負載訓練

使用說明:顯存最佳化中的CPU訓練只能和zero一起使用,不能和oss、sdp、fsdp這三種模型狀態切分一起使用。

加速開關設定:啟用檢查點

參數名

取實值型別

是否必選

預設值

枚舉值

描述

--checkpoint-activations

bool

None

NA

啟用檢查點

加速開關設定:梯度累積

參數名

取實值型別

是否必選

預設值

枚舉值

描述

--micro-batch-size

int

1

NA

梯度累積分母

--global-batch-size

int

1

NA

梯度累積分子

使用說明:

  • 只適用於預訓練基於Iter的Pretrainer和Finetune,如果微調是基於epoch的,暫時不支援梯度累積。

  • 依據batch size和rank數,自動求出累積步數。

加速開關設定:Dynamic Shape資料迭代器

參數名

取實值型別

是否必選

預設值

枚舉值

描述

--data-iterator dynamic-shape

str

None

  • dynamic-shape

  • fixed-shape

dynamic shape資料迭代器

使用說明:只適用於預訓練Pretrainer,不適用於Finetune。

加速開關設定:Op融合最佳化器

參數名

取實值型別

是否必選

預設值

枚舉值

描述

--optimizers

str

apex_adam

  • apex_adam

  • apex_lamb

Apex fused adam/lamb