Refresh EAGLE-3 references for the thinking-aware v2 head (2026-07-24 retrain); concurrency section re-measured (501/878/1017 tok/s, ITL 6.2-7.6ms)
Browse files- README.md +14 -13
- assets/chart_concurrency.png +2 -2
README.md
CHANGED
|
@@ -152,16 +152,16 @@ inter-token latency stays essentially flat under load.
|
|
| 152 |
|
| 153 |
| concurrent streams | aggregate output tok/s | TTFT p50 (ms) | ITL p50 (ms) |
|
| 154 |
|---|---|---|---|
|
| 155 |
-
| 4 |
|
| 156 |
-
| 8 |
|
| 157 |
-
| 16 |
|
| 158 |
|
| 159 |
Measured with [GuideLLM](https://github.com/vllm-project/guidellm) on an RTX 5090,
|
| 160 |
-
vLLM v0.25.1, real multi-kB article prompts
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
(
|
| 165 |
|
| 166 |
## Serving (vLLM)
|
| 167 |
|
|
@@ -180,10 +180,11 @@ vllm serve <this-repo> --trust-remote-code \
|
|
| 180 |
```
|
| 181 |
|
| 182 |
Since 2026-07-23 the recommended speculation is my
|
| 183 |
-
[EAGLE-3 draft head](https://huggingface.co/NullSense/Nanbeige4.2-3B-EAGLE3)
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
|
|
|
| 187 |
still favors the ngram config (`{"method":"ngram","num_speculative_tokens":8,
|
| 188 |
"prompt_lookup_max":4,"prompt_lookup_min":2}`): 231 vs 160 output tok/s on 16 real
|
| 189 |
articles; verbatim copy-spans reward lookup drafting. Pick per dominant workload.
|
|
@@ -230,7 +231,7 @@ transformers-5 loading (llmcompressor, finetuning); vLLM serving does not use th
|
|
| 230 |
| [FP8-Dynamic](https://huggingface.co/NullSense/Nanbeige4.2-3B-FP8-Dynamic) (this repo) | 4.9 GB | 154 / 206 | default: no measured quality loss on any gate. Recommended. |
|
| 231 |
| [NVFP4-FP8-LoopShield](https://huggingface.co/NullSense/Nanbeige4.2-3B-NVFP4-FP8-LoopShield) | 4.5 GB | 159 / 202 | smallest artifact that keeps reasoning at FP8 parity; best JSON reliability. Recommended for tight VRAM. |
|
| 232 |
| [NVFP4A16](https://huggingface.co/NullSense/Nanbeige4.2-3B-NVFP4A16) | 3.6 GB | 175 / 220 | fastest; summarization/extraction only (reasoning drops 8 GSM8K points). Not for math/agentic. |
|
| 233 |
-
| [EAGLE3 draft](https://huggingface.co/NullSense/Nanbeige4.2-3B-EAGLE3) | +1.5 GB |
|
| 234 |
|
| 235 |
All three serve identically (same plugin, same flags); only the checkpoint differs.
|
| 236 |
Rule of thumb: this model + 64k fp8-KV context fits in ~7 GB VRAM at FP8, ~6 GB at
|
|
|
|
| 152 |
|
| 153 |
| concurrent streams | aggregate output tok/s | TTFT p50 (ms) | ITL p50 (ms) |
|
| 154 |
|---|---|---|---|
|
| 155 |
+
| 4 | 501 | 166 | 6.2 |
|
| 156 |
+
| 8 | 878 | 70 | 6.7 |
|
| 157 |
+
| 16 | 1017 | 242 | 7.6 |
|
| 158 |
|
| 159 |
Measured with [GuideLLM](https://github.com/vllm-project/guidellm) on an RTX 5090,
|
| 160 |
+
vLLM v0.25.1, real multi-kB article prompts, EAGLE-3 v2 (thinking-aware) head. The
|
| 161 |
+
server saturates to ~1000 tok/s aggregate at concurrency 16 with per-token latency
|
| 162 |
+
near-flat (6.2 to 7.6 ms), so it batches well for multi-user / parallel-agent
|
| 163 |
+
workloads. TTFT p50 is queueing-dominated at these request counts, not a decode
|
| 164 |
+
signal. Spec acceptance held over the run (154k accepted / 354k drafted, 0.44).
|
| 165 |
|
| 166 |
## Serving (vLLM)
|
| 167 |
|
|
|
|
| 180 |
```
|
| 181 |
|
| 182 |
Since 2026-07-23 the recommended speculation is my
|
| 183 |
+
[EAGLE-3 draft head](https://huggingface.co/NullSense/Nanbeige4.2-3B-EAGLE3),
|
| 184 |
+
thinking-aware since the 2026-07-24 retrain: thinking-mode acceptance 0.41 (0.33
|
| 185 |
+
before), and +12-41% single-stream decode over the prior head depending on context,
|
| 186 |
+
in one config (TRITON_ATTN required with it; FlashInfer + spec drops CUDA graphs to
|
| 187 |
+
piecewise on SM120). One measured exception: LONG-document summarization (multi-k-char inputs)
|
| 188 |
still favors the ngram config (`{"method":"ngram","num_speculative_tokens":8,
|
| 189 |
"prompt_lookup_max":4,"prompt_lookup_min":2}`): 231 vs 160 output tok/s on 16 real
|
| 190 |
articles; verbatim copy-spans reward lookup drafting. Pick per dominant workload.
|
|
|
|
| 231 |
| [FP8-Dynamic](https://huggingface.co/NullSense/Nanbeige4.2-3B-FP8-Dynamic) (this repo) | 4.9 GB | 154 / 206 | default: no measured quality loss on any gate. Recommended. |
|
| 232 |
| [NVFP4-FP8-LoopShield](https://huggingface.co/NullSense/Nanbeige4.2-3B-NVFP4-FP8-LoopShield) | 4.5 GB | 159 / 202 | smallest artifact that keeps reasoning at FP8 parity; best JSON reliability. Recommended for tight VRAM. |
|
| 233 |
| [NVFP4A16](https://huggingface.co/NullSense/Nanbeige4.2-3B-NVFP4A16) | 3.6 GB | 175 / 220 | fastest; summarization/extraction only (reasoning drops 8 GSM8K points). Not for math/agentic. |
|
| 234 |
+
| [EAGLE3 draft](https://huggingface.co/NullSense/Nanbeige4.2-3B-EAGLE3) | +1.5 GB | +12-41% decode | add-on speculator for any of the above; thinking-aware retrain (2026-07-24), thinking-mode acceptance 0.41, lossless. Serve with TRITON_ATTN. |
|
| 235 |
|
| 236 |
All three serve identically (same plugin, same flags); only the checkpoint differs.
|
| 237 |
Rule of thumb: this model + 64k fp8-KV context fits in ~7 GB VRAM at FP8, ~6 GB at
|
assets/chart_concurrency.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|