代码
快速支持DeepSeek-V3-0324,昇思MindSpore+vLLM服务化部署开源版本上线

快速支持DeepSeek-V3-0324,昇思MindSpore+vLLM服务化部署开源版本上线

快速支持DeepSeek-V3-0324,昇思MindSpore+vLLM服务化部署开源版本上线

近日,基于昇思 MindSpore AI 框架+vLLM的DeepSeek-V3-0324 模型完成适配并上线魔乐社区。

作为开源AI框架,MindSpore 以其卓越的性能优化、灵活的模型开发能力和高效的分布式训练能力,为大规模模型训推部署提供全流程开源支持。通过如下步骤,即可快速体验昇思MindSpore版本的DeepSeek-V3-0324服务化。

魔乐社区链接:https://modelers.cn/models/MindSpore-Lab/DeepSeek-V3-0324

# 01 环境搭建

环境准备:四台Atlas 800I A2 (64G),并配置好组网,四台设备的卡与卡之间能够互相ping通。

四台设备分别拉取镜像:


docker pull hub.oepkgs.net/oedeploy/openeuler/aarch64/mindspore:20250326

四台设备分别杀进程:


ps -ef | grep python | grep -v grep | awk '{print $2}' | xargs kill -9
ps -ef | grep ray | grep -v grep | awk '{print $2}' | xargs kill -9

四台设备分别启动容器,四台设备的hostname需要不同。/data/DeepSeek-V3-0324用于存放权重及yaml配置文件。

docker run -it --name=DeepSeek_V3_0324 --ipc=host --network=host --privileged=true --hostname=worker3 \
        --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/devmm_svm \
        --device=/dev/hisi_hdc \
        -v /usr/local/sbin/:/usr/local/sbin/ \
        -v /var/log/npu/slog/:/var/log/npu/slog \
        -v /var/log/npu/profiling/:/var/log/npu/profiling \
        -v /var/log/npu/dump/:/var/log/npu/dump \
        -v /var/log/npu/:/usr/slog \
        -v /etc/hccn.conf:/etc/hccn.conf \
        -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
        -v /usr/local/dcmi:/usr/local/dcmi \
        -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
        -v /etc/ascend_install.info:/etc/ascend_install.info \
        -v /etc/vnpu.cfg:/etc/vnpu.cfg \
        -v /data:/data \
        --pids-limit 409600 \
        --shm-size="250g" \
        834520af4bdd \
        /bin/bash

# 02

下载权重及yaml配置文件

魔乐社区权重及yaml配置文件下载:


from openmind_hub import snapshot_download
 
snapshot_download(
    repo_id="MindSpore-Lab/DeepSeek-V3-0324",
    local_dir="/data/DeepSeek-V3-0324",
    local_dir_use_symlink=False
)

yaml配置文件修改:

# 修改为模型权重路径 
load_checkpoint: '/data/DeepSeek-V3-0324'
 
# 修改为模型tokenizer.json文件所在路径
vocab_file: '/data/DeepSeek-V3-0324/tokenizer.json'
 
# 修改为模型tokenizer.json文件所在路径
tokenizer_file: '/data/DeepSeek-V3-0324/tokenizer.json'

# 03

启动推理服务

容器中添加环境变量:

export MINDFORMERS_MODEL_CONFIG=/data/DeepSeek-V3-0324/predict_deepseek3_671b.yaml
export ASCEND_CUSTOM_PATH=$ASCEND_HOME_PATH/../
export vLLM_MODEL_BACKEND=MindFormers
export vLLM_MODEL_MEMORY_USE_GB=50
export ASCEND_TOTAL_MEMORY_GB=64
export MS_ENABLE_LCCL=off
export HCCL_OP_EXPANSION_MODE=AIV
export HCCL_SOCKET_IFNAME=enp189s0f0
export GLOO_SOCKET_IFNAME=enp189s0f0
export TP_SOCKET_IFNAME=enp189s0f0
export HCCL_CONNECT_TIMEOUT=3600
export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7

主机及辅机设置

选择一台设备作为主节点,执行如下命令:

ray stop
ray start --head --port=6380

其他三台设备作为辅节点,依次执行如下命令:


ray stop
ray start --address=主节点IP:6380

主节点容器中拉起服务:

python3 -m vllm_mindspore.entrypoints vllm.entrypoints.openai.api_server --model "模型权重路径" --trust_remote_code --tensor_parallel_size=32 --enable-prefix-caching --enable-chunked-prefill --max-num-seqs=256 --block-size=32 --max_model_len=70000 --max-num-batched-tokens=2048 --distributed-executor-backend=ray

发起推理服务请求,若在主节点发起请求,新开一个终端,IP地址是0.0.0.0或者localhost。

curl http://localhost:8000/v1/completions -H "Content-Type: application/json" -d '{"model": "模型权重路径", "prompt": "请介绍下北京的top景点", "temperature": 0, "max_tokens": 256, "top_p": 1.0, "top_k": 1, "repetition_penalty":1.0}'