Skip to content

Qwen · Text · Dense

Qwen3

Dense causal language model; the reference architecture for kLLM sealing and throughput benchmarks.

Official sealed: rolling outorthpermSGLangvLLMMeasured

Commands

Pull, seal and run

kllm pull downloads a library tag into the local store and records the hash of every file. kllm run starts SGLang or vLLM in the background on 127.0.0.1 and opens a chat. kllm create seals a pulled model under a named key.

# Download the library tag into the local store; a manifest records each file's hash
$ kllm pull qwen3:8b
# Start SGLang or vLLM in the background on 127.0.0.1 and open a chat
$ kllm run qwen3:8b
The engine server exposes an OpenAI-compatible API on 127.0.0.1. Stop it with kllm stop.

Requests to the running server

# The local proxy listens on 127.0.0.1:8001 and tokenizes on your machine
curl http://127.0.0.1:8001/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model": "Qwen3-8B-sealed", "messages": [{"role": "user", "content": "Hello"}]}'

Official sealed models

Pre-sealed under model keys

The kLLM team seals selected public models at a pinned revision under the perm transform, locks the weights and publishes them under ANetResearch on Hugging Face. Each model has its own model key, issued to approved applicants. The artifacts are rolling out; a repository is available once it appears in the organization.

Official sealed models of Qwen3
RepositoryBase and revisionModalityLicenceTransformClient-keyedStatus
Qwen3-8B-kllmQwen/Qwen3-8B@b968826d9cTextApache-2.0permYesRolling out
Qwen3-4B-Instruct-2507-kllmQwen/Qwen3-4B-Instruct-2507@cdbee75f17TextApache-2.0permYesRolling out
Qwen3-32B-kllmQwen/Qwen3-32B@9216db5781TextApache-2.0permYesRolling out
  • Each repository carries kllm-manifest.json: the base and its revision, the key fingerprint and key version, the kLLM version and the SHA-256 digest of every file.

Check a published model against its public base

With the model key, kllm verify seals the public base again under the same key and transform in a temporary directory and compares the result tensor by tensor, unlocked, together with the tokenizer, every other file and the manifest.

Verify Qwen3-8B-kllm
$ hf download ANetResearch/Qwen3-8B-kllm --local-dir Qwen3-8B-kllm
$ kllm verify Qwen3-8B-kllm --base Qwen/Qwen3-8B --revision b968826d9c46dd6066d109eabc6255188de91218 --key Qwen3-8B-kllm.key
Under perm, every tensor must be equal to the bit; tensors that sealing rewrites in floating point may differ by one unit in the last place.

Apply for model keysThe catalog in the documentation

Library tags

Tags

Each tag pins an upstream Hugging Face revision, so the same alias downloads the same bytes on every host. Sizes and minimum GPU memory are taken from the kLLM library.

Library tags for Qwen3
AliasUpstreamSizeMin. GPU memoryTransformsCopy
qwen3:1.7bQwen/Qwen3-1.7B4.1 GB7 GBorth, perm
qwen3:4bQwen/Qwen3-4B8.0 GB11 GBorth, perm
qwen3:8bdefaultQwen/Qwen3-8B16 GB21 GBorth, perm
qwen3:14bQwen/Qwen3-14B30 GB36 GBorth, perm
qwen3:32bQwen/Qwen3-32B66 GB76 GBorth, perm

Validated variants

Measured variants

Variants that the team has sealed and served, with their measured engines and hardware.

Measured variants of Qwen3
VariantTransformsEnginesGPUSealing timeInput and output
Qwen3-1.7Borth, permSGLang 0.5.21, vLLM 0.31.0 (measured)One A40 48 GB14–20 s (1–2B models)Text in, text out
Qwen3-8Borth, permSGLang 0.5.21 (measured); vLLM not measuredOne A40 48 GBNot reportedText in, text out

Measured results

Plain against sealed

Published measurements for this model, each with its conditions. Single runs; they do not generalize beyond the configurations shown.

Qwen3-1.7B on SGLang 0.5.21

One NVIDIA A40 48 GB; bf16; random token ids, 1024 input / 128 output tokens; concurrency 1 runs 10 requests, concurrency 16 runs 128; GPU shared with another tenant's light job; single runs, no variance reported. Perplexity over 14690 tokens of the GPL-3, GFDL-1.3 and Apache-2.0 licence texts (tools/ppl.py).

Qwen3-1.7B on SGLang 0.5.21
MetricPlainpermorth
Median TTFT, concurrency 1 (ms)98.0105.2104.3
Median TPOT, concurrency 1 (ms)12.4412.5412.32
Output throughput, concurrency 16 (tok/s)563577580
Median TPOT, concurrency 16 (ms)21.522.722.4
Perplexity5.49915.50575.5315
Mean |Δ log-prob| vs plain-0.0690.098
Table · benchmarks/llm.sh

