SpecCTMC — Exact speculative sampling for masked diffusion LMs — What does it mean?
The news. On November 5, 2026, a team led by Siva Rajesh Kasa and Yasong Dai posted SpecCTMC, a training-free speculative sampler for masked diffusion language models. On LLaDA-8B-Instruct and Dream-v0-Instruct-7B across five benchmarks it reports 1.73–4.38× fewer sequential model evaluations than direct continuous-time sampling while preserving the reference sampling distribution. Read the paper →
A masked diffusion language model starts with a block of blank slots and fills them in. In the continuous-time view, filling the blanks is a random process that unmasks exactly one slot at each event. Every event has two random parts: when it happens, and a mark, meaning which position is filled and which token goes there. The paper shows the timing depends only on the model time and on how many masks remain, so every event time can be drawn up front. The mark is the part that needs the model: the position is uniform over the masked slots, and the token follows the model's probabilities at that slot (how a model turns probabilities into a token).
The exact sampler, which the paper calls DirectCTMC, draws one mark, commits it, and calls the model again, because the next mark depends on the token just placed. That is one sequential model call per token: exact, but slow.
The obvious shortcut is to unmask several slots from the same state. But tokens sampled in parallel cannot see each other, so the dependence between them is weakened. The paper's own example uses pairs of binary tokens that tend to agree: when a decoder puts both tokens of a pair in the same step, it draws them independently, the agreement falls below the target, and the paper proves that restoring it requires a minimum number of model evaluations. Tau-leaping and trapezoidal solvers are a different shortcut with the same trade. They freeze or extrapolate the rates over an interval, so they approximate the process instead of reproducing it.
Back to the kitchen. The head chef (the target model) cooks one dish at a time, and each dish depends on the one before. SpecCTMC adds a pre-cook who prepares the next several dishes ahead of time from the chef's earlier tasting notes. There is no separate draft model: the drafter picks a masked position uniformly and samples a token from a mixture of the model's previously computed probabilities at that position and a uniform distribution over non-mask tokens.
The chef then tastes every prepped dish in one batched call. Each row of that call holds the state before one proposed update, conditioned on the proposals ahead of it, so it is the same state DirectCTMC would have used. Dishes are checked in order, and each is accepted with the standard speculative-sampling probability, the smaller of 1 and target probability divided by draft probability (the verification algorithm). At the first rejection, the replacement mark is drawn from the residual distribution, and every later dish is thrown away; the next round starts from the corrected state. The paper proves that this keeps the joint distribution of event times, generation order and token values identical to DirectCTMC, so it adds neither time-discretization error nor extra factorization error from parallel decoding.
Token-by-token acceptance check
The diagram shows the accept-or-correct rule on text tokens, as autoregressive speculative decoding uses it. SpecCTMC lifts the same rule onto diffusion marks, where the thing being verified is a (position, token) update instead of the next word.
Take a 256-token block with speculation depth 8, the setting of the paper's Table 4 on the multimodal diffusion model LLaDA-V with the MathVerse benchmark. DirectCTMC needs 256 sequential evaluations, one per event. SpecCTMC averages 43.17, a 5.93× reduction, with an acceptance rate of 0.698. Since 256 divided by 43.17 is about 5.93, the 256 events were covered by about 43 sequential evaluations; the paper cautions that this also depends on how accepted events are grouped into verification rounds, so the ratio is not an exact count of events per round. On the text models the paper reports 1.73–4.38× across LLaDA-8B-Instruct and Dream-v0-Instruct-7B.
Those are counts of sequential calls, not seconds. A batched call is not free. On a B200 at short lengths, one three-candidate call costs less than three separate calls, but as sequence length grows its cost approaches that of three separate calls. So on Dream-7B-Instruct the paper finds HumanEval faster at every B200 depth, GSM8K with its long prompt at parity or slower, and depth 8 on GSM8K out of memory on an L40S.
| Sampler | Sequential model calls | Matches the target process? | Extra draft model? |
|---|---|---|---|
| DirectCTMC | One per event | Yes, it is the reference | No |
| Unmask many tokens per step | Fewer | No: simultaneous tokens are drawn independently | No |
| Tau-leaping, trapezoidal | Fewer, set by the step count | Approximately: finite-step error | No |
| SpecCTMC | Fewer: 1.73–4.38× on five text benchmarks (paper) | Yes: event times, order and tokens preserved | No |
Two limits are worth keeping in mind. First, the paper notes that exactness is a statement about the distribution, not about wall-clock time: rows after the first rejection may go unused, so elapsed time depends on sequence length, memory and the target model's batch-cost curve. Second, the paper points to uniformization, an exact simulator that uses a dominating Poisson clock with virtual self-transitions, as a complementary method, and leaves a matched comparison of when each wins as future work. The evaluation covers LLaDA-8B-Instruct, Dream-v0-Instruct-7B and, for the multimodal case, LLaDA-V.
Goes deeper in: LLM Serving → Speculative Decoding → The Verification Algorithm
Related explainers
- PSD: parallel speculative decoding for diffusion LLMs — the approximate way to commit several positions per pass, the contrast to this exact rule
- Measured coupling for parallel diffusion decoding — why parallel unmasking breaks token dependence in the first place