vLLM核心加速特性全量支持昇腾
发表于 2025/04/03
2025年迎来推理应用的持续爆发。开源社区vLLM提供了一系列的大模型推理加速技术,得到用户的支持与认可,越来越多应用基于vLLM构建和部署。近日,昇腾联合vLLM社区,推出全新的多样化算力接入机制,并创建vLLM昇腾开源项目,率先在昇腾上完成了最佳实践,使能vLLM全面支持昇腾推理。
昇腾首创多样化算力动态加载接入机制
为解决多样化算力的可扩展性、可维护性的问题,昇腾提出了全新的解耦方式,通过Python的Entry Point机制,实现动态加载接入多样性算力。
多样算力接入示例图
在此机制下,用户可通过实现硬件强相关的Worker、ModelRunner、Attention、Communicator等模块,以零侵入、用户无感的方式加载并运行。
基于该方案,昇腾在社区创建了vllm-ascend项目,率先完成了端到端最佳实践,使能vLLM正式全面支持昇腾推理,并在社区持续演进。
vLLM核心加速特性已全量支持昇腾,充分释放算力
目前最核心的vLLM加速特性已全量支持昇腾硬件运行,也将持续迭代,进一步完善支持能力。
快速体验vLLM昇腾项目
- 环境检查
体验之前,您需确认固件/驱动已正确安装,可运行如下命令确认:
npu-smi info
如正常回显,表示环境正确配置。若未正常显示,您可以参考:
https://www.hiascend.com/document/detail/zh/canncommercial/800/softwareinst/instg/instg_0005.html?Mode=PmIns&OS=Ubuntu&Software=cannToolKit
配置环境。
扫一扫前往安装说明
- 容器快速体验
您可以使用如下命令,一键拉起vLLM Ascend容器镜像:
# Update DEVICE according to your device (/dev/davinci[0-7])
export DEVICE=/dev/davinci0
# Update the vllm-ascend image
export IMAGE=quay.io/ascend/vllm-ascend:v0.7.3rc2
docker run --rm \
--name vllm-ascend \
--device $DEVICE \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-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 \
-p 8000:8000 \
-it $IMAGE bash
验证运行
I 离线推理
您可以使用可使用vLLM + vLLM Ascend进行离线推理。
以下是example.py的示例:
from vllm import LLM, SamplingParams
prompts = [
"Hello, my name is",
"The future of AI is",]
# Create a sampling params object.
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
# Create an LLM.
llm = LLM(model="Qwen/Qwen2.5-0.5B-Instruct")
# Generate texts from the prompts.
outputs = llm.generate(prompts, sampling_params)
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
运行以上脚本即可使用vLLM + vLLM Ascend进行推理:
# export VLLM_USE_MODELSCOPE=true to speed up download if huggingface is not reachable.
python example.py
I 在线推理
您也可以一键部署在线推理服务:
vllm serve Qwen/Qwen2.5-0.5B-Instruct
服务启动后,您可以通过curl请求来进行内容生成:
curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{"model": "Qwen/Qwen2.5-0.5B-Instruct", "prompt": "The future of AI is", "max_tokens": 5, "temperature": 0}' | python3 -m json.tool
开发者可自定义开发昇腾算子
昇腾vLLM Ascend在首发版本中,也支持开发者使用CANN提供的强大的Ascend C编程接口自己实现所需算子。
基于AscendC与C++实现,充分发挥昇腾硬件的性能优势。
兼容PyTorch Custom Op注册机制,vLLM代码零修改,开箱即用。
目前vLLM社区已提供了完整的 Demo 实现。可参考官方教程:AscendC 开发指南,了解基本语法、算子开发流程。欢迎感兴趣的开发者加入社区,共同完善vLLM Ascend生态,探索更多技术可能性!
相关链接
项目仓库:https://github.com/vllm-project/vllm-ascend
文档链接:https://vllm-ascend.readthedocs.io/
问题反馈:https://github.com/vllm-project/vllm-ascend/issues
社区论坛:https://discuss.vllm.ai/c/hardware-support/vllm-ascend-support