推理
概述
MindSpore Transformers 提供了大模型推理能力,用户可以执行 run_mindformer
统一脚本进行推理。用户使用 run_mindformer
统一脚本可以不编写代码,直接通过配置文件启动,用法便捷。
基本流程
推理流程可以分解成以下几个步骤:
1. 选择推理的模型
根据需要的推理任务,选择不同的模型,如文本生成可以选择Qwen3等。
2. 准备模型文件
获取Hugging Face模型文件:权重、配置与分词器,将下载的文件存放在同一个文件夹目录,方便后续使用。
3. 准备YAML配置文件
用户需要配置一份YAML文件,来定义任务的所有配置。MindSpore Transformers提供了一份YAML配置模板,用户可以基于模板,根据实际场景自定义配置,详细可见推理配置模板使用指南。
4. 执行推理任务
使用 run_mindformer
统一脚本执行推理任务。
使用 run_mindformer 一键启动脚本推理
单卡推理可以直接执行run_mindformer.py脚本,多卡推理需要借助scripts/msrun_launcher.sh来启动。
run_mindformer.py的参数说明如下:
参数 |
参数说明 |
---|---|
config |
yaml配置文件的路径 |
run_mode |
运行的模式,推理设置为predict |
use_parallel |
是否使用多卡推理 |
predict_data |
推理的输入数据,多batch推理时需要传入输入数据的txt文件路径,包含多行输入 |
predict_batch_size |
多batch推理的batch_size大小 |
msrun_launcher.sh包括run_mindformer.py命令和推理卡数两个参数。
下面将以Qwen3-8B为例介绍单卡和多卡推理的用法,推荐配置为predict_qwen3.yaml文件。
配置修改
当前推理可以直接复用Hugging Face的配置文件和tokenizer,并且在线加载Hugging Face的safetensors格式的权重,使用时的配置修改如下:
use_legacy: False
pretrained_model_dir: '/path/hf_dir'
参数说明:
use_legacy:决定是否使用老架构,默认值:
True
;pretrained_model_dir:Hugging Face模型目录路径,放置模型配置、Tokenizer等文件。
默认配置是单卡推理配置。如需使用多卡推理,相关配置修改如下:
use_parallel: False
parallel_config:
data_parallel: 1
model_parallel: 1
具体配置说明均可参考yaml配置说明。
单卡推理
当使用完整权重推理时,推荐使用默认配置,执行以下命令即可启动推理任务:
python run_mindformer.py \
--config configs/qwen3/predict_qwen3.yaml \
--run_mode predict \
--use_parallel False \
--predict_data '帮助我制定一份去上海的旅游攻略'
出现如下结果,证明推理成功。推理结果也会保存到当前目录下的 text_generation_result.txt
文件中。
'text_generation_text': [帮助我制定一份去上海的旅游攻略,包括景点、美食、住宿等信息...]
多卡推理
多卡推理的配置要求与单卡存在差异,需参考下面修改配置:
模型并行model_parallel的配置和使用的卡数需保持一致,下文用例为4卡推理,需将model_parallel设置成4;
当前版本的多卡推理不支持数据并行,需将data_parallel设置为1。
当使用完整权重推理时,需要开启在线切分方式加载权重,参考以下命令:
bash scripts/msrun_launcher.sh "run_mindformer.py \
--config configs/qwen3/predict_qwen3.yaml \
--run_mode predict \
--use_parallel True \
--predict_data '帮助我制定一份去上海的旅游攻略'" 4
出现如下结果,证明推理成功。推理结果也会保存到当前目录下的 text_generation_result.txt 文件中。详细日志可通过./output/msrun_log
目录查看。
'text_generation_text': [帮助我制定一份去上海的旅游攻略,包括景点、美食、住宿等信息...]
多卡多batch推理
多卡多batch推理的启动方式可参考上述多卡推理,但是需要增加predict_batch_size
的入参,并修改predict_data
的入参。
input_predict_data.txt
文件的内容和格式是每一行都是一个输入,问题的个数与predict_batch_size
一致,可以参考以下格式:
帮助我制定一份去上海的旅游攻略
帮助我制定一份去上海的旅游攻略
帮助我制定一份去上海的旅游攻略
帮助我制定一份去上海的旅游攻略
以完整权重推理为例,可以参考以下命令启动推理任务:
bash scripts/msrun_launcher.sh "run_mindformer.py \
--config configs/qwen3/predict_qwen3.yaml \
--run_mode predict \
--predict_batch_size 4 \
--use_parallel True \
--predict_data path/to/input_predict_data.txt" 4
推理结果查看方式,与多卡推理相同。
更多信息
更多关于不同模型的推理示例,请访问MindSpore Transformers 已支持模型库。