MindSpeed-LLM
权重文件组合方式
适配权重文件支持以下组合方式,用户根据自己实际要求选择
训练stage |
不加载权重 |
增量训练:加载权重,不加载优化器(默认开启) |
断点续训:加载权重+优化器 |
---|---|---|---|
|
ckpt_load_type=0 |
ckpt_load_type=1 user_converted_ckpt_path=xxx,(转换MG的权重) |
ckpt_load_type=2 user_converted_ckpt_path=xxx(训练输出MG权重) |
yaml文件参数配置
根据以下步骤修改yaml文件:
- 数据集选择:dataset和processed_data_dir参数二选一,详解如下。
- 权重文件、输出目录及其他重要参数设置,详解如下:
参数
示例值
参数说明
model_name_or_path
/home/ma-user/ws/llm_train/AscendFactory/model/llama2-70B
【必修改】加载tokenizer与Hugging Face权重时,对应的存放地址。请根据实际规划修改。【OBS方式“输入”框填写,SFS Turbo方式“超参”框写入】
output_dir
/home/ma-user/ws/save_dir
【必修改】训练任务结束生成日志及权重文件目录【OBS方式“输出”框填写,SFS Turbo方式“超参”框写入】
mount_type
OBS
【OBS方式存储必填】表示代码根据OBS存储方式运行。
scirpts_dir
/home/ma-user/ws/llm_train/AscendFactory/scripts_modellink
【必修改】MindSpeed-LLM脚本相对或绝对路径,用于方便加载脚本
ckpt_load_type
1
【可选】默认为1
- 0,不加载权重
- 1,加载权重不加载优化器状态【增量训练】
- 2,加载权重且加载优化器状态【断点续训】详见断点续训和故障快恢说明
user_converted_ckpt_path
/home/ma-user/ws/xxx
【可选】已转换Megatron格式权重目录或训练输出结果权重目录,一般搭配断点续训或增量训练。
- 增量训练:转换Megatron权重,如不指定默认为${output_dir}/converted_hf2mg_weight_TP{tp}PP{pp}目录。
- 断点续训:训练过程中保存的某个权重,可参考断点续训和故障快恢说明
train_auto_resume
false
【可选】是否开启【故障快恢】功能,【true、false】默认false不开启,当训练中断时重启任务会从最新生成权重文件处继续训练。可参考断点续训和故障快恢说明
handler-name
- GeneralPretrainHandler
- GeneralInstructionHandler
- MOSSInstructionHandler
- AlpacaStyleInstructionHandler
- SharegptStyleInstructionHandler
示例值需要根据数据集${dataset}的不同,选择其一。
- GeneralPretrainHandler:使用预训练的alpaca数据集。
- GeneralInstructionHandler:使用微调的alpaca数据集。
- MOSSInstructionHandler:使用微调的moss数据集
- AlpacaStyleInstructionHandler:使用微调Alpaca数据集
- SharegptStyleInstructionHandler:使用Sharegpt数据集
- 其他参数设置,详解如下:
参数
示例值
参数说明
stage
pt
表示训练类型。可选择值:
- pt:预训练
- sft:指令微调
finetuning_type
full
表示训练策略。可选择值:
- full:全参微调
- lora:lora微调
prompt-type
qwen
当handler-name为:【AlpacaStyleInstructionHandler,SharegptStyleInstructionHandler】需指定。
micro-batch-size
1
表示流水线并行中一个micro batch所处理的样本量。在流水线并行中,为了减少气泡时间,会将一个step的数据切分成多个micro batch。
该值与TP和PP以及模型大小相关,可根据实际情况进行调整。
global-batch-size
128
表示训练中所有机器一个step所处理的样本量。影响每一次训练迭代的时长。
tensor-model-parallel-size
8
表示张量并行。
pipeline-model-parallel-size
4
表示流水线并行。一般此值与训练节点数相等,与权重转换时设置的值相等。
context-parallel-size
1
表示context并行,默认为1。应用于训练长序列文本的模型。如果训练时SEQ_LEN超过32768长度,则推荐增加此值(≥ 2)。
(此参数目前仅适用于Llama3系列模型长序列训练)
lr
2.5e-5
学习率设置。
min-lr
2.5e-6
最小学习率设置。
seq-length
4096
要处理的最大序列长度。
convert_mg2hf_at_last
true
是否将Megatron格式的权重转换为HuggingFace格式的权重,默认true。
true表示转换格式,false表示不转换格式。
num_train_epochs
5
表示训练轮次,根据实际需要修改。一个Epoch是将所有训练样本训练一次的过程。
train-iters
10
非必填。表示训练step迭代次数,有默认值
seed
1234
随机种子数。每次数据采样时,保持一致。
save-interval
1000
用于模型中间版本地保存。
- 当参数值>=TRAIN_ITERS时,生成模型仅保存经过TRAIN_ITERS次训练后的最后一个版本。
- 当参数值<TRAIN_ITERS时,生成模型会每经过SAVE_INTERVAL次,保存一次模型版本。
模型版本保存次数=TRAIN_ITERS//SAVE_INTERVAL+1
save-total-limit
-1
用于控制权重版本保存次数。
- 当参数不设置或<=0时,不会触发效果。
- 参数值需<=TRAIN_ITERS//SAVE_INTERVAL+1
- 当参数值>1时,保存模型版本次数与SAVE_TOTAL_LIMIT的值一致。
模型参数设置规定
- TP张量并行 、PP流水线并行、CP context并行的参数设置:TP×PP×CP的值要被NPU数量(word_size)整除。
- TP×CP的值要被模型参数中 num_attention_heads 整除。
- MBS(micro-batch-size)、GBS(global-batch-size)的设置:需要遵循GBS/MBS的值能够被NPU/(TP×PP×CP)的值进行整除。