训练参数说明
更新时间:2024-09-03
本文为您介绍AIAK-Training适用的训练参数详情,建议您在使用AIAK-Training进行模型训练加速前先查看本文档进行了解学习。
组网参数
参数名 | 取值类型 | 是否必选 | 默认值 | 枚举值 | 描述 |
---|---|---|---|---|---|
--num-layers | int | 是 | None | NA | 层数 |
--hidden-size | int | 是 | None | NA | 隐层维数 |
--ffn-hidden-size | int | 否 | None | NA | FFN隐层维数 |
--num-attention-heads | int | 是 | None | NA | 自注意力的head数 |
--max-position-embeddings | int | 是 | None | NA | 位置embedding的序列长度 |
--use-rotary-position-embeddings | bool | 否 | False | NA | RoPE开关 |
--use-rotary-position-embeddings-with-position-ids | bool | 否 | False | NA | RoPE with position ids开关 |
--rotary-percent | float | 否 | 1.0 | NA | Rotary dimension百分比 |
--rotary-embedding-2d | bool | 否 | False | NA | 2D RoPE开关 |
--apply-rotary-positional-embedding-kernel | bool | 否 | False | NA | 优化版RoPE kernel (with position ids) 开关 |
--learnable-rotary-embedding | bool | 否 | False | NA | 可学习RoPE开关(opt, galactica) |
--positional-encoding-2d | bool | 否 | False | NA | 2D positional encoding开关 |
--deepnorm | bool | 否 | False | NA | DeepNorm开关 |
--fused-rmsnorm | bool | 否 | False | NA | Fused RMSNorm开关 |
--activation-func | str | 否 | gelu | relu gelu geglu liglu reglu swiglu |
激活函数选型 |
--num-experts | int | 否 | None | NA | mlp层专家数量 |
正则化参数
参数名 | 取值类型 | 是否必选 | 默认值 | 枚举值 | 描述 |
---|---|---|---|---|---|
--attention-dropout | float | 否 | 0.1 | NA | Post attention dropout概率 |
--hidden-dropout | float | 否 | 0.1 | NA | Hidden state transformer dropout概率 |
--embedding-dropout | float | 否 | 0.1 | NA | Word embedding dropout概率 |
--weight-decay | float | 是 | 0.01 | NA | L2 正则权重衰减系数 |
--clip-grad | float | 否 | 1 | NA | 梯度clipping |
--shrink-embedding-gradient-alpha | float | 否 | 1.0 | NA | Embedding梯度缩减影响因子 |
--shrink-word-embedding | bool | 否 | False | NA | Word embedding缩减开关 |
--shrink-logit-embedding-gradient | bool | 否 | False | NA | Logit embedding梯度缩减开关 |
训练参数
参数名 | 取值类型 | 是否必选 | 默认值 | 枚举值 | 描述 |
---|---|---|---|---|---|
--micro-batch-size | int | 否 | None | NA | 单次迭代每个rank的batch size |
--global-batch-size | int | 是 | None | NA | 分布式训练全局batch size |
--recompute-activations | bool | 否 | False | NA | 重计算开关(selective) |
--recompute-granularity | str | 否 | None | full selective hybrid |
重计算粒度 |
--recompute-method | str | 否 | None | uniform block |
重计算方式 |
--recompute-num-layers | int | 否 | 1 | NA | 重计算层数 |
--recompute-view-for-virtual-pipeline-stage | str | 否 | local | local global |
Interleaved pipeline中的重计算视角 |
--distribute-saved-activations | bool | 否 | False | NA | 中间值结果按tensor model parallel维度切分开关 |
--sequence-parallel | bool | 否 | False | NA | Sequence parallel开关 |
--use-flash-attn | bool | 否 | False | NA | FlashAttention开关 |
--train-iters | int | 是 | None | NA | 迭代轮数 |
--log-interval | int | 否 | 100 | NA | 打印日志间隔 |
--optimizer | str | 否 | adam | adam sgd |
优化器类型 |
初始化参数
参数名 | 取值类型 | 是否必选 | 默认值 | 枚举值 | 描述 |
---|---|---|---|---|---|
--seed | int | 否 | 1234 | NA | 随机种子 |
--data-shuffle-seed | int | 否 | None | NA | GLM数据shuffle随机种子 |
学习率参数
参数名 | 取值类型 | 是否必选 | 默认值 | 枚举值 | 描述 |
---|---|---|---|---|---|
--lr | float | 是 | None | NA | 学习率 |
--lr-decay-style | str | 是 | linear | constant linear cosine inverse-square-root |
学习率衰减方式 |
--lr-warmup-fraction | float | 否 | None | NA | 学习率warmup比例 |
Checkpoint参数
参数名 | 取值类型 | 是否必选 | 默认值 | 枚举值 | 描述 |
---|---|---|---|---|---|
--save | str | 否 | None | NA | 保存模型的文件夹路径 |
--save-interval | int | 否 | None | NA | 保存模型ckpt的间隔 |
--load | str | 否 | None | NA | 加载模型的文件夹路径 |
--finetune | bool | 否 | False | NA | Finetune模式(不加载optimizer、rng stagte,设置iteration为0)加载模型开关 |
--use-checkpoint-args | bool | 否 | False | NA | 使用ckpt中的参数覆盖命令行参数 |
混合精度参数
参数名 | 取值类型 | 是否必选 | 默认值 | 枚举值 | 描述 |
---|---|---|---|---|---|
--fp16 | bool | 否 | False | NA | FP16开关 |
--bf16 | bool | 否 | False | NA | BF16开关 |
分布式参数
参数名 | 取值类型 | 是否必选 | 默认值 | 枚举值 | 描述 |
---|---|---|---|---|---|
--tensor-model-parallel-size | int | 否 | 1 | NA | 张量并行维数 |
--pipeline-model-parallel-size | int | 否 | 1 | NA | 流水并行维数 |
--num-layers-per-virtual-pipeline-stage | int | 否 | None | NA | Model chunk层数 |
--overlap-p2p-communication | bool | 否 | False | NA | Interleaved pipeline p2p通信隐藏开关 |
--use-distributed-optimizer | bool | 否 | Fasle | NA | Distributed optimizer开关(ZeRO1) |
--use-ring-exchange-p2p | bool | 否 | False | NA | Ring-exchange p2p开关 |
--DDP-impl | str | 否 | local | local torch |
DistributedDataParallel实现选型 |
数据参数
参数名 | 取值类型 | 是否必选 | 默认值 | 枚举值 | 描述 |
---|---|---|---|---|---|
--data-name | str | 否 | None | wuda stories pile cc-news bert-large bert-base wikibook baike zhidao zhihu openwebtext wikipedia-key wikipedia |
微调数据集文件名 |
--data-path | str | 是 | None | NA | 预训练数据集文件路径 |
--split | str | 否 | 969, 30, 1 | NA | Train/Validate/Test使用数据占比 |
--tokenizer-type | str | 否 | None | BertWordPieceLowerCase BertWordPieceCase GPT2BPETokenizer SentencePieceTokenizer GPTSentencePieceTokenizer LLaMASentencePieceTokenizer GalactivaHFTokenizer IceTokenizer ChatGLMTokenizer GLMChineseTokenizer OptTokenizer NullTokenizer |
Tokenizer类型 |
--data-impl | str | 否 | mmap | lazy cached mmap infer |
预训练indexed数据集的实现方式 |
--seq-length | int | 是 | None | NA | 序列长度 |