MindSpore Models服务化使用

4 阅读1分钟

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)