Nano-vLLM-Ascend

news/2025/12/7 21:19:31/文章来源:https://www.cnblogs.com/linzm14/p/19318861

参考
https://github.com/linzm1007/nano-vllm-ascend

Nano-vLLM-Ascend

nano-vllm是开源的一个gpu推理项目,基于开源版本弄的一个ascend npu版本推理小demo,旨在帮助初学者了解推理的整体流程,区别于vllm,nano-vllm体量更小,麻雀虽小五脏俱全,更有助于初学者学习。

框架层流程图

nona-vllm框架

模型层流程图

nano-vllm-Qwen3-0.6B

特性

  • 📖 可读代码库 - 约1200行Python代码的清晰实现
  • 优化套件 - 张量并行、Torch编译等

镜像下载

docker login xx
docker pull xxx/nano-vllm/nano-vllm-ascend:v1_20251112

容器运行

#!/bin/bashCONTAINER_NAME="xxx"# 停止并删除现有容器
docker stop $CONTAINER_NAME 2>/dev/null
docker rm $CONTAINER_NAME 2>/dev/nullecho "Starting SSH container..."docker run -it --name=$CONTAINER_NAME \--shm-size=20g \--net=host \--privileged=true \-u root \-w /data \--device=/dev/davinci_manager \--device=/dev/hisi_hdc \--device=/dev/devmm_svm \-v /data:/data \-v /tmp:/tmp \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \-v /usr/local/dcmi:/usr/local/dcmi \-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \-v /etc/ascend_install.info:/etc/ascend_install.info \-v /usr/local/sbin:/usr/local/sbin \-v /etc/hccn.conf:/etc/hccn.conf \-v /usr/bin/hccn_tool:/usr/bin/hccn_tool \-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \xxx/nano-vllm/nano-vllm-ascend:v1_20251112 bash

安装依赖

pip install .

ssh安装

#!/bin/bash
set -ex# 配置openEuler软件源
echo "配置openEuler软件源..."
cat > /etc/yum.repos.d/openeuler.repo << 'EOF'
[openEuler-everything]
name=openEuler-everything
baseurl=http://mirrors.tools.xx.com/openeuler/openEuler-22.03-LTS-SP4/everything/aarch64/
enabled=1
gpgcheck=0
gpgkey=http://mirrors.tools.xx.com/openeuler/openEuler-22.03-LTS-SP4/everything/aarch64/RPM-GPG-KEY-openEuler[openEuler-EPOL]
name=openEuler-epol
baseurl=http://mirrors.tools.xx.com/openeuler/openEuler-22.03-LTS-SP4/EPOL/main/aarch64/
enabled=1
gpgcheck=0[openEuler-update]
name=openEuler-update
baseurl=http://mirrors.tools.xx.com/openeuler/openEuler-22.03-LTS-SP4/update/aarch64/
enabled=1
gpgcheck=0
EOFyum clean all
yum makecache  yum install passwd -y# 设置root用户密码
echo "设置root用户密码..."
echo "root:xxxx-" | chpasswd# 配置SSH服务
echo "配置SSH服务..."
# 启用TCP转发
sed -i 's/^#AllowTcpForwarding yes/AllowTcpForwarding yes/' /etc/ssh/sshd_config
# 启用GatewayPorts
sed -i 's/^#GatewayPorts no/GatewayPorts yes/' /etc/ssh/sshd_config
# 添加端口6068(若不存在)
if ! grep -q "^Port 6068" /etc/ssh/sshd_config; thenecho "Port 6068" >> /etc/ssh/sshd_config
fi# 生成SSH密钥并重启服务
echo "初始化SSH服务..."
ssh-keygen -A
/usr/sbin/sshdecho "所有配置完成!root密码已设置,SSH服务已启动(监听端口6068)"

容器起来,ssh也安装好,可以远程连接容器运行example.py

模型下载

huggingface-cli download --resume-download Qwen/Qwen3-0.6B \--local-dir ~/huggingface/Qwen3-0.6B/ \--local-dir-use-symlinks False

快速开始

请参见 example.py 了解用法。该 API 与 vLLM 的接口基本一致,仅在 LLM.generate 方法上存在一些细微差异:

