news 2026/5/9 19:50:13

vLLM-Ascend 部署与推理服务化实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vLLM-Ascend 部署与推理服务化实战

一、前言

vLLM 是目前大模型推理领域最火热的高性能推理框架之一,以其 PagedAttention 技术著称。而 vLLM-Ascend 则是 vLLM 在华为昇腾 NPU 上的硬件插件,使得昇腾算力能够通过 vLLM 释放强大的推理性能。

在真正开始做迁移之前,我原本以为 GPU 和 NPU 在推理框架上的适配会非常复杂,但上手后才发现,vLLM-Ascend 的设计思路非常清晰:它在底层为昇腾补齐了算子、调度和内存管理,让我几乎不需要改动任何推理逻辑,就能把原本跑在 GPU 上的模型直接迁移到昇腾上运行。实际体验下来,无论是吞吐、并发还是长上下文处理能力,昇腾在 vLLM 的调度机制配合下都能发挥出非常可观的性能。

那么接下来的话我也会带大家来进行一系列的实战操作。

开源仓地址:https://gitcode.com/gh_mirrors/vl/vllm-ascend

下载方式也非常简单,直接使用git拉取就行了:

二、vLLM-Ascend 环境部署与基础配置

在开始 vLLM-Ascend 的安装与部署前,确保服务器已正确安装CANN 软件栈并验证NPU 驱动正常运行是至关重要的前提。CANN是昇腾 NPU 的核心软件栈,提供了从硬件驱动到上层应用的完整支持,而 NPU 驱动则是确保硬件与软件交互的基础。

我们可以参考官网给出的安装教程进行快速安装:

1. 环境准备

验证 Ascend NPU 固件和驱动程序是否正确安装:

# 检查 NPU 状态 npu-smi info

2.配置软件环境

最简单的方式是直接使用 CANN 官方 Docker 镜像,一条命令即可快速准备完整的软件环境。

3. 克隆代码与安装

推荐使用 Conda 创建独立的 Python 环境。

# 创建环境 conda create -n vllm-ascend python=3.10 conda activate vllm-ascend # 克隆 vLLM-Ascend 仓库 git clone https://github.com/vllm-project/vllm-ascend.git cd vllm-ascend # 安装依赖 pip install -r requirements.txt # 安装 vllm-ascend 插件 pip install -e .

4. 基础配置检查

安装完成后,可以通过简单的 Python 脚本检查 vLLM 是否正确识别到了 Ascend 后端。

