Text Generation
Transformers
Safetensors
deepseek_v4
deepseek
Mixture of Experts
reap
pruned
fp4
fp8
speculative-decoding
8-bit precision
Instructions to use noooop/DeepSeek-V4-Flash-REAP152-FP4 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use noooop/DeepSeek-V4-Flash-REAP152-FP4 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="noooop/DeepSeek-V4-Flash-REAP152-FP4")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("noooop/DeepSeek-V4-Flash-REAP152-FP4") model = AutoModelForCausalLM.from_pretrained("noooop/DeepSeek-V4-Flash-REAP152-FP4", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use noooop/DeepSeek-V4-Flash-REAP152-FP4 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "noooop/DeepSeek-V4-Flash-REAP152-FP4" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "noooop/DeepSeek-V4-Flash-REAP152-FP4", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/noooop/DeepSeek-V4-Flash-REAP152-FP4
- SGLang
How to use noooop/DeepSeek-V4-Flash-REAP152-FP4 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "noooop/DeepSeek-V4-Flash-REAP152-FP4" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "noooop/DeepSeek-V4-Flash-REAP152-FP4", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "noooop/DeepSeek-V4-Flash-REAP152-FP4" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "noooop/DeepSeek-V4-Flash-REAP152-FP4", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use noooop/DeepSeek-V4-Flash-REAP152-FP4 with Docker Model Runner:
docker model run hf.co/noooop/DeepSeek-V4-Flash-REAP152-FP4
docs: measure both builds under llama.cpp, including REAP152
Browse files- README.md +36 -24
- SHA256SUMS +2 -2
- docs/SERVING.md +40 -14
README.md
CHANGED
|
@@ -243,28 +243,34 @@ step.** The converter sizes the head's experts from `n_routed_experts`, which is
|
|
| 243 |
recipe that fixes it — or reuse a drafter converted from REAP128, whose
|
| 244 |
`mtp.*` tensors are byte-identical to this build's.
|
| 245 |
|
| 246 |
-
|
| 247 |
-
|
| 248 |
-
|
| 249 |
-
|
| 250 |
-
|
|
|
|
|
|
|
|
|
|
| 251 |
|
| 252 |
## Measured performance
|
| 253 |
|
| 254 |
-
One DGX Spark, greedy decoding,
|
| 255 |
-
|
| 256 |
|
| 257 |
| | this build |
|
| 258 |
|---|---:|
|
| 259 |
-
| weights loaded | 95.58 GiB |
|
| 260 |
-
| decode with DSpark |
|
| 261 |
-
|
|
| 262 |
-
|
| 263 |
-
|
| 264 |
-
|
| 265 |
-
|
| 266 |
-
|
| 267 |
-
|
|
|
|
|
|
|
|
|
|
| 268 |
|
| 269 |
### The 2-bit build speculates too, and it is faster — measured here
|
| 270 |
|
|
@@ -281,13 +287,19 @@ notes below — both cost more than the differences being measured):
|
|
| 281 |
|---|---:|---:|---:|---:|
|
| 282 |
| 2-bit IQ2_M, 256 experts | 128 | 62.9% | 3.22 | **36.1 tok/s** |
|
| 283 |
| 2-bit IQ2_M, 256 experts | 256 | 60.6% | 3.05 | 35.4 tok/s |
|
| 284 |
-
| REAP128 (sibling) | 128 (shipped) | 63.1% | 3.19 | 26.
|
| 285 |
-
| REAP128, unpruned head | 256 | 66.4% | 3.38 | 27.8 tok/s |
|
| 286 |
-
|
| 287 |
-
|
| 288 |
-
|
| 289 |
-
|
| 290 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 291 |
draft width, at acceptance within a few points. It also scored 84.39% against
|
| 292 |
this build's 58.05% on the generative MMLU sample. At this footprint, on this
|
| 293 |
hardware, pruning is not buying speed either. What this checkpoint offers is
|
|
@@ -300,7 +312,7 @@ prompts and the same draft width, its drafter lands **53.2%** where llama.cpp
|
|
| 300 |
lands 63.1% on weights converted from the same checkpoint — 2.66 accepted drafts
|
| 301 |
per step against 3.19. The unpruned head shows the same shortfall (60.0% against
|
| 302 |
66.4%). vLLM's individual steps are faster, so end-to-end throughput comes out
|
| 303 |
-
similar (28.2 against 26.
|
| 304 |
left on the table. **The cause is not known.** KV quantization is ruled out:
|
| 305 |
llama.cpp with `q8_0` KV reproduces its own f16 acceptance *bit for bit* (570 of
|
| 306 |
903 either way), and vLLM's DSv4 path refuses anything but fp8, so the two cannot
|
|
|
|
| 243 |
recipe that fixes it — or reuse a drafter converted from REAP128, whose
|
| 244 |
`mtp.*` tensors are byte-identical to this build's.
|
| 245 |
|
| 246 |
+
Measured on one DGX Spark, warm, same four prompts and draft width as every
|
| 247 |
+
other figure here: **20.9 tok/s with the shipped 128-expert head** (44.2%
|
| 248 |
+
acceptance, 2.44 accepted drafts per step), 21.8 tok/s with the unpruned
|
| 249 |
+
256-expert head, and 15.1 tok/s with no drafter at all. vLLM is slightly faster
|
| 250 |
+
end to end on this build (23.7 tok/s) while accepting fewer drafts (2.03 per
|
| 251 |
+
step) — the same trade it makes on REAP128. Full recipe and the complete
|
| 252 |
+
cross-engine table in
|
| 253 |
+
[Serving on DGX Spark](docs/SERVING.md#what-it-measures-and-where-it-differs-from-vllm).
|
| 254 |
|
| 255 |
## Measured performance
|
| 256 |
|
| 257 |
+
One DGX Spark, greedy decoding, all three overlays mounted under vLLM, warm —
|
| 258 |
+
the first request after a load runs up to 1.8x slower there and is discarded:
|
| 259 |
|
| 260 |
| | this build |
|
| 261 |
|---|---:|
|
| 262 |
+
| weights loaded (vLLM, 0.85) | 95.58 GiB |
|
| 263 |
+
| decode with DSpark, vLLM, 8K | 23.7 tok/s |
|
| 264 |
+
| decode with DSpark, llama.cpp, 8K | 20.9 tok/s |
|
| 265 |
+
| decode without a drafter, llama.cpp, 8K | 15.1 tok/s |
|
| 266 |
+
| draft acceptance | 40.7% / 2.03 per step (vLLM), 44.2% / 2.44 (llama.cpp) |
|
| 267 |
+
|
| 268 |
+
The same configuration at 64K starts and answers correctly, with 3.32 GiB of
|
| 269 |
+
cache and 212,831 KV tokens; its first-request throughput there was 14.5 tok/s,
|
| 270 |
+
which is a cold number and should be read as such. **There is still no
|
| 271 |
+
non-speculative vLLM measurement of this build** — the 15.1 tok/s plain figure is
|
| 272 |
+
llama.cpp. For scale, REAP128 measures 28.2 tok/s under vLLM and 26.3 under
|
| 273 |
+
llama.cpp with the same drafter and prompts.
|
| 274 |
|
| 275 |
### The 2-bit build speculates too, and it is faster — measured here
|
| 276 |
|
|
|
|
| 287 |
|---|---:|---:|---:|---:|
|
| 288 |
| 2-bit IQ2_M, 256 experts | 128 | 62.9% | 3.22 | **36.1 tok/s** |
|
| 289 |
| 2-bit IQ2_M, 256 experts | 256 | 60.6% | 3.05 | 35.4 tok/s |
|
| 290 |
+
| REAP128 (sibling) | 128 (shipped) | 63.1% | 3.19 | 26.3 tok/s |
|
| 291 |
+
| REAP128 (sibling), unpruned head | 256 | 66.4% | 3.38 | 27.8 tok/s |
|
| 292 |
+
| **this build (REAP152)** | 128 (shipped) | 44.2% | 2.44 | 20.9 tok/s |
|
| 293 |
+
| **this build**, unpruned head | 256 | 47.7% | 2.64 | 21.8 tok/s |
|
| 294 |
+
|
| 295 |
+
**This build drafts materially worse than its sibling, on both engines.** 2.44
|
| 296 |
+
accepted drafts per step against REAP128's 3.19 under llama.cpp, 2.03 against
|
| 297 |
+
2.66 under vLLM — 24% less either way, from a byte-identical draft head. That
|
| 298 |
+
head was calibrated against the 128-expert target; against 152 experts it is
|
| 299 |
+
predicting a model it never saw. Choosing this build means choosing its quality
|
| 300 |
+
edge on MMLU, not its speed.
|
| 301 |
+
|
| 302 |
+
The unpruned 2-bit build is **1.37x faster** with matched engine, harness and
|
| 303 |
draft width, at acceptance within a few points. It also scored 84.39% against
|
| 304 |
this build's 58.05% on the generative MMLU sample. At this footprint, on this
|
| 305 |
hardware, pruning is not buying speed either. What this checkpoint offers is
|
|
|
|
| 312 |
lands 63.1% on weights converted from the same checkpoint — 2.66 accepted drafts
|
| 313 |
per step against 3.19. The unpruned head shows the same shortfall (60.0% against
|
| 314 |
66.4%). vLLM's individual steps are faster, so end-to-end throughput comes out
|
| 315 |
+
similar (28.2 against 26.3 tok/s), but roughly a fifth of the drafting is being
|
| 316 |
left on the table. **The cause is not known.** KV quantization is ruled out:
|
| 317 |
llama.cpp with `q8_0` KV reproduces its own f16 acceptance *bit for bit* (570 of
|
| 318 |
903 either way), and vLLM's DSv4 path refuses anything but fp8, so the two cannot
|
SHA256SUMS
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361 .gitattributes
|
| 2 |
f2c6c602815669d292889e5be8c802f2ed950653b77999b1584e8e6aed25d040 LICENSE
|
| 3 |
51baf525dd29349e29e44bf04ca48a0632198bb28aab945431e3a31dc1d78acc LICENSE-CODE
|
| 4 |
-
|
| 5 |
af6f2a8a05f4148cfde5020b0711aa13c816845c1884d27df91528b20d3d838c calibration/README.md
|
| 6 |
34a35532512eabeb90181b2b35fcd87b151373f5e0c2cf62059d73a693e1beac calibration/calib.pt.sha256
|
| 7 |
b0f7ec170f9599b439f8c277a9dceff4091a587786ca96a8ad6ad9545bb491c1 calibration/examples/mix-de-en.example.json
|
|
@@ -13,7 +13,7 @@ c0f488896e41c60a412e36a601cede420c2bffae2e419ee56121b24871c9dd88 calibration/ta
|
|
| 13 |
64ef8f5c564799217d8f8442a2c400c8478d95ad048ecb170b9ebeb3d5ff52c7 config.json
|
| 14 |
356f01a69634da18c0c9fc435fec7295548e6b0aeb3869c51feabf477653d09a docs/PROVENANCE.md
|
| 15 |
4484e4c66a386c7096787d30a327300939f52d094f6590d4f7b89de59b80ab60 docs/QUALITY.md
|
| 16 |
-
|
| 17 |
5fccff80f55a4d455bbe516bdd552edf3e9623df95e99fbf2a3c3389fdf91af0 generation_config.json
|
| 18 |
cbc166fe80eef86de49506511bebb7812399fd9de0f38e27e27b76baeff87dbe model-00001-of-00026.safetensors
|
| 19 |
ec81df9003c081d0128e78fa35c67df5987ebe46b9f7ad3f99c5f4d6e476e4d8 model-00002-of-00026.safetensors
|
|
|
|
| 1 |
11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361 .gitattributes
|
| 2 |
f2c6c602815669d292889e5be8c802f2ed950653b77999b1584e8e6aed25d040 LICENSE
|
| 3 |
51baf525dd29349e29e44bf04ca48a0632198bb28aab945431e3a31dc1d78acc LICENSE-CODE
|
| 4 |
+
c41ad5c5dcf781862fe0c2196c79b0f8e9f7cdafb3d609ac68780cf231c307a1 README.md
|
| 5 |
af6f2a8a05f4148cfde5020b0711aa13c816845c1884d27df91528b20d3d838c calibration/README.md
|
| 6 |
34a35532512eabeb90181b2b35fcd87b151373f5e0c2cf62059d73a693e1beac calibration/calib.pt.sha256
|
| 7 |
b0f7ec170f9599b439f8c277a9dceff4091a587786ca96a8ad6ad9545bb491c1 calibration/examples/mix-de-en.example.json
|
|
|
|
| 13 |
64ef8f5c564799217d8f8442a2c400c8478d95ad048ecb170b9ebeb3d5ff52c7 config.json
|
| 14 |
356f01a69634da18c0c9fc435fec7295548e6b0aeb3869c51feabf477653d09a docs/PROVENANCE.md
|
| 15 |
4484e4c66a386c7096787d30a327300939f52d094f6590d4f7b89de59b80ab60 docs/QUALITY.md
|
| 16 |
+
60e16d3a6e77a2f6e9b5459b0fac08bb748705b63ccc6862c4c94d4664604438 docs/SERVING.md
|
| 17 |
5fccff80f55a4d455bbe516bdd552edf3e9623df95e99fbf2a3c3389fdf91af0 generation_config.json
|
| 18 |
cbc166fe80eef86de49506511bebb7812399fd9de0f38e27e27b76baeff87dbe model-00001-of-00026.safetensors
|
| 19 |
ec81df9003c081d0128e78fa35c67df5987ebe46b9f7ad3f99c5f4d6e476e4d8 model-00002-of-00026.safetensors
|
docs/SERVING.md
CHANGED
|
@@ -134,7 +134,8 @@ separately below. The output type is detected from the checkpoint (`bf16`) and
|
|
| 134 |
does not need to be given: routed **FP4 experts are repacked to MXFP4**, FP8
|
| 135 |
attention weights become **Q8_0**, and the remainder stays BF16 or F32. REAP128
|
| 136 |
converts to 82.7 GB / 1,328 tensors in about four and a half minutes on the
|
| 137 |
-
build machine. REAP152 converts identically
|
|
|
|
| 138 |
|
| 139 |
### Convert the draft head
|
| 140 |
|
|
@@ -221,26 +222,51 @@ Three settings are worth stating explicitly:
|
|
| 221 |
|
| 222 |
### What it measures, and where it differs from vLLM
|
| 223 |
|
| 224 |
-
One DGX Spark, four prompts, greedy, 8,192-token context, draft width 5, warm
|
|
|
|
| 225 |
|
| 226 |
| target | draft head | engine | acceptance | accepted drafts / step | decode |
|
| 227 |
|---|---|---|---:|---:|---:|
|
| 228 |
-
| REAP128 |
|
|
|
|
| 229 |
| REAP128 | 256 (unpruned) | llama.cpp | 66.4% | 3.38 | 27.8 tok/s |
|
| 230 |
| REAP128 | 128 (shipped) | vLLM | 53.2% | 2.66 | 28.2 tok/s |
|
| 231 |
| REAP128 | 256 (unpruned) | vLLM | 60.0% | 3.00 | — |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 232 |
| 2-bit IQ2_M, 256 experts | 128 | llama.cpp | 62.9% | 3.22 | 36.1 tok/s |
|
| 233 |
| 2-bit IQ2_M, 256 experts | 256 | llama.cpp | 60.6% | 3.05 | 35.4 tok/s |
|
| 234 |
|
| 235 |
-
|
| 236 |
-
|
| 237 |
-
|
| 238 |
-
|
| 239 |
-
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 244 |
|
| 245 |
## Context length
|
| 246 |
|
|
@@ -333,13 +359,13 @@ DSpark (`--spec-type draft-dspark`), and `convert_hf_to_gguf.py --dspark`
|
|
| 333 |
extracts the draft head from the official checkpoint. Measured here on the same Spark, same prompts, same harness, all warm: under
|
| 334 |
**llama.cpp**, where both models can be compared on one engine, the 2-bit
|
| 335 |
256-expert target runs 19.0 tok/s plain and **36.1 tok/s** with DSpark, against
|
| 336 |
-
**26.
|
| 337 |
against 63.1%).
|
| 338 |
|
| 339 |
**vLLM gets less out of the same weights.** REAP128 under vLLM 0.25.1 accepts
|
| 340 |
**53.2%** of its drafts where llama.cpp accepts 63.1% from weights converted out
|
| 341 |
of the same checkpoint, and 60.0% against 66.4% with the unpruned head. Its steps
|
| 342 |
-
are faster, so throughput lands close (28.2 against 26.
|
| 343 |
fifth of the drafting is lost. The cause is unknown; KV quantization is ruled out
|
| 344 |
(llama.cpp reproduces its acceptance bit-for-bit with `q8_0` KV, and this vLLM
|
| 345 |
path refuses anything but fp8). Treat vLLM acceptance figures as a floor.
|
|
|
|
| 134 |
does not need to be given: routed **FP4 experts are repacked to MXFP4**, FP8
|
| 135 |
attention weights become **Q8_0**, and the remainder stays BF16 or F32. REAP128
|
| 136 |
converts to 82.7 GB / 1,328 tensors in about four and a half minutes on the
|
| 137 |
+
build machine. REAP152 converts identically to 96.5 GB / 1,328 tensors, keeping
|
| 138 |
+
`expert_count = 152`.
|
| 139 |
|
| 140 |
### Convert the draft head
|
| 141 |
|
|
|
|
| 222 |
|
| 223 |
### What it measures, and where it differs from vLLM
|
| 224 |
|
| 225 |
+
One DGX Spark, four prompts, greedy, 8,192-token context, draft width 5, warm —
|
| 226 |
+
every row taken with the same script and the same harness:
|
| 227 |
|
| 228 |
| target | draft head | engine | acceptance | accepted drafts / step | decode |
|
| 229 |
|---|---|---|---:|---:|---:|
|
| 230 |
+
| REAP128 | none | llama.cpp | — | — | 15.4 tok/s |
|
| 231 |
+
| REAP128 | 128 (shipped) | llama.cpp | **63.1%** | **3.19** | 26.3 tok/s |
|
| 232 |
| REAP128 | 256 (unpruned) | llama.cpp | 66.4% | 3.38 | 27.8 tok/s |
|
| 233 |
| REAP128 | 128 (shipped) | vLLM | 53.2% | 2.66 | 28.2 tok/s |
|
| 234 |
| REAP128 | 256 (unpruned) | vLLM | 60.0% | 3.00 | — |
|
| 235 |
+
| REAP152 | none | llama.cpp | — | — | 15.1 tok/s |
|
| 236 |
+
| REAP152 | 128 (shipped) | llama.cpp | 44.2% | 2.44 | 20.9 tok/s |
|
| 237 |
+
| REAP152 | 256 (unpruned) | llama.cpp | 47.7% | 2.64 | 21.8 tok/s |
|
| 238 |
+
| REAP152 | 128 (shipped) | vLLM | 40.7% | 2.03 | 23.7 tok/s |
|
| 239 |
+
| 2-bit IQ2_M, 256 experts | none | llama.cpp | — | — | 19.0 tok/s |
|
| 240 |
| 2-bit IQ2_M, 256 experts | 128 | llama.cpp | 62.9% | 3.22 | 36.1 tok/s |
|
| 241 |
| 2-bit IQ2_M, 256 experts | 256 | llama.cpp | 60.6% | 3.05 | 35.4 tok/s |
|
| 242 |
|
| 243 |
+
Three things this table says.
|
| 244 |
+
|
| 245 |
+
**vLLM's steps are faster; its drafting is not.** End-to-end throughput lands
|
| 246 |
+
close, but it accepts about a fifth fewer drafts from the same weights — and the
|
| 247 |
+
shortfall is a near-constant factor rather than a property of one build: 3.19
|
| 248 |
+
against 2.66 accepted drafts per step on REAP128, 2.44 against 2.03 on REAP152,
|
| 249 |
+
which is 1.20x both times. The cause is unknown and KV quantization is ruled out
|
| 250 |
+
(above).
|
| 251 |
+
|
| 252 |
+
**Pruning the draft head is cheap; mismatching it is not.** With the engine held
|
| 253 |
+
fixed, the unpruned 256-expert head is worth 6% more accepted drafts per step on
|
| 254 |
+
REAP128 and 8% on REAP152 — small either way. The gap *between builds* is much
|
| 255 |
+
larger: REAP152 accepts 2.44 per step against REAP128's 3.19, 24% less, on both
|
| 256 |
+
engines alike. Both builds ship the same byte-identical draft head, and it was
|
| 257 |
+
calibrated against the 128-expert target; on the 152-expert target it is
|
| 258 |
+
predicting a model it was not measured on.
|
| 259 |
+
|
| 260 |
+
The REAP128 row was published earlier at 26.9 tok/s and re-measured here beside
|
| 261 |
+
the REAP152 rows. The re-run reproduced its speculative counters **exactly** —
|
| 262 |
+
570 of 903 drafts accepted, the same 3.19 per step — and its throughput within
|
| 263 |
+
2%, so 26.3 against 26.9 is the run-to-run band on wall clock, not a change in
|
| 264 |
+
behaviour. Greedy decoding fixes the tokens; only timing moves.
|
| 265 |
+
|
| 266 |
+
**Speculation is where the throughput is.** Plain decode is 15.1-15.4 tok/s for
|
| 267 |
+
either build — near-identical, because both activate 6 routed experts per token
|
| 268 |
+
whatever their total — and the draft head takes REAP128 to 26.3 and REAP152 to
|
| 269 |
+
20.9.
|
| 270 |
|
| 271 |
## Context length
|
| 272 |
|
|
|
|
| 359 |
extracts the draft head from the official checkpoint. Measured here on the same Spark, same prompts, same harness, all warm: under
|
| 360 |
**llama.cpp**, where both models can be compared on one engine, the 2-bit
|
| 361 |
256-expert target runs 19.0 tok/s plain and **36.1 tok/s** with DSpark, against
|
| 362 |
+
**26.3 tok/s** for REAP128 — 1.37x, at acceptance within a few points (62.9%
|
| 363 |
against 63.1%).
|
| 364 |
|
| 365 |
**vLLM gets less out of the same weights.** REAP128 under vLLM 0.25.1 accepts
|
| 366 |
**53.2%** of its drafts where llama.cpp accepts 63.1% from weights converted out
|
| 367 |
of the same checkpoint, and 60.0% against 66.4% with the unpruned head. Its steps
|
| 368 |
+
are faster, so throughput lands close (28.2 against 26.3 tok/s), but about a
|
| 369 |
fifth of the drafting is lost. The cause is unknown; KV quantization is ruled out
|
| 370 |
(llama.cpp reproduces its acceptance bit-for-bit with `q8_0` KV, and this vLLM
|
| 371 |
path refuses anything but fp8). Treat vLLM acceptance figures as a floor.
|