
2026 年 7 月 27 日晚,月之暗面(Moonshot AI)新一代旗舰基础模型 Kimi K3 正式开放完整模型权重。官方发布 Kimi K3 技术报告,并开源支撑模型训练与运行的关键基础设施技术,包括 MoonEP、FlashKDA 和 AgentEnv,进一步推动大模型技术开放与生态共建。作为 Kimi 系列迭代升级的重要模型,Kimi K3 在模型规模、上下文理解、代码能力、复杂推理等领域实现全面提升,并通过开放完整权重进一步推动大模型技术创新与生态共建。Kimi K3 采用 MoE 混合专家架构,总参数规模 2.8 万亿,支持百万级 Token 上下文窗口,面向长程编程、知识工作和复杂推理等场景进行了深度优化,在多项模型评测中展现出领先的综合能力,为开发者构建智能化应用提供更加开放的大模型基础。
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,15vllm 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-
供稿 | 周栋、鲁卫军
编辑 | 丘云
校审 | 郑振宇、刘彦飞
关注我们,了解更多
▼