from nanovllm import LLM, SamplingParams
llm = LLM("/YOUR/MODEL/PATH", enforce_eager=True, tensor_parallel_size=1)
sampling_params = SamplingParams(temperature=0.6, max_tokens=256)
prompts = ["Hello, Nano-vLLM."]
outputs = llm.generate(prompts, sampling_params)
outputs[0]["text"]

example运行结果

result-image

环境

仅供参考
ascend-dmi -c #查看

  • 硬件环境​:
    • 1.显卡:A3 910C
    • 2.驱动版本:24.1.rc3.10
    • 3.固件版本:7.5.0.109.220
  • 软件环境​:
    • 1.CANN包 8.3.RC1
    • 2.PTA版本:torch-npu 2.5.1.post2+gitd7a85f8,torch 2.5.1

Benchmark

See bench.py for benchmark.

Test Configuration:

  • Model: Qwen3-0.6B
  • Total Requests: 256 sequences
  • Input Length: Randomly sampled between 100–1024 tokens
  • Output Length: Randomly sampled between 100–1024 tokens

Performance Results:
Nano-vLLM-Ascend 实在太慢了只跑了10条seq
Nano-vLLM-Ascend可以忽略[哭脸]

Inference Engine Output Tokens Time (s) Throughput (tokens/s)
vLLM 133,966 98.37 1361.84
Nano-vLLM 133,966 93.41 1434.13
Nano-vLLM-Ascend 4805 257.49 18.66

qwen3-0.6B layers

ModuleList((0-27): 28 x Qwen3DecoderLayer((self_attn): Qwen3Attention((qkv_proj): QKVParallelLinear()(o_proj): RowParallelLinear()(rotary_emb): RotaryEmbedding()(attn): Attention()(q_norm): RMSNorm()(k_norm): RMSNorm())(mlp): Qwen3MLP((gate_up_proj): MergedColumnParallelLinear()(down_proj): RowParallelLinear()(act_fn): SiluAndMul())(input_layernorm): RMSNorm()(post_attention_layernorm): RMSNorm())
)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/991811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SPI】SPI与QSPI异同与使用

SPI及其衍生协议 SPI协议包括:标准SPI协议,Dual SPI和Queued SPI三种协议接口。标准SPI协议,有4根线,分别为CS(片选)、CLK(时钟)、MISO(主入从出)和MOSI(主出从入)。支持全双工通信 Dual SPI,针对SPI Flash,全双工…

ES2T 34托盘相关报警

座板线: 报警文字:缓存工位无托盘报警/工作位无托盘报警 只跟托盘感应有关,跟RFID无关 3种触发条件: 1.前工位放行后持续30s未接收到托盘 2.发出放行指令时托盘并不存在(之前接受到的托盘感应不到了) 3.发出放行…

20251207 之所思 - 人生如梦

20251207 之所思今天是一个值得纪念的日子,我的第一本英文小说《追风筝的人》抄录完成。从2025年5月2日开始到今天,历时7个月零5天,期间有过无数次的想要放弃,但是为了心中的那个信念(学好英语)一次又一次的咬牙…

2025NOIP游记(有空更新)

2025 NOIP游记:此时此刻。马上就要奔赴考场了,这两天也看到了不少朋友或陌生人AFO的帖子。此时此刻,恰如彼时彼刻,我想明年的今天,我应该也会加入这些写AFO祭的一员。去年的我这样写道。 day—— -1 11.28 下午五…

【2025年12月最新】英语四级历年真题试卷、听力音频及答案解析~PDF电子版(2015-2025年6月) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

不同深度学习框架中实现人工神经元基本计算单元的模块对比

