一个从零开始构建的轻量级 vLLM 实现。
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("/你的/模型/路径", enforce_eager=True, tensor_parallel_size=1)
sampling_params = SamplingParams(temperature=0.6, max_tokens=256)
prompts = ["你好,Nano-vLLM。"]
outputs = llm.generate(prompts, sampling_params)
outputs[0]["text"]
性能基准测试请参考 bench.py。
测试配置:
- 硬件:RTX 4070 笔记本电脑 (8GB)
- 模型:Qwen3-0.6B
- 总请求数:256 个序列
- 输入长度:在 100–1024 个 token 之间随机采样
- 输出长度:在 100–1024 个 token 之间随机采样
性能结果:
| 推理引擎 | 输出 Token 数 | 耗时 (秒) | 吞吐量 (token/秒) |
|----------------|-------------|----------|-----------------------|
| vLLM | 133,966 | 98.37 | 1361.84 |
| Nano-vLLM | 133,966 | 93.41 | 1434.13 |