Think First, Diffuse Fast: Improving Diffusion Language Model Reasoning via Autoregressive Plan Conditioning
Organizations: Independent Researcher
Abstract
Diffusion large language models (dLLMs) generate text via iterative denoising but consistently underperform on multi-step reasoning. We hypothesize this gap stems from a coordination problem: AR models build coherence token-by-token, while diffusion models must coordinate all positions simultaneously. We propose plan conditioning, a training-free method that prepends a short (~100-token) natural-language plan from an AR model to the diffusion model's prompt. The plan serves as a frozen scaffold -- globally visible context that every token position can attend to from the first denoising step. On GSM8K, plan conditioning improves LLaDA-8B-Instruct from 75.6% to 87.2% (+11.6 percentage points), matching a same-size AR model (LLaMA 3.1 8B, 87.7%) despite a 6.4pp weaker baseline. On HumanEval, the gain is +12.8pp (37.2% to 50.0%), showing plans generalize to code. The same plans improve LLaMA by only +5.7pp on GSM8K and +1.3pp on HumanEval -- diffusion models benefit 2-10x more, supporting the coordination-problem hypothesis. Across 5 random seeds, plan-conditioned GSM8K accuracy has zero standard deviation, making diffusion inference highly stable. Ablations reveal the model follows plan strategy (wrong-strategy plans cause -16.3pp) but is robust to plan values (perturbed numbers: -1.1pp), and that planner quality has a sharp threshold: smaller Llama-class plans hurt (-1.6 to -6.8pp) while frontier plans provide the full lift. Attention analysis confirms the mechanism: plan tokens receive 1.8x excess attention during early denoising, declining to uniform as completion tokens solidify. Plan conditioning costs ~$0.002 per problem and adds ~2s of latency.
Figures & tables
| Format | Description | Example snippet |
|---|---|---|
| Strategy | High-level approach in 1–2 sentences | “Calculate daily production, subtract consumed, find remaining” |
| Outline | Step-by-step procedure without computing answers | “Step 1: Identify total chickens. Step 2: …” |
| Constraints | Key facts, pitfalls, expected answer form | “Daily production: 16 eggs. Pitfall: don’t double-count…” |
| Hybrid | Strategy sentence + key constraints | “Track eggs through pipeline. Key: 16/day produced, 3/day consumed…” |
| Benchmark | Baseline | Strategy | Outline | Constraints | Hybrid | Best |
|---|---|---|---|---|---|---|
| 128 / 256 | 128 / 256 | 128 / 256 | 128 / 256 | 128 / 256 | ||
| GSM8K | 69.0 / 75.6 | 77.7 / 85.7 | 78.2 / 84.9 | 76.8 / 86.0 | 82.0 / 87.2 | +11.6 |
| MATH500 | 27.4 / 35.8 | 30.6 / 37.4 | 34.4 / 36.6 | 30.0 / 37.6 | 32.6 / 41.8 | +6.0 |
| HumanEval | 25.0 / 37.2 | 32.3 / 50.0 | 42.1 / 48.8 | 28.0 / 36.0 | 32.9 / 48.2 | +12.8 |
| Countdown | 21.1 / 19.1 | 29.7 / 28.5 | 18.4 / 21.5 | 22.3 / 14.5 | 28.1 / 31.2 | +12.1 |
| Sudoku | 11.6 / 6.9 | 5.7 / 7.9 | 6.3 / 6.1 | 7.3 / 7.7 | 7.2 / 6.2 | +1.0 |
| Condition | LLaMA 3.1 8B (AR) | LLaDA-8B (Diffusion) |
|---|---|---|
| GSM8K | ||
| Bare | 82.0 | 75.6 |
| + Sonnet plan | 87.7 (+5.7) | 87.2 (+11.6) |
| + Haiku plan | 84.9 (+2.9) | 82.3 (+6.7) |
| MATH500 | ||
| Bare | 43.0 | 35.8 |
| Plan Budget | GSM8K | Countdown | ||
|---|---|---|---|---|
| Accuracy | Lift | Accuracy | Lift | |
| 0 (bare) | 75.6 | — | 19.1 | — |
| 25 tokens | 79.5 | +3.9 | 17.6 | 1.5 |
| 50 tokens | 83.0 | +7.4 | 16.8 | 2.3 |
| 100 tokens | 87.2 | +11.6 | 31.2 | +12.1 |
| 150 tokens | 88.0 | +12.4 | 39.5 | +20.4 |
| Category | Accuracy (%) | |
|---|---|---|
| No leakage (answer absent from plan) | 80.1 | 1,022 |
| False-positive leak (answer already in problem) | 83.5 | 85 |
| True leakage (answer new in plan) | 88.7 | 212 |
| Baseline (no plan) | 75.6 | 1,319 |
| Planner | GSM8K | MATH500 | Countdown | Cost/plan |
|---|---|---|---|---|
| None (baseline) | 75.6 | 35.8 | 19.1 | $0 |
| LLaDA self-plan | 74.9 ( 0.7) | — | — | $0 |
| Llama 3.2 3B | 68.8 ( 6.8) | 30.0 ( 5.8) | 16.4 ( 2.7) | $0.00005 |
| Llama 3.1 8B | 74.0 ( 1.6) | 31.6 ( 4.2) | 13.3 ( 5.8) | $0.0001 |
| Haiku 4.5 | 82.3 (+6.7) | 34.4 ( 1.4) | 24.2 (+5.1) | $0.0006 |
| Sonnet 4.5 | 87.2 (+11.6) | 41.8 (+6.0) | 31.2 (+12.1) | $0.002 |
| Benchmark | Rescue rate (hard) | Retention rate (easy) | Fix:Break ratio |
|---|---|---|---|
| GSM8K | 71.4% | 92.3% | 3.0:1 |
| MATH500 | 21.5% | 78.2% | 1.8:1 |
| Countdown | 28.0% | 44.9% | 2.1:1 |
| Category | Count | % of failures |
|---|---|---|
| Execution error (right plan, wrong math) | 100 | 59.2 |
| Format failure (right answer, wrong format) | 31 | 18.3 |
| Plan wrong (plan misled the model) | 27 | 16.0 |
| No answer extracted | 11 | 6.5 |
| Condition | GSM8K (%) | What it tests | |
|---|---|---|---|
| Wrong strategy | 59.3 | 16.3 | Incorrect mathematical approach |
| Mismatched plan | 71.0 | 4.6 | Plan for a different problem |
| Perturbed numbers | 74.5 | 1.1 | Correct strategy, wrong values |
| Baseline (no plan) | 75.6 | — | |
| Random tokens | 78.2 | +2.6 | Token count only |
| Shuffled plan | 80.0 | +4.4 | Vocabulary preserved |
| Condition | GSM8K | MATH500 | Rel. FLOPs |
|---|---|---|---|
| Baseline (gen=256, steps=128) | 75.6 | 35.8 | 1.0 |
| Longer gen (gen=384, steps=192) | 78.9 (+3.3) | 34.4 ( 1.4) | 1.5 |
| More steps (gen=256, steps=256) | 79.3 (+3.7) | 34.4 ( 1.4) | 2.0 |
| Plan conditioning | 87.2 (+11.6) | 41.8 (+6.0) | 1.0 * |
| Benchmark | Baseline | + Sonnet plan | |
|---|---|---|---|
| GSM8K | 75.51 0.15 | 88.02 0.00 | +12.5 |
| MATH500 | 35.76 0.08 | 41.52 0.56 | +5.8 |
| Countdown | 17.73 1.01 | 37.11 2.60 | +19.4 |
| Benchmark | LLaDA | + Sonnet Plan | Berr. BL | Berr. Text | Berr. Latent | |
|---|---|---|---|---|---|---|
| DART5 | 11.0 | 17.2 | +6.2 | 15.0 | 27.0 | 54.0 |
| ARC-Challenge | 71.3 | 75.2 | +3.9 | 87.5 | 91.0 | 81.0 |
| AIME24 | 0.0 | 3.3 | +3.3 | 1.5 | 1.5 | 14.0 |
Diffusion Language Models
Diffusion language models generate and refine text through iterative denoising, enabling bidirectional context and parallel token updates.
See all 443 papers