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

Release v6 (epoch 1)
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 ae3fee98221c231c306d29e438e994d44382e411fcdea4ca08a6e4e83c372724

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 below combine the v5 and v6 corpora, which are disjoint by primary_id (deduplicated):

category rows tokens supervised tokens avg tokens/row
chat 33,643 92,794,473 46,222,871 2,758
competitive_programming 16,578 98,820,566 77,684,703 5,961
wildchat 34,401 83,283,527 42,205,540 2,421
science_stem 11,344 59,245,318 56,315,634 5,223
code 10,477 36,933,155 34,377,396 3,525
math 5,003 35,662,113 35,147,908 7,128
total 111,446 406,739,152 291,954,052 3,650

"Tokens" counts prompt + answer; "supervised tokens" are the answer tokens used for the draft loss (~71.8% of the total).

Provenance

  • Current release: v6 epoch-1 checkpoint.
  • SHA-256 of model.safetensors: ae3fee98221c231c306d29e438e994d44382e411fcdea4ca08a6e4e83c372724.
  • Draft weights were trained against BF16 teacher hidden states at the five target layers above.
  • The previous release (v5-e4) remains available at the v5-e4 tag.

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 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.

Current release (v6 epoch 1), 18-prompt balanced set, one session:

config tok/s tok/step ms/step drafted/step acceptance
p-min 0.3 (recommended) 18.99 3.22 169.7 5.75 38.7%
p-min 0.4 18.53 3.11 167.9 4.16 50.7%

Previous release (v5-e4), same 18-prompt set, same session:

config tok/s tok/step ms/step drafted/step acceptance
p-min 0.3 18.49 3.17 171.2 5.92 36.6%
p-min 0.4 18.36 3.10 168.8 4.16 50.5%

v6 is +3.4% over v5 at the previous default (p-min 0.4) and +2.7% at the best setting (p-min 0.3). Lower p-min drafts more aggressively: acceptance drops but throughput rises.

Reference controls (older 12-prompt set, not directly comparable): native MTP 19.07 tok/s, DFlash2 20.95 tok/s.

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.

Limitations

  • Not faster than DFlash2 or native MTP. It is close to MTP and still behind DFlash2; this is a research artifact.
  • 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.
  • 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
23
Safetensors
Model size
2B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for asf0/Qwen3.8-27B-DFlash

Quantizations
1 model