行业资讯

三步在昇腾上跑通Qwen3-4B推理:MindSpore部署实操指南

发布时间:2026/8/24 10:52:12
三步在昇腾上跑通Qwen3-4B推理:MindSpore部署实操指南 三步在昇腾上跑通Qwen3-4B推理MindSpore部署实操指南【免费下载链接】Qwen3-4B项目地址: https://ai.gitcode.com/hf_mirrors/MindSpore-Lab/Qwen3-4B在 Atlas 800T A2 服务器上使用 MindSpore 2.6.0 CANN 7.6.0.1 容器配合 vLLM MindSpore 后端你可以让 Qwen3-4B 完成离线推理。整个部署就三步下载权重、创建容器、运行脚本。开始前的环境检查 动手之前逐项核对以下清单硬件Atlas 800T A2 服务器配 8 张 NPU 卡/dev/davinci0 至 /dev/davinci7已安装昇腾驱动磁盘下载路径有足够空闲空间Qwen3-4B 的 bf16 权重大约 8GB下载白名单路径本文用/home/qwen3若改成其他路径后续所有命令里的路径必须同步修改Docker已安装且可正常使用第一步从魔乐社区下载模型权重这一步得到/home/qwen3下的 Qwen3-4B MindSpore 权重全套文件和配置文件。先给下载路径加白名单export HUB_WHITE_LIST_PATHS/home/qwen3再执行下面的 Python 脚本拉取权重仓库from openmind_hub import snapshot_download snapshot_download( repo_idMindSpore-Lab/Qwen3-4B, local_dir/home/qwen3, local_dir_use_symlinksFalse )排错报错时先确认白名单路径与local_dir完全一致且目标目录已存在、可写。第二步拉取镜像并创建容器 这一步得到一个名为 qwen3 的容器挂好 8 张 NPU 卡和权重目录可以直接进去操作。拉取 MindSpore 推理镜像docker pull swr.cn-central-221.ovaijisuan.com/mindsporelab/mindspore2.6.0-cann7.6.0.1-python3.11-openeuler22.03:v2创建容器把 NPU 设备和路径映射进去docker run -itd --privileged --nameqwen3 --nethost \ --shm-size 500g \ --device/dev/davinci0 \ --device/dev/davinci1 \ --device/dev/davinci2 \ --device/dev/davinci3 \ --device/dev/davinci4 \ --device/dev/davinci5 \ --device/dev/davinci6 \ --device/dev/davinci7 \ --device/dev/davinci_manager \ --device/dev/hisi_hdc \ --device /dev/devmm_svm \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware \ -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \ -v /usr/local/sbin:/usr/local/sbin \ -v /etc/hccn.conf:/etc/hccn.conf \ -v /home/qwen3:/home/qwen3 \ swr.cn-central-221.ovaijisuan.com/mindsporelab/mindspore2.6.0-cann7.6.0.1-python3.11-openeuler22.03:v2 \ bash关键参数逐项解释--shm-size 500g把容器共享内存设为 500GB。共享内存是进程间交换数据的缓冲区默认值偏小推理时 CPU 与 NPU 之间传大块数据容易超限所以直接调大--device/dev/davinci0至 7把 8 张 NPU 卡逐张传给容器少挂一张就少用一张--device/dev/davinci_manager、--device/dev/hisi_hdc、--device /dev/devmm_svmNPU 管理与驱动相关设备缺一不可-v挂载项把宿主机的驱动、固件、npu-smi 工具、NPU 配置文件/etc/hccn.conf和权重目录/home/qwen3挂到容器内同路径容器里才能直接读到模型进入容器后续所有命令都在容器内执行docker exec -it qwen3 bash排错容器建好后别忘了 exec 这一步在宿主机上直接跑 npu-smi 是看不到 NPU 卡的这是最常见的坑。第三步编写并执行推理脚本 ⚡这一步得到模型的第一次生成结果。在工作目录创建 generate_vllm.py 文件内容如下import vllm_mindspore # Add this line on the top of script. import mindspore from vllm import LLM, SamplingParams def main(args): # Sample prompts. prompts [ MindSpore is, Qwen3 is, ] # Create a sampling params object. sampling_params SamplingParams(temperature0, top_p0.95, max_tokensargs.max_tokens) # Create an LLM. llm LLM(modelargs.model_path) # Generate texts from the prompts. The output is a list of RequestOutput objects # that contain the prompt, generated text, and other information. outputs llm.generate(prompts, sampling_params) # Print the outputs. for output in outputs: prompt output.prompt generated_text output.outputs[0].text print(fPrompt: {prompt!r}, Generated text: {generated_text!r}) if __name__ __main__: import argparse parser argparse.ArgumentParser(descriptionvllm-mindspore qwen3 demo) parser.add_argument(--model_path, typestr, defaultQwen3-4B) parser.add_argument(--max_tokens, typeint, default256) args, _ parser.parse_known_args() main(args)注意第一行import vllm_mindspore必须放在文件最顶部它是接入 MindSpore 后端的入口。执行推理命令python generate_vllm.py --model_path/home/qwen3排错--model_path要指向含权重的那个目录也就是/home/qwen3本身指向它的上级目录会找不到配置文件。推理输出是否正常这样验证 ✅运行成功后终端按这个格式逐条输出Prompt: MindSpore is, Generated text: 生成的文本内容 Prompt: Qwen3 is, Generated text: 生成的文本内容两个参数各管一件事--model_path模型权重的本地目录默认值是 Qwen3-4B实际运行必须显式传入真实路径--max_tokens每条提示词最多生成的 token 数默认 256这份性能数据怎么解读bf16 精度下Qwen3-4B 在 Atlas 800T A2 服务器上达到 27.86 tokens/s。给个直观参照1 个 token 通常对应 1~2 个汉字27.86 tokens/s 大约意味着单次推理每秒输出 30~50 个字接近快速打字的速度。本项目基于 MIT 许可证开源完整条款见项目根目录下的 LICENSE 文件。【免费下载链接】Qwen3-4B项目地址: https://ai.gitcode.com/hf_mirrors/MindSpore-Lab/Qwen3-4B创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考