如何通过MindIE服务化部署DeepSeek-R1-Distill-Qwen-14B:完整API接口指南
·
如何通过MindIE服务化部署DeepSeek-R1-Distill-Qwen-14B:完整API接口指南
DeepSeek-R1-Distill-Qwen-14B是基于昇思MindSpore框架优化的大语言模型,通过MindIE服务化部署可快速实现企业级API接口服务。本文将详细介绍从环境准备到API调用的全流程,帮助开发者零门槛搭建高性能推理服务。
🌐 部署环境要求
部署DeepSeek-R1-Distill-Qwen-14B推理服务需满足以下硬件和软件条件:
- 硬件配置:1台(2卡)Atlas 800T/800I A2(64G)服务器(基于BF16权重)
- 系统环境:昇思MindSpore专用Docker容器
- 磁盘空间:至少28GB(用于存放模型权重和配置文件)
🚀 快速开始部署
1️⃣ 清理系统环境
首先停止服务器中可能影响部署的进程:
pkill -9 python
pkill -9 mindie
pkill -9 ray
2️⃣ 拉取容器镜像
执行以下命令获取昇思MindSpore推理容器:
docker pull swr.cn-central-221.ovaijisuan.com/mindformers/mindformers1.3_mindspore2.4:deepseek-r1-distill
3️⃣ 启动容器实例
创建并启动容器(注意修改权重存放路径):
docker run -it --privileged --name=DSR1DistillQwen14B --net=host \
--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 /mnt/data/DSR1DistillQwen14B:/mnt/data/DSR1DistillQwen14B \
swr.cn-central-221.ovaijisuan.com/mindformers/mindformers1.3_mindspore2.4:deepseek-r1-distill \
bash
⚠️ 注意:除推理请求外,所有操作均需在容器内执行
📥 模型下载与配置
1️⃣ 下载模型权重
首先设置下载路径白名单:
export HUB_WHITE_LIST_PATHS=/mnt/data/DSR1DistillQwen14B
安装模型下载工具并下载权重:
pip install openmind_hub
from openmind_hub import snapshot_download
snapshot_download(
repo_id="MindSpore-Lab/DeepSeek-R1-Distill-Qwen-14B",
local_dir="/mnt/data/DSR1DistillQwen14B",
local_dir_use_symlinks=False
)
2️⃣ 修改配置文件
模型配置文件
编辑peizhi文件夹下的配置文件:
load_checkpoint: '/mnt/data/DSR1DistillQwen14B' # 权重路径
vocab_file: '/mnt/data/DSR1DistillQwen14B/peizhi/tokenizer.json' # tokenizer路径
tokenizer_file: '/mnt/data/DSR1DistillQwen14B/peizhi/tokenizer.json' # tokenizer路径
主要配置文件包括:
- peizhi/predict_DSR1DistillQwen14B.yaml
- peizhi/config.json
- peizhi/tokenizer.json
MindIE服务配置
修改mindie-server配置:
"npuDeviceIds" : [[0,1]],
"modelName" : "deepseek-r1-distill-qwen-14b",
"modelWeightPath" : "/mnt/data/DSR1DistillQwen14B/peizhi", # 配置路径
"worldSize" : 2,
"maxIterTimes" : 512 # 推理token长度限制
🔧 服务化部署步骤
1️⃣ 配置环境变量
在服务器中设置必要的环境变量:
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/mindie/latest/mindie-llm/set_env.sh
source /usr/local/Ascend/mindie/latest/mindie-service/set_env.sh
export LCAL_IF_PORT=8129
export MS_SCHED_HOST=127.0.0.1 # scheduler节点ip地址
export MS_SCHED_PORT=8090
export PYTHONPATH=/root/mindformers:$PYTHONPATH
export ASCEND_RT_VISIBLE_DEVICES=0,1
2️⃣ 启动推理服务
运行以下命令启动mindie-service服务:
cd /usr/local/Ascend/mindie/latest/mindie-service/bin/
./mindieservice_daemon
出现以下信息表示服务启动成功:
Daemon start success!
📡 API接口调用指南
基本请求格式
使用curl发送推理请求:
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '
{
"model": "deepseek-r1-distill-qwen-14b",
"messages": [{"role": "user", "content": "介绍一下中国"}],
"frequency_penalty": 2,
"max_tokens": 1024,
"stream": false
}' http://127.0.0.1:1025/v1/chat/completions
参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| model | string | 模型名称,固定为"deepseek-r1-distill-qwen-14b" |
| messages | array | 对话历史,包含role和content字段 |
| frequency_penalty | number | 重复惩罚系数,0-2之间 |
| max_tokens | integer | 最大生成token数 |
| stream | boolean | 是否流式输出 |
⚠️ 注意:若需生成更长文本,需同时修改mindie配置中的"maxIterTimes"和请求中的"max_tokens"字段
📝 部署注意事项
- 磁盘空间:确保模型存放路径有至少28GB可用空间
- 网络环境:模型下载需要稳定的网络连接,建议使用高速网络
- 权限设置:容器需要足够的权限访问昇腾设备
- 版本匹配:确保使用指定版本的容器镜像和昇思MindSpore框架
- 资源占用:推理服务会占用大量系统资源,建议单独部署在专用服务器
📚 相关文件路径
- 模型配置文件:peizhi/predict_DSR1DistillQwen14B.yaml
- 分词器配置:peizhi/tokenizer.json
- 服务配置文件:/usr/local/Ascend/mindie/latest/mindie-service/conf/config.json
- 权重存放路径:/mnt/data/DSR1DistillQwen14B
通过以上步骤,您可以快速完成DeepSeek-R1-Distill-Qwen-14B的服务化部署并通过API接口进行调用。如有部署问题,可参考项目文档或提交issue获取支持。
更多推荐
所有评论(0)