Ascend-SACT/Kimi-K2.5-vllm-ascend-x86
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

1.项目概述

本文详细介绍了Kimi-K2.5模型基于ascend-docker 统一镜像,在 Ascend+X86 硬件环境下基于vLLM推理引擎的部署指南,帮助用户与开发者快速基于昇腾平台开展模型部署及应用创新。

2.模型简介

Kimi-K2.5是月之暗面(Moonshot AI)于2026年1月27日正式发布并开源的原生多模态智能体旗舰模型,基于Kimi-K2优化升级,经约15万亿混合视觉与文本Token预训练构建而成。模型采用1T总参数量、32B激活参数的稀疏MoE架构,配备256K上下文窗口与MoonViT视觉编码器,可原生处理高分辨率图像与视频。 其核心优势集中在视觉编程、智能体蜂群与办公生产力三大维度,可将视觉交互、视频内容转化为前端代码,自主指挥100个子智能体并行处理复杂任务,还能高效处理办公文档、生成专业交付物。该模型在多项权威基准测试中表现突出,开源且支持多平台部署,助力开发者快速落地多模态应用创新,填补传统模型在复杂场景处理中的短板。

3.运行环境

硬件环境

型号卡数模型
NPU:Ascend 910B2 / CPU:X8616Kimi-K2.5

软件环境

软件名版本
CANN8.5.0
PythonPython 3.11.14
torch2.9.0+cpu
torch-npu2.9.0

4.拉取统一镜像

docker pull -platform=amd64 swr.cn-north-4.myhuaweicloud.com/ascend-sact/ascend-910b-ubuntu:v3.0

5.模型权重下载

modelscope download --model moonshotai/Kimi-K2.5  --local_dir xx/Kimi-K2.5

6.更新vllm和vllm-ascend源代码并安装

6.1 vllm下载和安装

vllm代码下载

# 下载vllm指定仓源代码
# 方案一:
git clone -b main https://github.com/LoganJane/vllm.git
# 方案二,如果上面命令网络超时,则可以采用下面的命令下载:
git clone -b main https://gh-proxy.com/https://github.com/LoganJane/vllm.git

vllm安装

# 进入代码克隆自动创建的vllm目录内
# 注意vllm路径下还嵌套vllm目录,不要进入,需要在setup.py相同目录下执行如下命令
# 激活 ascend-infer 的虚拟环境
# 卸载已经安装的 vllm
# 加载昇腾(Ascend)相关工具包的环境变量
# 跳过校验安装vllm
cd vllm
conda activate ascend-infer
pip uninstall -y vllm
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
python setup.py install --force

如果安装失败出现以下信息,则务必参考第9.1 小节 FAQ安装失败规避办法处理

File "...../vllm-ascend/setup.py", line 88, in build
    subprocess.check_call(["cmake", *build_args], cwd=self.build_temp)
File "/opt/mamba/envs/ascend-infer/lib/python3.11/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', '..', '-j=92', '--target=vllm_ascend_c']' returned

安装期间系统会自动到github下载oneDNN,如果出现以下信息,则意味着github连接失败请参考第9.2小节FAQ-无法下载oneDNN.git章节规避。

fatal: unable to access 'https://github.com/oneapi-src/oneDNN.git/': Failed to connect to github.com port 443 after 131074 ms: Couldn't connect to server

检查效果

需要检查一下安装后,系统的安装目录中是否是当前安装的新的文件,通过检查一下文件夹创建时间来判断,如果是当前时间,则正确。

执行命令:ll -d /opt/mamba/envs/ascend-infer/lib/python3.11/site-packages/vllm* 执行结果:drwxr-xr-x 33 root root 4096 Mar 5 11:55 /opt/mamba/envs/ascend-infer/lib/python3.11/site-packages/vllm/ .......

文件夹vllm创建时间为当前时间。

6.2 vllm-ascend下载和安装

vllm-ascend代码下载

# 下载vllm-ascend指定仓源代码
# 方案一:
git clone -b main https://github.com/LoganJane/vllm-ascend.git
# 方案二,如果上面命令网络超时,则可以采用下面的命令下载:
git clone -b main https://gh-proxy.com/https://github.com/LoganJane/vllm-ascend.git

vllm-ascend安装

# 进入代码克隆自动创建的vllm-ascend目录内
# 注意vllm-ascend路径下还嵌套vllm-ascend目录,不要进入,需要在setup.py相同目录下执行如下命令
# 激活 ascend-infer 的虚拟环境
# 卸载已经安装的 vllm-ascend
# 加载昇腾(Ascend)相关工具包的环境变量
# 跳过校验安装vllm
cd vllm-ascend
conda activate ascend-infer
pip uninstall -y vllm-ascend
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
python setup.py install --force

如果安装失败出现以下信息,则务必参考第9.1 小节 FAQ安装失败规避办法处理

File "...../vllm-ascend/setup.py", line 88, in build
    subprocess.check_call(["cmake", *build_args], cwd=self.build_temp)
File "/opt/mamba/envs/ascend-infer/lib/python3.11/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', '..', '-j=92', '--target=vllm_ascend_c']' returned

安装期间系统会自动到github下载oneDNN,如果出现以下信息,则意味着github连接失败请参考第9.2小节FAQ-无法下载oneDNN.git章节规避。

fatal: unable to access 'https://github.com/oneapi-src/oneDNN.git/': Failed to connect to github.com port 443 after 131074 ms: Couldn't connect to server

