LordNeel commited on
Commit
033d6f3
·
verified ·
1 Parent(s): b42a677

Update MTP benchmark profile and serving card

Browse files
Files changed (1) hide show
  1. README.md +11 -6
README.md CHANGED
@@ -62,7 +62,7 @@ Use `Q3_K_M` when footprint matters more than peak throughput. It is a custom qu
62
 
63
  Use `IQ4_XS` when you want a middle-footprint quant: smaller than Q4_K_M with better next-token KLD than Q3_K_M, but slower than Q4_K_M in the short-context throughput profile.
64
 
65
- Use the trained Q6_K MTP draft only for MTP experimentation and regression work. It makes llama.cpp `draft-mtp` operational with 67.22% draft-token acceptance at `n_max=2`, but it is not yet a production throughput speedup: the measured IQ4_XS target plus Q6_K draft profile reached 286.77 tok/s at c16 versus 482.68 tok/s for refreshed IQ4_XS target-only. The smaller Q5_K_M and IQ4_XS MTP drafts are included as experimental footprint variants but are not recommended.
66
 
67
  ## Quant Provenance
68
 
@@ -137,6 +137,7 @@ Experimental trained-MTP profile:
137
 
138
  ```bash
139
  SPEC_DRAFT_BACKEND_SAMPLING=1 \
 
140
  LLAMA_MTP_FAST_BACKEND_SAMPLE=1 \
141
  LLAMA_MTP_DRAFT_TOP_K=1 LLAMA_MTP_DRAFT_TOP_P=1 LLAMA_MTP_DRAFT_TEMP=1 \
142
  QUANT=IQ4_XS PORT=8002 CTX_SIZE=8192 PARALLEL=16 \
@@ -223,12 +224,13 @@ OpenAI-compatible correctness gate, but only accepted 1.21% of draft tokens.
223
  This lab then trained a chain-corrected Qwen3.5 MoE MTP draft from target
224
  hidden-state captures and exported Q6_K, Q5_K_M, and IQ4_XS draft GGUFs. The
225
  current best MTP profile is IQ4_XS target plus Q6_K trained draft with
226
- `n_max=2`, draft backend sampling, and fast top-k=1 draft sampling:
 
227
 
228
- - c16 throughput: 286.77 tok/s
229
- - draft-token acceptance: 67.22%
230
- - acceptance by position: `(0.719, 0.621)`
231
- - approximate loaded VRAM: 22.44 GiB
232
 
233
  This is operational but still not a production MTP speedup. The refreshed
234
  IQ4_XS target-only profile reaches 482.68 tok/s at c16. The remaining blocker is
@@ -289,10 +291,13 @@ Experimental MTP profiles on the same IQ4_XS target:
289
  | IQ4_XS + BF16 MTP draft, n_max=3 | 25.12 | 95.5 | 97.0 | 102.1 | 108.2 | 0.47% |
290
  | IQ4_XS + BF16 MTP draft, n_max=1 | 23.03 | 153.6 | 147.2 | 154.3 | 159.5 | 1.07% |
291
  | IQ4_XS + IQ4_XS MTP draft, n_max=1 | 21.32 | 155.1 | 151.6 | 155.8 | 162.7 | 1.21% |
 
292
  | IQ4_XS + Q6_K trained MTP draft, n_max=2 | 22.44 | n/t | n/t | n/t | 286.77 | 67.22% |
293
  | IQ4_XS + Q5_K_M trained MTP draft, n_max=2 | 22.16 | n/t | n/t | n/t | 285.32 | 66.61% |
294
  | IQ4_XS + IQ4_XS trained MTP draft, n_max=2 | 21.53 | n/t | n/t | n/t | 265.06 | 59.20% |
295
  | IQ4_XS + Q6_K trained MTP draft, n_max=1 | 22.44 | n/t | n/t | n/t | 262.76 | 68.12% |
 
 
296
 
297
  `n/t` means not tested in the latest trained-MTP loop; those rows were measured
298
  only on the c16 profile used for the MTP fix loop.
 
62
 
63
  Use `IQ4_XS` when you want a middle-footprint quant: smaller than Q4_K_M with better next-token KLD than Q3_K_M, but slower than Q4_K_M in the short-context throughput profile.
64
 
65
+ Use the trained Q6_K MTP draft only for MTP experimentation and regression work. It makes llama.cpp `draft-mtp` operational with 67.19-67.22% draft-token acceptance at `n_max=2`, but it is not yet a production throughput speedup: the fastest measured IQ4_XS target plus Q6_K draft profile reached 288.67 tok/s at c16 with per-head MTP contexts, versus 482.68 tok/s for refreshed IQ4_XS target-only. The smaller Q5_K_M and IQ4_XS MTP drafts are included as experimental footprint variants but are not recommended.
66
 
67
  ## Quant Provenance
68
 
 
137
 
138
  ```bash