from vllm import LLM, SamplingParams prompts = [ "Hello, my name is", "The president of the United States is", "The capital of France 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-Ascend 已经在昇腾 NPU 上顺利搭建好运行环境,接下来我将带大家进行模型加载、推理服务化以及性能调优的实战操作,让大家能够快速将本地模型变成可调用的 API 服务。

三、vLLM-Ascend 推理服务化实操

vLLM 提供了兼容 OpenAI API 的服务化启动方式,这也是生产环境中最常用的模式。通过这种方式,我们可以把本地模型部署成 API 服务,外部程序只需要通过 HTTP 请求就能调用模型生成文本。这种服务化方式不仅方便在生产环境中集成,也便于多用户并发访问,充分发挥 NPU 的算力优势。

1. 启动 API Server

假设我们使用Qwen/Qwen2.5-7B-Instruct模型(请确保模型权重已下载到本地)。

python -m vllm.entrypoints.openai.api_server \ --model /path/to/Qwen2.5-7B-Instruct \ --trust-remote-code \ --tensor-parallel-size 1 \ --host 0.0.0.0 \ --port 8000 # 示例输出日志 # INFO: Started server process [12345] # INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) # INFO 12-03 10:00:00 llm_engine.py:70] Initializing an LLM engine with config: model='/path/to/Qwen2.5-7B-Instruct'... # INFO 12-03 10:00:02 model_executor.py:45] # PagedAttention: block_size=16, num_gpu_blocks=2048 # INFO 12-03 10:00:10 worker.py:120] Model loaded successfully on Ascend NPU (Device 0). # INFO: Application startup complete.

参数说明:

  • --tensor-parallel-size: 根据你的 NPU 卡数设置,单卡设为 1。
  • --host: 监听地址。

启动过程中,你会看到模型加载、显存分配(KV Cache)以及 Warmup 的日志。

2. 客户端调用测试

服务启动后,我们可以使用curl或 Python 的openai库进行调用。

curl http://localhost:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "/path/to/Qwen2.5-7B-Instruct", "messages": [ {"role": "user", "content": "你好,请介绍一下昇腾 NPU。"} ], "temperature": 0.7 }' # 示例响应 # { # "id": "chatcmpl-890123", # "object": "chat.completion", # "created": 1701590000, # "model": "/path/to/Qwen2.5-7B-Instruct", # "choices": [{ # "index": 0, # "message": { # "role": "assistant", # "content": "昇腾(Ascend)是华为推出的AI处理器品牌..." # }, # "finish_reason": "stop" # }], # "usage": { "prompt_tokens": 15, "completion_tokens": 50, "total_tokens": 65 } # }

参数说明:

3. 服务化部署实践与优化

KV CachevLLM 使用 KV 缓存加速长上下文生成,启动日志中会显示分配情况。

  • --max-num-seqs可以调整并发请求数
  • --gpu-memory-utilization用于控制显存占用

多卡部署

  • --tensor-parallel-size设置张量并行度
  • 多卡通信需要 HCCL 配置正确

调试技巧

  • 通过vllm日志监控吞吐量 (tokens/s)
  • 遇到显存不足可降低并发序列或 KV Cache 使用比例

通过服务化部署,vLLM-Ascend 能够将本地模型快速变成可 HTTP 调用的 API 服务。无论是单机单卡还是多卡并发部署,整个流程清晰可控,我个人认为需要重点关注:

环境准备:CANN 驱动、NPU 状态、Docker 镜像或 Python 环境。

模型加载与 KV Cache:确保长上下文生成高效。

API 服务启动与客户端调用:兼容 OpenAI API,外部程序调用简单。

多卡并行与性能调优:通过日志和参数优化吞吐和显存利用率。

对生产环境而言,这种方式不仅降低了部署复杂度,还能最大化利用 Ascend NPU 的算力潜力,同时提供 GPU 类似的使用体验。

四、总结

通过 vLLM-Ascend,我们能够轻松地在昇腾硬件上搭建高性能的大模型推理服务。从环境准备、代码部署到 API 方式启动推理,再到性能调优与问题排查,每一个环节都直接影响最终的吞吐、延迟和稳定性。对我来说,最直观的感受就是:只要底层环境准备充分,vLLM-Ascend 的接入是顺畅且可控的,几乎能够做到“与 GPU 一致的使用体验”,同时充分释放 NPU 的算力潜力。昇腾PAE案例库也为本文的写作提供了有力参考。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 22:38:57

SQL汇总分析与分组查询实战入门

SQL汇总分析与分组查询实战入门 在日常的数据工作中,我们经常需要回答诸如“哪个产品的销量最高?”、“每位用户的平均消费是多少?”、“哪些班级的及格率低于60%?”这类问题。这些问题的本质,是对数据进行统计、归类和…

作者头像 李华
网站建设 2026/4/30 12:14:21

2025 智能垂钓选型:为何高端视觉渔具首选 电鱼智能 RK3588?

什么是 电鱼智能 EFISH-SBC-RK3588?电鱼智能 EFISH-SBC-RK3588 是一款专为高性能边缘计算打造的旗舰级单板计算机。它搭载 Rockchip RK3588 SoC(8nm 工艺,8核 64位架构),集成了 6 TOPS NPU 和 Mali-G610 MP4 GPU。作为…

作者头像 李华
网站建设 2026/5/1 20:32:50

5大维度全面拆解cogagent与Open-AutoGLM,90%的人都选错了

第一章:5大维度全面拆解cogagent与Open-AutoGLM,90%的人都选错了在自动化机器学习(AutoML)领域,cogagent 与 Open-AutoGLM 是当前备受关注的两大开源框架。尽管二者均致力于降低模型调优门槛,但在实际应用中…

作者头像 李华
网站建设 2026/4/18 11:51:03

Windows DX运行库 一键安装工具 运行库下载软件

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华