更新时间:2024-06-17 GMT+08:00
分享

推理前的权重合并转换

模型训练完成后,训练的产物包括模型的权重、优化器状态、loss等信息。这些内容可用于断点续训、模型评测或推理任务等。

在进行模型评测或推理任务前,需要将训练后生成的多个权重文件合并,并转换成Huggingface格式的权重文件。

权重文件的合并转换操作都要求在训练的环境中进行,为下一步推理做准备。

  • 如果需要使用本文档中训练后的权重文件进行推理,请参考此章节合并训练权重文件并转换为Huggingface格式。
  • 如果无推理任务或者使用开源Huggingface权重文件推理,都可以忽略此章节。

下一步的推理任务请参考文档《开源大模型基于DevServer的推理通用指导》。

将多个权重文件合并为一个文件并转换格式

任意并行切分策略的Megatron权重 格式转化为 HuggingFace权重 (该场景一般用于将训练好的megatron模型:预训练、lora、sft 重新转回HuggingFace格式)为下一步推理使用准备,无推理任务忽略此章节,一般训练都是多卡分布式训练权重结果文件为多个且文件为Megatron格式,因此需要合并多个文件转换为huggingface格式

如是多机训练转换前需将多机权重目录(iter_xxxxxxx)下mp_rank_xx_xxx文件夹整合到一起后进行转换,合并后结果如图所示:

该脚本的执行需要在/home/ma-user/ws/6.3.904-Ascend/llm_train/AscendSpeed/ModelLink目录下执行。

#加载ascendspeed及megatron模型:
export PYTHONPATH=$PYTHONPATH:/home/ma-user/ws/6.3.904-Ascend/llm_train/AscendSpeed/AscendSpeed
export PYTHONPATH=$PYTHONPATH:/home/ma-user/ws/6.3.904-Ascend/llm_train/AscendSpeed/ModelLink
#进入ModelLink下:
cd /home/ma-user/ws/6.3.904-Ascend/llm_train/AscendSpeed/ModelLink
python tools/checkpoint/util.py --model-type GPT \
    --loader megatron \
    --saver megatron \
    --save-model-type save_huggingface_llama \
    --load-dir /home/ma-user/ws/saved_dir_for_ma_output/BaiChuan2-13B/lora \
    --target-tensor-parallel-size 1 \
    --target-pipeline-parallel-size 1 \
    --w-pack True \
    --save-dir /home/ma-user/ws/tokenizers/BaiChuan2-13B  # <-- 需要填入原始HF模型路径,新权重会存于../Baichuan2-13B/mg2hg下

参数说明:

  • save-model-type:输出后权重格式
  • load-dir:训练完成后保存的权重路径
  • save-dir:需要填入原始HF模型路径,新权重会存于../Baichuan2-13B/mg2hg下。
  • target-tensor-parallel-size:任务不同调整参数target-tensor-parallel-size。默认为1
  • target-pipeline-parallel-size :任务不同调整参数target-pipeline-parallel-size。默认为1

分享:

    相关文档

    相关产品