139
  SPEC_DRAFT_BACKEND_SAMPLING=1 \
140
+ MTP_PER_HEAD_CONTEXT=1 \
141
  LLAMA_MTP_FAST_BACKEND_SAMPLE=1 \
142
  LLAMA_MTP_DRAFT_TOP_K=1 LLAMA_MTP_DRAFT_TOP_P=1 LLAMA_MTP_DRAFT_TEMP=1 \
143
  QUANT=IQ4_XS PORT=8002 CTX_SIZE=8192 PARALLEL=16 \
 
224
  This lab then trained a chain-corrected Qwen3.5 MoE MTP draft from target
225
  hidden-state captures and exported Q6_K, Q5_K_M, and IQ4_XS draft GGUFs. The
226
  current best MTP profile is IQ4_XS target plus Q6_K trained draft with
227
+ `n_max=2`, per-head MTP contexts, draft backend sampling, and fast top-k=1
228
+ draft sampling:
229
 
230
+ - c16 throughput: 288.67 tok/s
231
+ - draft-token acceptance: 67.19%
232
+ - acceptance by position: `(0.718, 0.621)`
233
+ - approximate loaded VRAM: about 25.5 GiB
234
 
235
  This is operational but still not a production MTP speedup. The refreshed
236
  IQ4_XS target-only profile reaches 482.68 tok/s at c16. The remaining blocker is
 
291
  | IQ4_XS + BF16 MTP draft, n_max=3 | 25.12 | 95.5 | 97.0 | 102.1 | 108.2 | 0.47% |
292
  | IQ4_XS + BF16 MTP draft, n_max=1 | 23.03 | 153.6 | 147.2 | 154.3 | 159.5 | 1.07% |
293
  | IQ4_XS + IQ4_XS MTP draft, n_max=1 | 21.32 | 155.1 | 151.6 | 155.8 | 162.7 | 1.21% |
294
+ | IQ4_XS + Q6_K trained MTP draft, n_max=2, per-head contexts | ~25.5 | n/t | n/t | n/t | 288.67 | 67.19% |
295
  | IQ4_XS + Q6_K trained MTP draft, n_max=2 | 22.44 | n/t | n/t | n/t | 286.77 | 67.22% |
296
  | IQ4_XS + Q5_K_M trained MTP draft, n_max=2 | 22.16 | n/t | n/t | n/t | 285.32 | 66.61% |
297
  | IQ4_XS + IQ4_XS trained MTP draft, n_max=2 | 21.53 | n/t | n/t | n/t | 265.06 | 59.20% |
298
  | IQ4_XS + Q6_K trained MTP draft, n_max=1 | 22.44 | n/t | n/t | n/t | 262.76 | 68.12% |
299
+ | IQ4_XS + Q6_K trained MTP draft, n_max=2, batched deferred replay | 22.44 | n/t | n/t | n/t | 282.51 | 67.10% |
300
+ | IQ4_XS + Q6_K trained MTP draft, n_max=3 | 22.44 | n/t | n/t | n/t | 270.19 | 58.54% |
301
 
302
  `n/t` means not tested in the latest trained-MTP loop; those rows were measured
303
  only on the c16 profile used for the MTP fix loop.