Qwen3-1.7B on vLLM 0.31.0

One NVIDIA A40 48 GB; bf16; random token ids, 1024 input / 128 output tokens; concurrency 1 runs 10 requests, concurrency 16 runs 128; GPU shared with another tenant's light job; single runs, no variance reported. Perplexity over 14690 tokens of the GPL-3, GFDL-1.3 and Apache-2.0 licence texts (tools/ppl.py).

Qwen3-1.7B on vLLM 0.31.0
MetricPlainpermorth
Median TTFT, concurrency 1 (ms)65.366.368.4
Median TPOT, concurrency 1 (ms)6.596.606.59
Output throughput, concurrency 16 (tok/s)109710941095
Median TPOT, concurrency 16 (ms)12.3211.9711.94
Perplexity5.49905.49705.5066
Mean |Δ log-prob| vs plain-0.0610.090
Table · benchmarks/llm.sh

Qwen3-8B on SGLang 0.5.21

One NVIDIA A40 48 GB; bf16; random token ids, 1024 input / 128 output tokens; concurrency 1 runs 10 requests, concurrency 16 runs 128; GPU shared with another tenant's light job; single runs, no variance reported. Perplexity over 14690 tokens of the GPL-3, GFDL-1.3 and Apache-2.0 licence texts (tools/ppl.py).

Qwen3-8B on SGLang 0.5.21
MetricPlainpermorth
Median TTFT, concurrency 1 (ms)199.5200.1200.4
Median TPOT, concurrency 1 (ms)25.1225.1225.16
Output throughput, concurrency 16 (tok/s)333333332
Median TPOT, concurrency 16 (ms)35.336.237.3
Perplexity1.90501.90361.9063
Mean |Δ log-prob| vs plain-0.0310.045
Table · benchmarks/llm.sh

Qwen3-1.7B quality on vLLM 0.31.0

Full test sets with lm-evaluation-harness (benchmarks/eval.sh); standard errors 0.004 for MMLU and 0.013 for GSM8K. All differences are inside one standard error.

Qwen3-1.7B quality on vLLM 0.31.0
BenchmarkPlainpermorth
MMLU (acc, 0-shot)0.55600.55620.5548
GSM8K (exact match, 5-shot, strict)0.69450.69520.6960
GSM8K (exact match, 5-shot, flexible)0.69750.69600.6975
Table · benchmarks/eval.sh

Qwen3-1.7B (perm): keyed against client-keyed serving

A40 GPUs; keyed and client-keyed serving run one after the other on the same GPU; 1024 input / 128 output tokens; client-keyed requests pass through kllm client proxy (benchmarks/client.sh). Under vLLM, two of four keyless launches matched --key to the bit and two differed by 0.05 mean |Δ log-prob| (perplexity 5.5017 and 5.5110).

Qwen3-1.7B (perm): keyed against client-keyed serving
MetricSGLang --keySGLang --clientvLLM --keyvLLM --client
Median TTFT, concurrency 1 (ms)66.771.175.473.9
Median TPOT, concurrency 1 (ms)6.816.877.237.26
Output throughput, concurrency 16 (tok/s)103910421036963
Median TPOT, concurrency 16 (ms)12.3812.6312.6112.96
Perplexity5.49755.49755.49435.4943-5.5110
Table · benchmarks/client.sh

All published results

Security

What sealing does not hide for this model

  • To an operator who reads GPU memory, user text reduces to a substitution cipher over tokens: 23.8% of tokens were decoded by unigram frequency alone on Qwen3-8B.
  • The sealed weights derive from a public checkpoint. Locked files cannot be matched to it without the key; once unlocked to run, a holder of that checkpoint recovers the transforms and 98.5% of the vocabulary permutation (measured on Qwen3-8B), for unmodified public models and fine-tunes alike.
  • Client-keyed mode keeps the key and the tokenizer on the user's machine. The copy that the cloud serves is unlocked on the user's side (kllm cloud --key), because the cloud computes with the weights. The cloud server (kllm serve --client) binds 0.0.0.0 by default and has no authentication; bind it to 127.0.0.1 or place it behind a gateway.
  • Unless sealed with --no-lock, the weights on disk are locked: encrypted in place with AES-256-CTR under a key derived from the model key. kllm serve --key unlocks them into ~/.cache/kllm/unlocked (KLLM_UNLOCKED_DIR, mode 0700) before the engine starts, so whoever runs the model holds the unlocked weights. Each tensor's largest binary exponent is stored in the clear.
  • Every approved holder of an official model's key holds the same model key, and the team derives it from an offline master key. A model key is not a confidentiality boundary between its holders; for a key known to no one else, seal the model under a private key.
  • Outside a confidential VM, kllm serve --key decrypts the tokenizer into host /dev/shm and offers no protection from the host. It is a development mode.

Security modelMeasured limits in the documentation