检查效果

需要检查一下安装后,系统的安装目录中是否是当前安装的新的文件,通过检查一下文件夹创建时间来判断,如果是当前时间,则正确。

执行命令:ll -d /opt/mamba/envs/ascend-infer/lib/python3.11/site-packages/vllm* 执行结果:drwxr-xr-x 33 root root 4096 Mar 5 12:05 /opt/mamba/envs/ascend-infer/lib/python3.11/site-packages/vllm-ascend/ .......

文件夹vllm-ascend创建时间为当前时间。

7. 适配补丁

7.1 w4a16.py文件

Kimi-K2.5使用w4a16量化,请下载本项目的w4a16.py文件,并替换掉原来的opt/mamba/envs/ascend-infer/lib/python3.11/site-packages/vllm_ascend/quantization/methods/w4a16.py文件。

7.2 __ init__.py

需要在 __ init__.py增加AscendW4A16LinearMethod等,请下载本项目的 __ init__.py文件,并替换掉原来的opt/mamba/envs/ascend-infer/lib/python3.11/site-packages/vllm_ascend/quantization/methods/ __ init__.py文件。

7.3 kimi_k25.py

需要修改kimi_k25.py文件,请下载本项目的kimi_k25.py文件,并替换掉原来的/opt/mamba/envs/ascend-infer/lib/python3.11/site-packages/vllm/model_executor/models/kimi_k25.py文件。

8.推理执行

创建推理脚本

vi编辑infer_kimi-k2.5.sh推理脚本

export VLLM_USE_V1=1 
# 调度优化
export PYTORCH_NPU_ALLOC_CONF="expandable_segments:True"   
export TASK_QUEUE_ENABLE=1   
# 通信优化
export HCCL_BUFFSIZE=1024
export HCCL_OP_EXPANSION_MODE="AIV"
export VLLM_ASCEND_ENABLE_FLASHCOMM=0   

export VLLM_TORCH_PROFILER_WITH_STACK=0    
export VLLM_ASCEND_ENABLE_FUSED_MC2=1  
export VLLM_ASCEND_ENABLE_TOPK_OPTIMIZE=1
export VLLM_ASCEND_FUSION_OP_TRANSPOSE_KV_CACHE_BY_BLOCK=1

export HCCL_INTRA_ROCE_ENABLE=1

export CUDA_DEVICE_MAX_CONNECTIONS=1
export OMP_PROC_BIND=false
export OMP_NUM_THREADS=8

export ATB_LLM_HCCL_ENABLE=1
export ATB_OPERATION_EXECUTE_ASYNC=2
vllm serve 模型权重所在目录 \
--served-model-name kimi \
--host 0.0.0.0 \
--port 8016 \
--tensor-parallel-size 16 \
--enable-expert-parallel \
--max-num-seqs 16 \
--max-model-len 16384 \
--max-num-batched-tokens 1024 \
--trust-remote-code \
--gpu-memory-utilization 0.85 \
--enable-prefix-caching \
--additional-config '{"ascend_scheduler_config":{"enabled":true,"enable_chunked_prefill":true},"torchair_graph_config":{"enabled":true}}' \
--compilation-config  '{"cudagraph_capture_sizes":[1,2,4,8,16,32,64],"cudagraph_mode":"FULL_DECODE_ONLY"}' \
--kv-cache-dtype auto \
--seed 1024

执行推理脚本

conda activate ascend-infer
bash  infer_kimi-k2.5.sh

测试效果

curl http://0.0.0.0:8016/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "kimi",
"messages": [
        {"role": "system", "content": "You are Kimi, an AI assistant created by Moonshot AI."},
        {"role": "user", "content": [{"type": "text", "text": "请介绍一下上海"}]}
    ],
"temperature": 0.6,
"max_tokens": 256
}'

9. FAQ

9.1 vllm/vllm-ascend安装失败,如何重新编译?

出错信息

File "...../vllm-ascend/setup.py", line 88, in build
    subprocess.check_call(["cmake", *build_args], cwd=self.build_temp)
File "/opt/mamba/envs/ascend-infer/lib/python3.11/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', '..', '-j=92', '--target=vllm_ascend_c']' returned

解决方案

重新执行python setup install --force前,先清除历史编译信息:

cd xxx (前期git clone下载的vllm/vllm-ascend路径)
rm -rf build csrc/build dist *.egg-info
find . -name "CMakeCache.txt" -delete 
find . -name "CMakeFiles" -type d -exec rm -rf {} +
rm -rf /tmp/vllm*

9.2 vllm安装失败(无法下载oneDNN.git),如何处理?

出错信息:

fatal: unable to access 'https://github.com/oneapi-src/oneDNN.git/': Failed to connect to github.com port 443 after 131074 ms: Couldn't connect to server

解决方案1:

通过Vi命令在/etc/hosts文件增加两行github IP地址说明

140.82.112.4 github.com
199.232.69.194 github.global.ssl.fastly.net

解决方案2:

如果/etc/hosts增加github.com地址后仍无法下载,尝试修改vllm/cmake/cpu_extension.cmak文件, 将oneDNN下载地址从github修改为gitee,具体操作如下:

vi vllm/cmake/cpu_extension.cmak 将 GIT_REPOSITORY https://github.com/oneapi-src/oneDNN.git 替换为 GIT_REPOSITORY https://gitee.com/wylucky/oneDNN.git