MindIE LLM不仅支持ATB Models,同时支持MindSpore作为框架后端,MindSpore Models覆盖MindFormers社区下的开源模型。
权重转换
执行推理前,需将权重格式转为MindFormers所使用的格式(ckpt格式)。MindFormers提供了统一的权重转换工具。
以Qwen2.5-72B为例,转换后的模型权重目录结构如下:
mf_model
└── qwen2_5_72b
├── config.json # 模型json配置文件
├── vocab.json # 模型vocab文件,hf上对应模型下载
├── merges.txt # 模型merges文件,hf上对应模型下载
├── predict_qwen2_5_72b.yaml # 模型yaml配置文件
├── qwen2_5_tokenizer.py # 模型tokenizer文件,从mindformers仓中research目录下找到对应模型复制
└── qwen2_5_72b_ckpt_dir # 模型分布式权重文件夹
权重转换之后,需要进行权重切分。切分后生成“qwen2_5_72b_ckpt_dir”文件夹。
predict_qwen2_5_72b.yaml需要关注以下配置:
load_checkpoint: '/mf_model/qwen2_5_72b/qwen2_5_72b_ckpt_dir' # 为存放模型分布式权重文件夹路径
use_parallel: True
auto_trans_ckpt: False # 是否开启自动权重转换,离线切分设置为False
parallel_config:
data_parallel: 1
model_parallel: 4 # 多卡推理配置模型切分,一般与使用卡数一致
pipeline_parallel: 1
processor:
tokenizer:
vocab_file: "/mf_model/qwen2_5_72b/vocab.json" # vocab文件路径
merges_file: "/mf_model/qwen2_5_72b/merges.txt" # merges文件路径
模型的config.json文件可以使用save_pretrained接口生成,示例如下:
from mindformers import AutoConfig
model_config = AutoConfig.from_pretrained("/mf_model/qwen2_5_72b/predict_qwen2_5_72b.yaml")
model_config.save_pretrained(save_directory="./json/qwen2_5_72b/", save_json=True)