**Today:** [Qwen3.8-27B](https://huggingface.co/Qwen/Qwen3.8-27B) on a single 24 GB
consumer GPU with vLLM — 150k token context and an OpenAI-compatible API with key
auth, in two ready-made modes. On an RTX 3090 at 250 W: 127 tok/s single-stream
in single-user mode, ~1,035 tok/s aggregate decode at 64 concurrent in batch mode,
and 381 tok/s when the answer quotes its own prompt.
**Where it is going:** more Qwen models, more classes of card. What this repo
really is, under the serving setup, is a patch series against a pinned vLLM plus
a model-preparation pipeline — requantized heads, a calibrated draft vocabulary,
speculation that drafts out of the prompt. Most of that is not specific to one
checkpoint or one card; it is just that one checkpoint and one card are what has
been measured to death. See [Roadmap](#roadmap-more-qwen-models-more-cards) for
what is and is not portable yet, and
[Field tests wanted](#field-tests-wanted) if you have half an hour on a GPU we
have never touched.
## Quick start
```bash
git clone https://github.com/syv-ai/HyperQwen && cd HyperQwen
cp .env.example .env # PowerShell: Copy-Item .env.example .env
docker compose --profile single up -d # one or a few people chatting
docker compose --profile batch up -d # API backend, many concurrent requests
```
First start pulls the image (9.5 GB) and requantizes the model (~20 GB, once,
into `./models`), then serves on `:18020`. One GPU runs one mode at a time.
- **Before exposing it** — compose publishes the port on `127.0.0.1` only (`BIND` in `.env`, default `127.0.0.1`), so another machine cannot reach it until you set a key and `BIND=0.0.0.0`; outside a container, no key means the server binds `127.0.0.1` only:
`echo "VLLM_API_KEY=$(openssl rand -hex 24)" >> .env && echo BIND=0.0.0.0 >> .env`
- **Docker Desktop on WSL2** — keep `VLLM_WSL2_ENABLE_PIN_MEMORY=1` in `.env`, or
the V2 runner aborts with `RuntimeError: UVA is not available`
- **No compose, or no Docker at all** —
[docs/docker.md](docs/docker.md#plain-docker-no-compose) ·
[docs/install.md](docs/install.md)
## Which setup do I want?
Three questions, and the answers are the whole of your `.env`.
```mermaid
flowchart TD
Q1{"Who is sending