Researchers from Polymathic AI, Princeton University, USC ISI, NYU and the Flatiron Institute have released FlashMap. FlashMap speculative decoding replaces the discrete diffusion drafter with a continuous flow map. It drafts a full 16-token block in 1 forward pass. Tokens in that block stay consistent with each other. On Qwen3-8B, the research team reports up to 6.14x lossless speedup on GSM8K. Drafter weights for Qwen3-8B and Qwen3-4B are on Hugging Face, with vLLM and SGLang plugins.
TL;DR
- Size: 0.5B-parameter drafter (500M for Qwen3-8B, 475M for Qwen3-4B); drafts blocks of K = 16 tokens.
- Runs on: the same GPU as the target model. Paper speedups use 1 NVIDIA H200 NVL at concurrency 1, in bf16.
- Performance: fastest drafter tested on Qwen3-8B, about 7% above a retrained DFlash on average.
- Best: 6.14x speedup on GSM8K at temperature 0 (acceptance length 7.69 tokens).
- Worst: 2.28x speedup on Alpaca at temperature 1. On Qwen3-4B (temperature 0), it trails DFlash on 4 of 9 tasks.
What is FlashMap?
FlashMap is a speculative decoding drafter that maps Gaussian noise to a token block in 1 step. A small drafter proposes K tokens. The target model then checks all K in 1 parallel pass and keeps the longest matching prefix. Output stays exactly what the target would produce.
Speed depends on 2 things. How many drafted tokens get accepted, and how cheaply they were drafted. EAGLE-3 drafts autoregressively, so cost grows with block length. DFlash drafts the full block in 1 pass with block diffusion.
Why do diffusion drafters lose acceptance?
DFlash predicts each slot in the block independently. The research team calls this the factorized approximation. Picture a continuation that is “new york” or “san diego” with equal odds. An independent drafter proposes “new diego” or “san york” half the time. The target rejects those at slot 2.
FlashMap builds on Flow Map Language Models. Each noise sample maps to 1 full block. The noise picks the mode for every slot jointly.
How does FlashMap work?
The drafter is a 6-block diffusion transformer (DiT), with embedding dimension 2048 and 16 attention heads. It reads hidden states from target layers 1, 9, 17, 25 and 33. Embedding matrix and LM head are copied from the target and stay frozen.
Training runs in 2 stages:
- Flow teacher: a continuous flow over one-hot token blocks, trained with cross-entropy. A time reparameterization handles Qwen3’s 151,936-token vocabulary.
- Flow map student: semigroup distillation turns the flow into a 2-time denoiser. It jumps from noise to data in 1 step.
Both drafters train on 500K samples from Open-PerfectBlend. Total compute across all models and ablations was about 4,600 GPU hours on H200s.
