AI开发平台MODELARTS-预训练权重合并及转换
预训练权重合并及转换
由于预训练或SFT全参微调时产出的权重文件(TP和PP文件)个数比较多,推理前需要把多个权重文件合并为一个文件,并转换为HuggingFace格式。Llama2-13B一般使用单卡推理。
基于预训练或SFT全参微调完成的模型,进行推理部署时,权重合并和转换操作建议参考本章节。
脚本convert_weights_to_huggingface.py包含了权重文件合并和转换操作,具体的脚本内容和参数解释如下。
该脚本的执行需要在/home/ma-user/ws/AscendCloud-3rdLLM-6.3.902/llm_train/AscendSpeed/代码目录下进行。
python scripts/tools/ckpt_convert/llama/convert_weights_to_huggingface.py \ --input-model-dir ${ASCNEDSPEED_CKPT_PATH} \ --output-model-dir ${MERGE_CKPT_PATH} \ --src-tensor-model-parallel-size ${TENSOR-MODEL-PARALLEL-SIZE} \ --src-pipeline-model-parallel-size ${PIPELINE-MODEL-PARALLEL-SIZE} \ --type ${TYPE} \ --org-huggingface-dir ${HUGGINFGFACE_DIR} \ --merge-mlp
参数说明:
- ${ASCNEDSPEED_CKPT_PATH}:训练生成的AscendSpeed格式权重目录,多机多卡场景下需要把多个节点上的权重文件都放到任意一个节点的这个目录下;需要指定到含有mp_rank_xxxxxxx的目录,一般为iter_xxxxx或release。
- ${MERGE_CKPT_PATH}:合并后的权重路径。
- ${TENSOR-MODEL-PARALLEL-SIZE}:原始模型的TP配置大小,取值来自训练中的配置,此处需要手动输入。
- ${PIPELINE-MODEL-PARALLEL-SIZE}:原始模型的PP配置大小,取值来自训练中的配置,此处需要手动输入。
- ${TYPE}:原始模型参数大小,支持参数配置: 7B、13B、70B,按实际模型要求设置。
- ${HUGGINFGFACE_DIR}:可选,开源HuggingFace权重目录,用于将开源权重内的配置文件,复制到转换后权重的输出目录中。
下面提供一个convert_weights_to_huggingface.py脚本的实际样例,供参考。
python scripts/tools/ckpt_convert/llama/convert_weights_to_huggingface.py \ --input-model-dir /home/ma-user/ws/AscendCloud-3rdLLM-6.3.902/llm_train/AscendSpeed/ckpt/ckpt-llama2-13b-sft/iter_xxxxxxx \ --output-model-dir /home/ma-user/ws/weight/ckpt-llama2-13b-sft-hf \ --src-tensor-model-parallel-size 8 \ --src-pipeline-model-parallel-size 1 \ --type 13B \ --org-huggingface-dir /home/ma-user/ws/tokenizers/llama2-13b-hf \ --merge-mlp
- ModelArts数据管理_数据管理功能简介_数据集管理
- ModelArts模型训练_模型训练简介_如何训练模型
- TMS开发_金蝶TMS系统_TMS技术系统_信息化管理_视频
- ModelArts模型训练_创建训练作业_如何创建训练作业
- 图片文字识别转换_图片识别转换文字_文字语音转换
- ModelArts是什么_AI开发平台_ModelArts功能
- ModelArts计费说明_计费简介_ModelArts怎么计费
- GaussDB数据库怎么转换类型_GaussDB安装_高斯数据库转换类型
- AI训练加速存储_高性能数据存储_AI数据存储内存不足怎么办
- ModelArts分布式训练_分布式训练介绍_分布式调测