项目文件夹
您已经派生过 geeeekexplorer--nano-vllm
geeeekexplorer--nano-vllm
Note
本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
Nano-vLLM
从零实现的一款轻量级 vLLM。
核心特性
- 🚀 快速离线推理 - 推理速度与 vLLM 相当
- 📖 可读性强的代码库 - 以约 1,200 行 Python 代码实现的简洁实现
- ⚡ 优化套件 - 前缀缓存(Prefix caching)、张量并行(Tensor Parallelism)、Torch 编译、CUDA graph 等
安装
pip install git+https://github.com/GeeeekExplorer/nano-vllm.git
模型下载
如需手动下载模型权重,请使用以下命令:
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"]
基准测试
基准测试请参阅 bench.py。
测试配置:
- 硬件:RTX 4070 Laptop(8GB)
- 模型:Qwen3-0.6B
- 总请求数:256 条序列
- 输入长度:在 100–1024 个 token 之间随机采样
- 输出长度:在 100–1024 个 token 之间随机采样
性能结果:
| 推理引擎 | 输出 Token 数 | 耗时(秒) | 吞吐量(tokens/s) |
|---|---|---|---|
| vLLM | 133,966 | 98.37 | 1361.84 |
| Nano-vLLM | 133,966 | 93.41 | 1434.13 |
