118 Star 818 Fork 472

MindSpore / mindformers

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
Convert_Weight.md 2.80 KB
一键复制 编辑 原始数据 按行查看 历史
llXll 提交于 2024-05-30 20:42 . HF与MF权重互转

ConvertWeight

基本介绍

ConvertWeight支持对torch权重和mindspore权重的格式互转

支持模型

name
llama llama
glm glm
glm-n glm2、glm3
qwen qwen
internlm internlm
baichuan baichuan、baichuan2
gpt gpt2
bloom bloom
wizardcoder wizardcoder
skywork skywork
mixtral mixtral

使用方式

启动权重转换脚本

脚本:

根目录下convert_weight.py

主要参数;

args required
model 模型名称
reversed mindspore格式转torch格式
input_path 输入权重文件路径,如果模型存在多个权重文件,选择模型目录下其中一个即可,根据目录自动加载全部权重
output_path 输出权重文件路径
dtype 输出的权重数据类型,默认为原始权重数据类型
n_head bloom权重转换所需额外参数,根据bloom模型实际情况配置
hidden_size bloom权重转换所需额外参数,根据bloom模型实际情况配置
layers gpt2和wizardcoder的torch权重转mindspore权重时所需的额外参数,转换的权重层数
is_pretrain swin权重转换所需额外参数,输入权重是否为预训练权重

执行:

python convert_weight.py --model model_name --inpurt_path ./hf/input.bin --output_path ./ms/output.ckpt --otherargs
python convert_weight.py --model model_name --inpurt_path ./ms/output.ckpt --output_path ./hf/input.bin --reversed --otherargs
# Example for llama:
# python convert_weight.py --model llama --input_path open_llama_7b.ckpt --output_path llama_7b.bin --reversed

扩展

  1. 在扩展模型目录下新增convert_weight.pyconvert_reversed.py文件,
  2. 在文件中分别编写conver_ms_to_pt及conver_pt_to_ms权重转换函数,函数参数为input_pathoutput_pathdtype及额外参数**kwargs
  3. 在mindformers根目录下convert_weight.py文件中的convert_map和reversed_convert_map字典中加入扩展模型名称及转换函数引入路径
  4. 额外参数在main函数中通过parser.add_argument('--arg_name',default=,type=,required=,help=)新增
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/mindspore/mindformers.git
git@gitee.com:mindspore/mindformers.git
mindspore
mindformers
mindformers
dev

搜索帮助

344bd9b3 5694891 D2dac590 5694891