nano-vllm Documentation

Python library by @GeeeekExplorer focused on deep-learning, inference, llm. Includes documentation and AI agent context with 16k stars.

16,025 stars Python Python 1 file ยท ~613 tokens #deep-learning#inference#llm#nlp#pytorch#transformer
RAW Doc

Technical Documentation: GeeeekExplorer/nano-vllm

โ„น๏ธ Provenance: Multi-Tier Ingestion ยท CodeWiki Reference

Overview (`README.md`)

Nano-vLLM

A lightweight vLLM implementation built from scratch.

Key Features

  • ๐Ÿš€ Fast offline inference - Comparable inference speeds to vLLM
  • ๐Ÿ“– Readable codebase - Clean implementation in ~ 1,200 lines of Python code
  • โšก Optimization Suite - Prefix caching, Tensor Parallelism, Torch compilation, CUDA graph, etc.

Installation

bash
pip install git+https://github.com/GeeeekExplorer/nano-vllm.git

Model Download

To download the model weights manually, use the following command:

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

Quick Start

See example.py for usage. The API mirrors vLLM's interface with minor differences in the LLM.generate method:

python
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"]

Benchmark

See bench.py for benchmark.

Test Configuration:

  • Hardware: RTX 4070 Laptop (8GB)
  • 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:

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

Star History


--- METRICS ---