NVIDIA published weights this week that solve one of speculative decoding’s most tedious production problems: the draft model. Nemotron-Labs-Diffusion runs autoregressive, diffusion parallel, and self-speculation modes from a single checkpoint. In self-speculation mode, it achieves 6.82 accepted tokens per forward pass — no second model required. The 8B variant is on Hugging Face now under a commercial-use license.
Why Speculative Decoding Has Always Been a Headache
If you’ve ever deployed speculative decoding, you know the friction. The technique is effective — a small drafter proposes tokens and the larger target model verifies them in a single parallel pass. Latency drops 2–3x. Throughput improves. Output quality stays identical.
But the operational cost is real. Running two models means double the GPU memory overhead. The draft and target must share an identical tokenizer — a subtle mismatch causes acceptance rates to collapse silently. When you fine-tune the target model, the draft model drifts out of alignment and needs its own retraining. You’re now managing two model lifecycles instead of one.
Most teams either skip speculative decoding entirely or pin it to a frozen base model and accept the fine-tuning gap. Neither is great.
What Nemotron-Labs-Diffusion Does Differently
NVIDIA’s approach fuses both models into one. The model can switch between two attention patterns at inference time: causal attention for autoregressive generation, bidirectional block attention for diffusion-based parallel token generation. In self-speculation mode, it uses the diffusion path to draft a block of tokens, then switches to autoregressive mode to verify them — sharing the KV cache across both steps.
No separate draft model. No tokenizer alignment problem. No VRAM overhead beyond the single checkpoint. And when you fine-tune, both drafting and verification stay in sync because they use the same weights.
The underlying intuition is that AR and diffusion objectives are complementary during training. Diffusion improves the model’s lookahead planning; AR reinforces left-to-right linguistic priors. Training jointly on both produces a model that genuinely benefits from switching between modes at runtime.
Three Modes, One Checkpoint
Mode selection happens at inference time via a single config parameter. No model reload, no architecture change, same serving endpoint:
- Autoregressive: Standard left-to-right generation. Use when output quality is the priority or you’re debugging.
- Diffusion: Parallel denoising of multiple token positions per forward pass. Best for high-throughput batch jobs.
- Self-speculation: Diffusion drafts, AR verifies, shared KV cache. Best for latency-sensitive serving at low-to-medium concurrency.
This flexibility matters for production teams. A single deployment can serve fast batch jobs in diffusion mode during off-peak hours and switch to self-speculation mode for interactive endpoints — without restarting the server or loading a different checkpoint.
The Numbers — and the Caveats
The arXiv preprint reports that Nemotron-Labs-Diffusion-8B achieves an average acceptance length of 6.82 tokens per forward step in self-speculation mode with LoRA tuning, compared to Eagle3’s 2.75 average. On coding, math, reasoning, and multilingual tasks, the gap widens: 8.69 for NLD versus 2.81 for Eagle3. End-to-end throughput on SPEED-Bench with SGLang on a GB200 GPU is 4x higher than baseline Qwen3-8B.
The honest caveat: this is an NVIDIA-authored preprint with no independent peer review at time of writing. The throughput figures are measured on GB200 hardware, not the H100 or A100 most teams have. The Eagle3 comparison may not use Eagle3’s optimal configuration. The acceptance rate improvements look genuine; the absolute throughput numbers need independent replication before you build a roadmap around them.
Quality benchmarks put the 8B instruct variant at 82.4% on HumanEval and 78.9% on GSM8K — competitive with Qwen3-8B and Llama-3.1-8B. You’re buying faster token generation, not a leap in reasoning capability.
Getting Started
The model is available in 3B, 8B, and 14B sizes, with base, instruct, and vision-language variants. The 8B instruct is the right starting point for most teams.
# Install core dependencies
pip install "transformers>=4.45.0" "torch>=2.4.0" accelerate
# For production serving with mode switching
pip install "sglang[all]>=0.4.0"
The weights are at nvidia/Nemotron-Labs-Diffusion-8B on Hugging Face. Mode selection code and serving examples are in the NVLabs GitHub repo. If your hardware can’t run the 8B, there’s already a community GGUF quantization of the 14B on Hugging Face.
Who Should Pay Attention
If you’re running high-throughput batch inference — code generation, document processing, classification at scale — and you’ve been avoiding speculative decoding because of the draft model overhead, test the 8B variant this week. The self-speculation mode removes the two biggest blockers: VRAM cost and tokenizer alignment.
If you’re already running Eagle3 with a well-tuned draft model at production concurrency and it’s working, this isn’t a migration worth doing today. Wait for independent benchmarks on hardware you actually have before making architectural decisions.
NVIDIA has framed this as “speed-of-light text generation.” That’s marketing language. What it actually delivers is speculative decoding without a second model — and for teams that needed exactly that, the release date is now.













