Paper Notes: dFlash
last updated 2026-08-13
dFlash is a block-causal diffusion model for speculative decoding. Unlike EAGLE/EAGLE-2/EAGLE-3, it generates its draft tokens in parallel, so you don’t have to pay an autoregressive cost.
It’s a popular replacement for EAGLE, because it can result in higher speedups and better average acceptance length.
Autoregressive v. Diffusion
This allows dFlash models to be even larger than EAGLE models, and thus possibly more accurate. EAGLE is typically a 1-layer autoregressive transformer, whereas the dFlash standard is a 5-layer diffusion transformer. For ~the same speculation time, you can speculate more accurate tokens, which is crucial to the speedups.
However, they do suffer from diffusion limitations. I discuss the limitations of diffusion more in Don’t Diffuse, Speculate!. But you can see for yourself by actually running dFlash.
I wrote a library, specspecs, that allows you to visualize what speculative decoding heads output. If we look at a particularly poor-quality draft:

We see unrealistic sequences of tokens: what reasonable model would predict ** followed by **) followed by **). If you know what token you’ve committed to at the previous timestep, which autoregressive models do, you wouldn’t make this kind of mistake.
In the specspecs repo, I have a manually implemented dFlash generation loop that runs on a macbook, so I’d encourage you to play with it yourself!
dFlash Architecture
