Qwen3.8-27B-DFlash
A DFlash speculative-decoding draft for the Qwen3.8-27B verifier. The draft is trained from scratch (random initialization) against teacher signals from the verifier; it is not a fine-tune of the 27B weights. This is an experimental research artifact and a proof of concept, not a production-ready speedup.
The model proposes up to 15 tokens per verification step. It is used with the 27B verifier; it is not a standalone language model.
Model details
| Architecture | DFlash draft (speculators, DFlashDraftModel) |
| Verifier | Qwen3.8-27B (teacher, not weight initialization) |
| Initialization | from scratch (random); no verifier weights copied |
| Transformer layers | 5 |
| Hidden size | 5120 (20 heads, 4 KV heads, head dim 256) |
| Draft vocabulary | 248,320 (full verifier vocab) |
| Block size | 16 → max 15 speculative tokens |
| Attention | non-causal in-block, sliding window 2048 |
| Target hidden layers | 6, 20, 34, 48, 62 |
sample_from_anchor |
false |
| Parameters / dtype | ~1.78 B / BF16 |
| File | model.safetensors (3.57 GB) |
| SHA-256 | d9ddbd219b56e951e7b84fc5c68a74ebcd58f9a0b7347edda6795fe9c2df4f35 |
Training data
Prompts were sampled from public datasets (chat, WildChat, competitive programming, science/STEM, code, and math corpora). The answers, teacher samples, and verifier hidden states were generated locally with the BF16 Qwen3.8-27B on the Strix Halo machine. Totals across all corpora (deduplicated):
| category | rows | tokens | supervised tokens | avg tokens/row |
|---|---|---|---|---|
| chat | 27,652 | 75,761,390 | 38,102,599 | 2,740 |
| competitive_programming | 9,167 | 53,650,870 | 38,565,149 | 5,853 |
| wildchat | 16,624 | 46,611,390 | 27,688,987 | 2,804 |
| science_stem | 5,934 | 39,849,906 | 38,046,804 | 6,716 |
| code | 7,682 | 32,967,200 | 31,893,335 | 4,291 |
| math | 1,519 | 21,437,359 | 21,297,502 | 14,113 |
| total | 68,578 | 270,278,115 | 195,594,376 | 3,941 |
Usage
config.py is required because the checkpoint uses the speculators
configuration layout:
import speculators # noqa: F401 (registers the "dflash" speculator type)
from transformers import AutoConfig
config = AutoConfig.from_pretrained(
"asf0/Qwen3.8-27B-DFlash",
trust_remote_code=True,
)
Installing speculators (the checkpoint records 0.8.0.dev0) and a recent
transformers (records 5.16.1) is required. Loading the draft together with
the verifier is handled by the speculators/DFlash runtime; this repository
only contains the draft weights.
For llama.cpp, use the GGUF build instead:
asf0/Qwen3.8-27B-DFlash-GGUF.
Benchmarks
Measured on the same Strix Halo machine. Greedy decoding, thinking disabled,
Qwen3.8-27B Q8_0 verifier, q8_0 KV, llama.cpp, --spec-draft-n-max 15.
Same-session head-to-head (12-prompt set, p-min 0.4):
| model | tok/s | tok/step | ms/step | drafted/step | acceptance |
|---|---|---|---|---|---|
| this draft | 18.44 | 3.07 | 166 | 4.18 | 49.4% |
| native MTP | 19.07 | 3.29 | 173 | 3.95 | 57.9% |
| DFlash2 | 20.95 | 3.87 | 185 | 5.25 | 54.7% |
Best tuning found (18-prompt balanced set, 3 per category):
| config | tok/s | tok/step | ms/step | drafted/step | acceptance |
|---|---|---|---|---|---|
n-max 15, p-min 0.4 |
18.38 | 3.10 | 169 | 4.16 | 50.5% |
n-max 15, p-min 0.3 |
18.49 | 3.17 | 171 | 5.92 | 36.6% |
Lower p-min drafts more aggressively: acceptance drops but throughput rises
slightly. The three head-to-head rows are from one session on the same prompt
set; the tuning rows use the balanced set and are not directly comparable to
them.
Block size
dflash.block_size = 16 caps a draft step at 15 proposed tokens, so
--spec-draft-n-max above 15 has no effect. The sweep over
n-max {7,11,15} × p-min {0.1,0.2,0.3,0.4} confirmed 15 is the ceiling: lower
values lose throughput, higher values are clamped. The practical limit is
about 3.2 tokens per verify step.
Limitations
- Not faster than DFlash2 or native MTP. It improves over the earlier v3 draft but does not win overall.
- Requires a DFlash-enabled runtime. The GGUF needs a llama.cpp build with
--spec-type draft-dflash; this is not guaranteed to be in mainline. - Quality plateau. Validation EAL was flat from epoch 3 onward; the last two epochs produced no measurable gain, and the corpus is only ~270 M tokens.
- Benchmarks are from a single machine and a modest prompt set; treat them as a reproducibility record rather than a universal speed claim.
Author
Built by asf0.
Citation
@misc{asf0_qwen38_dflash_2026,
title = {Qwen3.8-27B-DFlash: a DFlash speculative-decoding draft for Qwen3.8-27B},
author = {asf0},
year = {2026},
howpublished = {\url{https://huggingface.co/asf0/Qwen3.8-27B-DFlash}},
note = {Experimental speculative-decoding draft; verifier: Qwen3.8-27B}
}
License and attribution
Apache-2.0. The draft is trained from scratch; it is not a fine-tune of
Qwen3.8-27B, which is used as the
verifier and teacher (Apache-2.0). The DFlash architecture and checkpoint format
come from the speculators project (Apache-2.0). See
NOTICE.
- Downloads last month
- -