参数配置指导

本文为您介绍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、PreTrainerFinetuner一起使用。

加速开关设置:模型状态切分(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-1zero-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

梯度累积分子

使用说明:

  • 只适用于预训练基于IterPretrainerFinetune,如果微调是基于epoch的,暂时不支持梯度累积。

  • 依据batch sizerank数,自动求出累积步数。

加速开关设置: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