更新时间:2025-07-29 GMT+08:00
分享

MindSpeed-LLM

权重文件组合方式

适配权重文件支持以下组合方式,用户根据自己实际要求选择

表1 MindSpeed-LLM支持权重组合方式

训练stage

不加载权重

增量训练:加载权重,不加载优化器(默认开启)

断点续训:加载权重+优化器

  • pt
  • sft

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文件:

  1. 数据集选择:dataset和processed_data_dir参数二选一,详解如下。

    参数

    示例值

    参数说明

    dataset

    【预训练:pt】预训练数据集相对或绝对地址

    【微调:sft】微调数据集相对或绝对地址

    训练时指定的输入数据路径。请根据实际规划修改。用户根据训练情况二选一;【OBS方式“输入”框填写,SFS Turbo方式“超参”框写入】

    processed_data_dir

    /home/ma-user/ws/xxx

    已处理好数据路径目录,如有处理完成数据可设置此参数【OBS方式“输入”框填写,SFS Turbo方式“超参”框写入】

  2. 权重文件、输出目录及其他重要参数设置,详解如下:

    参数

    示例值

    参数说明

    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数据集
  3. 其他参数设置,详解如下:

    参数

    示例值

    参数说明

    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)的值进行整除。

相关文档