不同深度学习框架中实现人工神经元基本计算单元的模块对比 在人工神经网络中,最核心的计算单元遵循统一的数学形式: \[\mathbf{y} = f(\mathbf{W}\mathbf{x} + \mathbf{b}) \]其中:\(\mathbf{x}\) 是输入向量, \(\…

[容器] Podman : 一款新型的容器引擎与容器管理工具

1 概述: Podman当我们谈论容器时,我们首先想到的默认工具就是Docker。但自从 Docker 诞生以来,容器领域已经有了很多发展,特别是在容器安全方面。Podman 是解决安全问题的项目之一。Podman(POD Manager)是一个开源…

从0构建深度学习框架——揭秘深度学习框架的黑箱

引言 你有没有好奇过,当你在 PyTorch 或 TensorFlow 中调用 .backward() 计算梯度时,框架到底在背后做了什么? 我们每天都在使用这些成熟的深度学习工具,但很少有人真正去探索它们的底层实现——自动微分的魔法、计…

SVPWM基础

空间矢量脉宽调制(Space Vector Pulse Width Modulation)SVPWM基础 前面已经了解了如何将复杂的三相电流通过Clarke与park变换解耦为d-q旋转坐标系的控制,因此只要令\(i_d=0\),控制\(i_q\)来控制转矩大小。 下面需…

JDK的安装与删除

卸载JDK删除Java的安装目录删除Java_home删除环境变量里面path里面关于Java的目录Java-version 安装JDK百度搜索JDK8,找到下载地址 同意协议 下载电脑对应的版本 双击安装JDK 记住安装的路径 配置环境变量中的path,系…

C语言字符串函数学习 - hillo

字符串长度函数 #include <stdio.h>size_t mystrlen(const char *str);int main() {size_t re1, re2, re3;char str[] = "hello";re1 = mystrlen(str);re2 = mystrlen2(str);re3 = mystrlen3(str);ret…

实用工具:担心腾讯ACE把你的硬盘扫坏了?用DiskGenius一分钟检测硬盘是否损坏

针对腾讯游戏ACE反作弊系统高强度扫盘可能造成的硬盘损耗问题,本文推荐使用免费专业工具DiskGenius检测硬盘健康状态。DiskGenius具备坏道检测修复和SMART信息监控功能,支持快速扫描和深度扫描。操作指南包含三步:下…

百度之星 2025 游记

百度之星 2025 游记可能更好的阅读体验 初一最后一场比赛,能否给我一个圆满的结局? 初赛 6.29 复赛 12.7 6.29 开 T1,显然树形 DP,但是卡了好久,过的时候 rk 已经几百了。。。 开 T7,显然对第一个数不优的全部给…

北京上门收酒服务权威推荐榜,四家机构获评优质服务商

家里闲置的名酒如何变现?专业靠谱的上门收酒服务让市民省心又省钱。 近期,本刊对北京地区上门收酒市场进行了深入调研,通过实地走访、模拟体验和用户回访等方式,从鉴定专业度、报价透明度、服务规范性和用户口碑等…

20232406 2024-2025-1 《网络与系统攻防技术》实验八实验报告

一、实验内容 1.学习总结 1)Web前端学习HTML 表单用于收集用户的输入信息。 HTML 表单表示文档中的一个区域,此区域包含交互控件,将用户收集到的信息发送到 Web 服务器。 HTML 表单通常包含各种输入字段、复选框、单…

Win10最终版下载 d485系统站

d485系统站 https://d485.dpdns.org/?lang=zh-CN 版本号: 22H2 (Build 19045) 发布日期: 2022-10-18 支持结束: 2025-10-14 校验码: 名称: Win10_22H2_Chinese_Simplified_x64v1.iso大小: 6096424960 字节 : 5814 Mi…

AI元人文构想全维解读:从意义行为原生到文明共生体

AI元人文构想全维解读:从意义行为原生到文明共生体 引言:范式革命与理论演进 在传统AI价值对齐范式陷入根本困境的2025年,岐金兰提出的“AI元人文构想”完成了一场深刻的范式革命。从最初的价值动力学框架,到“意义…

一分钟教你限制腾讯游戏ACE扫盘:告别硬盘损耗与游戏卡顿的完整指

前言 打三角洲或者瓦的时突然掉帧,鼠标失灵?或发现硬盘灯常亮不灭。大概率是腾讯 ACE 反作弊系统在后台持续扫盘。实测显示,ACE 关联进程(如 SGuard64.exe)每秒读操作可达 3-4 兆,半小时读取量超 2.5G,不仅引发…

一文读懂激活函数

一文读懂激活函数 激活函数是让神经网络从“只能拟合直线”变成“能拟合复杂曲线”的关键。没有激活函数,再深的神经网络也只是个“线性回归的堆叠”;有了激活函数,神经网络才能识别图像、翻译语言、预测复杂规律。…

P2163 [SHOI2007] 园丁的烦恼 做题笔记

二维数点。 写得有点shi。 关于我数组开小爆炸这一件事:写代码写着写着晕了。 #include<bits/stdc++.h> #define endl \n using namespace std; const int maxn=1.5e6+10,V=1e6+10;//懒得改了,直接开大 int a[…