wmeddie commited on
Commit
3ac3fac
·
verified ·
1 Parent(s): 6c66129

Document DFlash speculative-decoding draft model

Browse files
Files changed (1) hide show
  1. README.md +41 -4
README.md CHANGED
@@ -9,6 +9,8 @@ tags:
9
  - reasoning
10
  - bfcl
11
  - function-calling
 
 
12
  language:
13
  - en
14
  ---
@@ -46,10 +48,11 @@ variant slightly underperforms base.
46
 
47
  ## Files
48
 
49
- | File | Quant | Layers | Size |
50
- |------|-------|--------|------|
51
- | `Qwen3.6-27B-rys_33-36-UD-Q4_K_XL.gguf` | Q4_K_XL | 68 | 18 GiB |
52
- | `Qwen3.6-27B-rys_33-36-Q8_0.gguf` | Q8_0 | 68 | 29 GiB |
 
53
 
54
  The base GGUF (no surgery) is at
55
  [unsloth/Qwen3.6-27B-GGUF](https://huggingface.co/unsloth/Qwen3.6-27B-GGUF).
@@ -238,6 +241,40 @@ truncating mid-thought.
238
  About 22 GiB at Q4_K_XL with 32k context and Q8 KV cache. Fits comfortably on
239
  a single A100 40 GB.
240
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
241
  ---
242
 
243
  ## When to use this
 
9
  - reasoning
10
  - bfcl
11
  - function-calling
12
+ - speculative-decoding
13
+ - dflash
14
  language:
15
  - en
16
  ---
 
48
 
49
  ## Files
50
 
51
+ | File | Quant | Layers | Size | Role |
52
+ |------|-------|--------|------|------|
53
+ | `Qwen3.6-27B-rys_33-36-UD-Q4_K_XL.gguf` | Q4_K_XL | 68 | 18 GiB | target model |
54
+ | `Qwen3.6-27B-rys_33-36-Q8_0.gguf` | Q8_0 | 68 | 29 GiB | target model |
55
+ | `Qwen3.6-27B-DFlash-Q8_0-rys.gguf` | Q8_0 | 5 | 1.8 GiB | DFlash draft (speculative decoding) |
56
 
57
  The base GGUF (no surgery) is at
58
  [unsloth/Qwen3.6-27B-GGUF](https://huggingface.co/unsloth/Qwen3.6-27B-GGUF).
 
241
  About 22 GiB at Q4_K_XL with 32k context and Q8 KV cache. Fits comfortably on
242
  a single A100 40 GB.
243
 
244
+ ### Speculative decoding with DFlash (faster inference)
245
+
246
+ RYS makes the model deeper (68 vs 64 layers), so each token costs a little more
247
+ compute. You can win that back — and then some — with **DFlash speculative
248
+ decoding**, a diffusion-style draft head that proposes a block of tokens per
249
+ step which the target model verifies in one pass.
250
+
251
+ `Qwen3.6-27B-DFlash-Q8_0-rys.gguf` is a DFlash draft **trained against the
252
+ 68-layer RYS layout** — its hidden-state taps (`target_layer_ids = [1, 16, 31,
253
+ 50, 65]`) index into the duplicated-block arrangement, so it must be paired with
254
+ the RYS target, not the stock base model.
255
+
256
+ DFlash support is not in upstream llama.cpp yet; use
257
+ [BeeLlama](https://github.com/Anbeeld/beellama.cpp), a llama.cpp fork that adds
258
+ the `dflash` spec type:
259
+
260
+ ```bash
261
+ ./build/bin/llama-server \
262
+ -m ~/models/Qwen3.6-27B-rys_33-36-UD-Q4_K_XL.gguf \
263
+ --spec-draft-model ~/models/Qwen3.6-27B-DFlash-Q8_0-rys.gguf \
264
+ --spec-type copyspec,dflash \
265
+ --spec-dflash-cross-ctx 1024 \
266
+ --port 9999 -np 1 --kv-unified \
267
+ -ngl all --spec-draft-ngl all \
268
+ -b 2048 -ub 1024 --flash-attn on \
269
+ --jinja --no-host --reasoning on \
270
+ --chat-template-kwargs '{"preserve_thinking":true}' \
271
+ --temp 0.6 --top-k 20 --top-p 1.0 --min-p 0.0
272
+ ```
273
+
274
+ The draft adds ~1.8 GiB of VRAM. Acceptance is highest on the long, structured
275
+ thinking chains this model produces, which is exactly where the RYS variant
276
+ spends its tokens.
277
+
278
  ---
279
 
280
  ## When to use this