2025年迎来推理应用的持续爆发。开源社区vLLM提供了一系列的大模型推理加速技术,得到用户的支持与认可,越来越多应用基于vLLM构建和部署。近日,昇腾联合vLLM社区,推出全新的多样化算力接入机制,并创建vLLM昇腾开源项目,率先在昇腾上完成了最佳实践,使能vLLM全面支持昇腾推理。
昇腾首创多样化算力动态加载接入机制
为解决多样化算力的可扩展性、可维护性的问题,昇腾提出了全新的解耦方式,通过Python的Entry Point机制,实现动态加载接入多样性算力。
多样算力接入示例图
在此机制下,用户可通过实现硬件强相关的Worker、ModelRunner、Attention、Communicator等模块,以零侵入、用户无感的方式加载并运行。
基于该方案,昇腾在社区创建了vllm-ascend项目,率先完成了端到端最佳实践,使能vLLM正式全面支持昇腾推理,并在社区持续演进。
vLLM核心加速特性已全量支持昇腾,
充分释放算力
目前最核心的vLLM加速特性已全量支持昇腾硬件运行,也将持续迭代,进一步完善支持能力。
Chunked Prefill
?Automatic Prefix Caching
?Speculative decoding
?Multi Modality
?LogProbs
?Prompt logProbs
?Async output
?Multi step scheduler
?Best of
?Beam search
?Guided Decoding
?Tensor Parallel
?Pipeline Parallel
?快速体验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 imageexport IMAGE=quay.io/ascend/vllm-ascend:v0.7.3rc2docker 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验证运行
离线推理
您可以使用可使用vLLM + vLLM Ascend进行离线推理。
以下是example.py的示例:
from vllm import LLM, SamplingParamsprompts = ["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.promptgenerated_text = output.outputs[0].textprint(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在线推理
您也可以一键部署在线推理服务:
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
◆ 往期推荐◆
数智赋能 辽沈大地因地制宜发展新质生产力
股票
板块
用户
资讯
评论 (0)