
vLLM 是 PyTorch Foundation 下的开源 LLM 推理引擎,为用户和开发者提供快速、易用的 LLM 推理能力,vLLM-Ascend提供了vLLM对昇腾的支持。本指南将帮助你使用 OpenAtom openEuler(简称:“openEuler”或“开源欧拉”)和 vLLM Ascend 在昇腾上运行 Kimi K3。

本指南将采用 vLLM Ascend 的容器镜像启动方式,在4台昇腾 Atlas 800 A3 (128G × 8) 节点上运行Kimi K3。

在拉起容器前,请先确保昇腾驱动已经正常安装,可使用 npu-smi info 命令进行查看。
Eco-Tech/Kimi-K3-w4a8(量化权重)
https://www.modelscope.cn/models/Eco-Tech/Kimi-K3-w4a8
每台A3上均使用如下命令拉起 vLLM Ascend 容器运行环境:
export IMAGE=quay.io/ascend/vllm-ascend:kimi-k3-a3-openeulerdocker run --rm--name vllm-ascend--shm-size=1g--net=host--privileged=true--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/davinci8--device /dev/davinci9--device /dev/davinci10--device /dev/davinci11--device /dev/davinci12--device /dev/davinci13--device /dev/davinci14--device /dev/davinci15--device /dev/davinci_manager--device /dev/devmm_svm--device /dev/hisi_hdc-v /usr/local/dcmi:/usr/local/dcmi-v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info-v /etc/ascend_install.info:/etc/ascend_install.info-v /root/.cache:/root/.cache-it $IMAGE bash
在启动服务之前,替换LOCAL_IP, NIC_NAME, PORT, RPC_PORT:
1.NIC_NAME 必须是 LOCAL_IP 的网口
2.默认 Node 0 为主节点, Node 1~3 的 NODE0_IP必须设置为 Node 0的 LOCAL_IP
3.启动推理服务时, Node 1、2、3的 –data-parallel-start-rank 参数值分别设置为1、2、3
● Node 0启动推理服务:
# Values that must be adapted to the target environment.export MODEL_PATH=<KIMI_K3_MODEL_PATH>export LOCAL_IP=<NODE0_LOCAL_IP>export NIC_NAME=<NODE0_NIC_NAME>export PORT=<SERVICE_PORT>export RPC_PORT=<DP_RPC_PORT>export HCCL_IF_IP=$LOCAL_IPexport GLOO_SOCKET_IFNAME=$NIC_NAMEexport TP_SOCKET_IFNAME=$NIC_NAMEexport HCCL_SOCKET_IFNAME=$NIC_NAMEexport VLLM_ENGINE_READY_TIMEOUT_S=7200export PYTORCH_NPU_ALLOC_CONF=expandable_segments:Trueexport OMP_PROC_BIND=falseexport OMP_NUM_THREADS=1export TASK_QUEUE_ENABLE=1export HCCL_BUFFSIZE=800export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15vllm serve $MODEL_PATH--served-model-name kimi-k3--port $PORT--allowed-local-media-path /--trust-remote-code--tensor-parallel-size 16--data-parallel-size 4--data-parallel-size-local 1--data-parallel-address $LOCAL_IP--data-parallel-rpc-port $RPC_PORT--enable-prefix-caching--enable-expert-parallel--max-num-seqs 16--max-model-len 131027--max-num-batched-tokens 24576--gpu-memory-utilization 0.9--compilation-config '{"cudagraph_mode":"FULL_DECODE_ONLY"}'--profiler-config '{"profiler": "torch", "torch_profiler_dir": "./vllm_profile", "torch_profiler_with_stack": false}'--mm-processor-cache-gb 0--additional-config '{"enable_cpu_binding":true, "enable_flashcomm1":true}'--mm-encoder-tp-mode data--limit-mm-per-prompt '{"vision_chunk": 40}'--enable-auto-tool-choice--reasoning-parser kimi_k3--tool-call-parser kimi_k3
● Node 1,2,3 启动推理服务
在每个工作节点上运行运行以下命令,注意将 LOCAL_IP 和 NIC_NAME 设置为每个节点对应的值,DP_START_RANK 与节点编号对应,分别设置为1、2、3
# Values that must be adapted to the target environment.export MODEL_PATH=<KIMI_K3_MODEL_PATH>export LOCAL_IP=<WORKER_LOCAL_IP>export NODE0_IP=<NODE0_LOCAL_IP>export NIC_NAME=<WORKER_NIC_NAME>export PORT=<SERVICE_PORT>export RPC_PORT=<DP_RPC_PORT>export DP_START_RANK=<1_OR_2_OR_3>
export HCCL_IF_IP=$LOCAL_IPexport GLOO_SOCKET_IFNAME=$NIC_NAMEexport TP_SOCKET_IFNAME=$NIC_NAMEexport HCCL_SOCKET_IFNAME=$NIC_NAMEexport PYTORCH_NPU_ALLOC_CONF=expandable_segments:Trueexport OMP_PROC_BIND=falseexport OMP_NUM_THREADS=1export TASK_QUEUE_ENABLE=1export HCCL_BUFFSIZE=800export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
vllm serve $MODEL_PATH --headless --served-model-name kimi-k3 --port $PORT --allowed-local-media-path / --trust-remote-code --tensor-parallel-size 16 --data-parallel-size 4 --data-parallel-size-local 1 --data-parallel-start-rank $DP_START_RANK --data-parallel-address $NODE0_IP --data-parallel-rpc-port $RPC_PORT --enable-prefix-caching --enable-expert-parallel --max-num-seqs 16 --max-model-len 131027 --max-num-batched-tokens 24576 --gpu-memory-utilization 0.9 --compilation-config '{"cudagraph_mode":"FULL_DECODE_ONLY"}' --profiler-config '{"profiler": "torch", "torch_profiler_dir": "./vllm_profile", "torch_profiler_with_stack": false}' --mm-processor-cache-gb 0 --additional-config '{"enable_cpu_binding":true, "enable_flashcomm1":true}' --mm-encoder-tp-mode data --limit-mm-per-prompt '{"vision_chunk": 40}' --enable-auto-tool-choice --reasoning-parser kimi_k3 --tool-call-parser kimi_k3
在 Node0 上通过以下命令验证服务是否正常:
curl http://<NODE0_LOCAL_IP>:<SERVICE_PORT>/v1/chat/completions-H "Content-Type: application/json"-d '{"model": "kimi-k3","messages": [{"role": "user","content": [{"type": "text","text": "The future of AI is"}]}],"max_tokens": 1024,"temperature": 1.0,"top_p": 0.95}'
-END-
供稿 | 周栋、鲁卫军
编辑 | 丘云
校审 | 郑振宇、刘彦飞
Day 0 详细操作指南!基于 openEuler 和 vLLM Ascend,教你快速上手 GLM-5.2
基于 openEuler 和 vLLM Ascend,DeepSeek-V4 快速上手全攻略!
上手指南来啦!基于openEuler和vLLM Ascend快速上手GLM-5
基于 openEuler和 vLLM Ascend 快速上手 DeepSeek-V3.2-Exp
Day 0上手指南:在openEuler上基于vLLM Ascend 部署 Qwen3
关注我们,了解更多
▼

