nano-vllm README

The project's README from github.com/GeeeekExplorer/nano-vllm. As one markdown file: README.md.

GeeeekExplorer%2Fnano-vllm | Trendshift

Nano-vLLM

A lightweight vLLM implementation built from scratch.

Key Features

Installation

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

Model Download

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

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:

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:

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

Star History Chart

nano-vllm (GeeeekExplorer/nano-vllm)

Searching Database…

Что это такое?Nano-vLLM это облегчённая переработка движка инференса vLLM, написанная с нуля для запуска больших языковых моделей. Её код занимает около 1 200 строк понятного Python.
Это отдельный сервер или библиотека, которую я вызываю из своего кода?Это библиотека на Python: вы создаёте объект LLM и вызываете generate() в своём скрипте, почти полностью повторяя интерфейс vLLM.
Как мне его запустить?Установите пакет по инструкции из раздела Installation в README, вручную скачайте веса модели командой из раздела Model Download, затем запустите example.py, чтобы увидеть работающий вызов generate().
Мне нужна видеокарта с CUDA, чтобы это запустить?Да. Для скорости проект использует тензорный параллелизм и захват графов CUDA, а свой бенчмарк он прогонял на ноутбучной видеокарте NVIDIA RTX 4070 Laptop GPU.
Как он на самом деле сравнивается с полным vLLM?В собственном бенчмарке проекта на модели Qwen3-0.6B и 256 запросах Nano-vLLM выдал 1434 токена в секунду против 1362 у vLLM. То есть он не уступает vLLM, а немного его опережает, хотя кода в нём лишь малая доля.
Какие оптимизации Nano-vLLM включает из коробки?Он использует префиксное кэширование, тензорный параллелизм, компиляцию через torch и захват графов CUDA, чтобы ускорить инференс.
Зачем выбирать Nano-vLLM вместо обычного vLLM?Он даёт сопоставимую или немного большую пропускную способность и при этом его легко читать и менять: в нём около 1 200 строк Python, а кодовая база vLLM намного больше.
На какой модели и конфигурации проводился бенчмарк?В README бенчмарк проведён на модели Qwen3-0.6B с видеокартой RTX 4070 Laptop GPU (8GB). Запускались 256 запросов, длины входа и выхода случайно выбирались от 100 до 1024 токенов.
Size
0.5 MB
Stars
16K
Updated
CommitApr 26
Age
1y
Commits · 90 Days