DFlare#
DFlare is DFlash with layer-wise target fusion. It keeps DFlash’s block-parallel prediction, block-causal mask, anchor sampling, and CE loss unchanged, and changes only how the captured target layers are combined into context.
What changes over DFlash#
Separate context and draft K/V projections. DFlash shares one key/value projection for both the target hidden states and the draft tokens. DFlare gives the target hidden states their own
k_proj_target/v_proj_target, so context and draft tokens are projected independently before attention.Learnable per-layer fusion. DFlash collapses the T captured target layers into a single shared context with one linear projection. DFlare instead keeps the layers separate and learns a
layer_fusion_weightsmatrix of shape[num_draft_layers, T]: each draft layer attends to its own softmax-weighted mixture of the target layers. This lets different draft layers draw on different depths of the target model rather than a single fixed blend.
Configuration#
DFlare reuses DFlashConfig and the DFlash architecture name; the choice between DFlash and
DFlare is the config’s model_arch field:
{
"architectures": ["DFlashDraftModel"],
"model_arch": "dflare"
}
The trainer and checkpoint tooling read model_arch to build (and reload) the correct model, so
a DFlare checkpoint’s per-layer fusion weights are preserved rather than silently dropped.
All other fields match DFlash.