pub struct DflashWeights {Show 13 fields
pub config: DflashConfig,
pub fc: DenseWeight,
pub hidden_norm: DenseWeight,
pub norm: DenseWeight,
pub layers: Vec<DflashLayerWeights>,
pub draft_id_to_target_id: Option<Vec<i64>>,
pub markov_w1: Option<DenseWeight>,
pub markov_w2: Option<DenseWeight>,
pub confidence_proj: Option<DenseWeight>,
pub confidence_bias: Option<DenseWeight>,
pub selector_pred: Option<DenseWeight>,
pub selector_succ: Option<DenseWeight>,
pub selector_hidden_proj: Option<DenseWeight>,
}Expand description
Raw weight bundle for the DFlash drafter, post-load.
Verified against z-lab/Qwen3.6-35B-A3B-DFlash (commit 42d3b34, May 2026):
the checkpoint ships 91 BF16 tensors — fc.weight, hidden_norm.weight,
norm.weight, plus 11 weights per drafter layer × 8 layers. No
embed_tokens or lm_head are in the checkpoint — the drafter shares
the target’s embedding and LM head at construction time. This matches the
vLLM PR #40898 flow: when those keys are absent, vLLM’s AutoWeightsLoader
adds them to skip_substrs, leaving the runtime to slot in the target’s
pointers.
Fields§
§config: DflashConfig§fc: DenseWeight[draft_hidden, len(target_layer_ids) * target_hidden].
Qwen3.6-35B-A3B-DFlash: [2048, 10240].
[draft_hidden] — RMSNorm applied to the projected target context
before mixing with token embeddings.
norm: DenseWeight[draft_hidden] — final RMSNorm before LM head.
layers: Vec<DflashLayerWeights>§draft_id_to_target_id: Option<Vec<i64>>Present iff the drafter has a draft-id → target-id mapping (i.e.
draft_vocab_size != target_vocab_size). Absent for
Qwen3.6-35B-A3B-DFlash (both vocabs = 248320).
markov_w1: Option<DenseWeight>Markov head markov_w1: [vocab, markov_rank] BF16 embedding table
(prev-token → latent). Present iff config.markov_rank > 0 and the
checkpoint carries the tensor.
markov_w2: Option<DenseWeight>Markov head markov_w2: [vocab, markov_rank] BF16
(nn.Linear(rank, vocab, bias=False).weight, i.e. [N, K] for the
GEMV convention). Projects the latent back to a full-vocab bias.
confidence_proj: Option<DenseWeight>Confidence head weight: [1, hidden(+rank)] BF16.
confidence_bias: Option<DenseWeight>Confidence head bias: [1] BF16.
selector_pred: Option<DenseWeight>candidate_selector.predecessor_codebook [vocab, selector_rank] BF16.
selector_succ: Option<DenseWeight>candidate_selector.successor_codebook [vocab, selector_rank] BF16.
candidate_selector.hidden_projection.weight [selector_rank, hidden].