DiffusionGemma + ORL, NVFP4: DiffusionGemma-26B-A4B-it-ORL with its MoE experts quantized to NVFP4 for NVIDIA Blackwell GPUs, at comparable accuracy
Accuracy (%) / TPF with the ORL decoder and the paper's scorers:
| Model | GPU | GSM8K | MATH-500 | HumanEval | MBPP |
|---|---|---|---|---|---|
| DiffusionGemma-26B-A4B-it-ORL (BF16) | H100 | 96.0 / 30.0 | 92.3 / 27.4 | 91.9 / 27.9 | 87.4 / 28.7 |
| DiffusionGemma-26B-A4B-it-ORL-NVFP4 | B200 | 95.6 / 29.25 | 93.4 / 26.69 | 91.9 / 27.32 | 86.3 / 27.96 |
With tensor parallelism across eight B200s, accuracy is 96.1 / 91.4 / 92.7 / 86.0 on GSM8K / MATH-500 / HumanEval / MBPP; tensor parallelism does not change the tokens per forward.

Tokens per second for a single request with dlmrt (the paper's NVFP4 tables):
| Model | GPU | GSM8K | MATH-500 | HumanEval | MBPP |
|---|---|---|---|---|---|
| DiffusionGemma-26B-A4B-it-ORL (BF16) | H100 | 1,456 | 1,415 | 1,378 | 1,361 |
| DiffusionGemma-26B-A4B-it-ORL-NVFP4 | RTX 5090 | 1,540 | 1,408 | 1,490 | 1,465 |
| DiffusionGemma-26B-A4B-it-ORL-NVFP4 | B200 | 4,214 | 3,805 | 3,949 | 3,898 |
| DiffusionGemma-26B-A4B-it-ORL-NVFP4 | 8Γ B200 | 7,708 | 7,123 | 7,026 | 6,871 |
The 8Γ B200 and RTX 5090 rows use generation seed 1234.
NVIDIA's nvidia/diffusiongemma-26B-A4B-it-NVFP4 quantizes the DiffusionGemma base model to NVFP4. With ORL, this checkpoint decodes more tokens per forward at comparable accuracy (within 0.8 points) and is 1.14β1.30Γ faster for a single request, both measured back to back with dlmrt on the same B200. Accuracy (%) / TPF, and the speedup:
| Model | GSM8K | MATH-500 | HumanEval | MBPP |
|---|---|---|---|---|
| NVIDIA DiffusionGemma NVFP4 (base model) | 96.1 / 24.81 | 92.7 / 22.79 | 91.3 / 23.91 | 87.1 / 21.60 |
| DiffusionGemma-26B-A4B-it-ORL-NVFP4 | 95.6 / 29.25 | 93.4 / 26.69 | 91.9 / 27.32 | 86.3 / 27.96 |
| Single-request speedup over NVIDIA | 1.16Γ | 1.19Γ | 1.14Γ | 1.30Γ |
| Component | Format |
|---|---|
| MoE experts (decoder) | NVFP4 W4A4: E2M1 values, one FP8 E4M3 scale per 16 elements, an FP32 per-tensor scale; activations quantized per 16 elements with calibrated input scales |
| KV cache | FP8 |
| Attention, dense MLP, router, embeddings, norms, LM head | BF16 |
Exported with NVIDIA ModelOpt (hf_quant_config.json), experts-only recipe with Diagonal-Hessian
calibration. The export also keeps BF16 copies of the expert weights, which NVFP4 inference does not read; this is
why the checkpoint is larger than the BF16 one.
Native FP4 needs an NVIDIA Blackwell GPU: a B200 or B300, or a GeForce RTX 50-series card such as the RTX 5090. Stock vLLM and SGLang do not run DiffusionGemma's block-diffusion decoding; the ORL repository's patched vLLM serves the BF16 checkpoint.
dlmrt, our inference engine, decodes one request at a time with the paper's decoder (role="orl")
and measures the paper's throughput; see its README for installation, tensor parallelism and the commands of every
paper cell.
from dlmrt import LLM
llm = LLM("yifanyu/DiffusionGemma-26B-A4B-it-ORL-NVFP4", role="orl", precision="nvfp4")
out = llm.generate("Write a Python function that reverses a linked list.", max_new_tokens=2048)
print(out.text)
print(f"{out.request_tps:.0f} tokens/s")
python -m dlmrt serve --model yifanyu/DiffusionGemma-26B-A4B-it-ORL-NVFP4 --role orl --precision nvfp4 --port 18080
curl -N localhost:18080/generate -d '{"messages": [{"role": "user", "content": "Hi!"}], "max_new_tokens": 512}'
For tensor parallelism, run the same program or dlmrt serve under torchrun --nproc-per-node 8.
Paper role dg-orl, training step 900, quantized from
yifanyu/DiffusionGemma-26B-A4B-it-ORL. The tokenizer and chat
template are the BF16 checkpoint's. Decoding settings are the same as for the BF16 checkpoint (paper_decoding.json
there).
| Model | Hugging Face | Description |
|---|---|---|
| DiffusionGemma-26B-A4B | google/diffusiongemma-26B-A4B-it | Start model of this checkpoint |
| QwenDLM-4B | yifanyu/QwenDLM-4B | Qwen3-4B-Thinking-2507 converted to block diffusion; start model of QwenDLM-4B-ORL |
| QwenDLM-4B-ORL | yifanyu/QwenDLM-4B-ORL | ORL on QwenDLM-4B |
| LLaDA2.1-mini-ORL | yifanyu/LLaDA2.1-mini-ORL | ORL on LLaDA-2.1-mini |
| LLaDA2.1-mini-ORL-NVFP4 | yifanyu/LLaDA2.1-mini-ORL-NVFP4 | NVFP4 quantization of LLaDA2.1-mini-ORL |
| DiffusionGemma-26B-A4B-it-ORL | yifanyu/DiffusionGemma-26B-A4B-it-ORL | ORL on DiffusionGemma-26B-A4B |
| DiffusionGemma-26B-A4B-it-ORL-NVFP4 | yifanyu/DiffusionGemma-26B-A4B-it-ORL-NVFP4 | This model |
| ORL-training-data | yifanyu/ORL-training-data | Dataset of the three ORL training runs |
@misc{yu2026orl,
title = {On-Policy Residual Learning for Diffusion Language Models},
author = {Yu, Yifan and Jian, Yuqing and Li, Jisen and Hu, Yuezhou and Zhang, Tianyi and Wu, Xiaoxia and
Zhu, Rui-Jie and Wang, Junxiong and Zhou, Zhongzhu and Lai, Fan and Zou, James and Xu, Chenfeng},
year = {2026},
eprint = {2610.20687},
archivePrefix = {arXiv},
primaryClass = {cs.LG},
url = {https://arxiv.org/abs/2610.20687}
}
DiffusionGemma + ORL, NVFP4: DiffusionGemma-26B-A4B-it-ORL with its MoE experts quantized to NVFP4 for NVIDIA Blackwell GPUs, at comparable accuracy
Accuracy (%) / TPF with the ORL decoder and the paper's scorers:
| Model | GPU | GSM8K | MATH-500 | HumanEval | MBPP |
|---|---|---|---|---|---|
| DiffusionGemma-26B-A4B-it-ORL (BF16) | H100 | 96.0 / 30.0 | 92.3 / 27.4 | 91.9 / 27.9 | 87.4 / 28.7 |
| DiffusionGemma-26B-A4B-it-ORL-NVFP4 | B200 | 95.6 / 29.25 | 93.4 / 26.69 | 91.9 / 27.32 | 86.3 / 27.96 |
With tensor parallelism across eight B200s, accuracy is 96.1 / 91.4 / 92.7 / 86.0 on GSM8K / MATH-500 / HumanEval / MBPP; tensor parallelism does not change the tokens per forward.

Tokens per second for a single request with dlmrt (the paper's NVFP4 tables):
| Model | GPU | GSM8K | MATH-500 | HumanEval | MBPP |
|---|---|---|---|---|---|
| DiffusionGemma-26B-A4B-it-ORL (BF16) | H100 | 1,456 | 1,415 | 1,378 | 1,361 |
| DiffusionGemma-26B-A4B-it-ORL-NVFP4 | RTX 5090 | 1,540 | 1,408 | 1,490 | 1,465 |
| DiffusionGemma-26B-A4B-it-ORL-NVFP4 | B200 | 4,214 | 3,805 | 3,949 | 3,898 |
| DiffusionGemma-26B-A4B-it-ORL-NVFP4 | 8Γ B200 | 7,708 | 7,123 | 7,026 | 6,871 |
The 8Γ B200 and RTX 5090 rows use generation seed 1234.
NVIDIA's nvidia/diffusiongemma-26B-A4B-it-NVFP4 quantizes the DiffusionGemma base model to NVFP4. With ORL, this checkpoint decodes more tokens per forward at comparable accuracy (within 0.8 points) and is 1.14β1.30Γ faster for a single request, both measured back to back with dlmrt on the same B200. Accuracy (%) / TPF, and the speedup:
| Model | GSM8K | MATH-500 | HumanEval | MBPP |
|---|---|---|---|---|
| NVIDIA DiffusionGemma NVFP4 (base model) | 96.1 / 24.81 | 92.7 / 22.79 | 91.3 / 23.91 | 87.1 / 21.60 |
| DiffusionGemma-26B-A4B-it-ORL-NVFP4 | 95.6 / 29.25 | 93.4 / 26.69 | 91.9 / 27.32 | 86.3 / 27.96 |
| Single-request speedup over NVIDIA | 1.16Γ | 1.19Γ | 1.14Γ | 1.30Γ |
| Component | Format |
|---|---|
| MoE experts (decoder) | NVFP4 W4A4: E2M1 values, one FP8 E4M3 scale per 16 elements, an FP32 per-tensor scale; activations quantized per 16 elements with calibrated input scales |
| KV cache | FP8 |
| Attention, dense MLP, router, embeddings, norms, LM head | BF16 |
Exported with NVIDIA ModelOpt (hf_quant_config.json), experts-only recipe with Diagonal-Hessian
calibration. The export also keeps BF16 copies of the expert weights, which NVFP4 inference does not read; this is
why the checkpoint is larger than the BF16 one.
Native FP4 needs an NVIDIA Blackwell GPU: a B200 or B300, or a GeForce RTX 50-series card such as the RTX 5090. Stock vLLM and SGLang do not run DiffusionGemma's block-diffusion decoding; the ORL repository's patched vLLM serves the BF16 checkpoint.
dlmrt, our inference engine, decodes one request at a time with the paper's decoder (role="orl")
and measures the paper's throughput; see its README for installation, tensor parallelism and the commands of every
paper cell.
from dlmrt import LLM
llm = LLM("yifanyu/DiffusionGemma-26B-A4B-it-ORL-NVFP4", role="orl", precision="nvfp4")
out = llm.generate("Write a Python function that reverses a linked list.", max_new_tokens=2048)
print(out.text)
print(f"{out.request_tps:.0f} tokens/s")
python -m dlmrt serve --model yifanyu/DiffusionGemma-26B-A4B-it-ORL-NVFP4 --role orl --precision nvfp4 --port 18080
curl -N localhost:18080/generate -d '{"messages": [{"role": "user", "content": "Hi!"}], "max_new_tokens": 512}'
For tensor parallelism, run the same program or dlmrt serve under torchrun --nproc-per-node 8.
Paper role dg-orl, training step 900, quantized from
yifanyu/DiffusionGemma-26B-A4B-it-ORL. The tokenizer and chat
template are the BF16 checkpoint's. Decoding settings are the same as for the BF16 checkpoint (paper_decoding.json
there).
| Model | Hugging Face | Description |
|---|---|---|
| DiffusionGemma-26B-A4B | google/diffusiongemma-26B-A4B-it | Start model of this checkpoint |
| QwenDLM-4B | yifanyu/QwenDLM-4B | Qwen3-4B-Thinking-2507 converted to block diffusion; start model of QwenDLM-4B-ORL |
| QwenDLM-4B-ORL | yifanyu/QwenDLM-4B-ORL | ORL on QwenDLM-4B |
| LLaDA2.1-mini-ORL | yifanyu/LLaDA2.1-mini-ORL | ORL on LLaDA-2.1-mini |
| LLaDA2.1-mini-ORL-NVFP4 | yifanyu/LLaDA2.1-mini-ORL-NVFP4 | NVFP4 quantization of LLaDA2.1-mini-ORL |
| DiffusionGemma-26B-A4B-it-ORL | yifanyu/DiffusionGemma-26B-A4B-it-ORL | ORL on DiffusionGemma-26B-A4B |
| DiffusionGemma-26B-A4B-it-ORL-NVFP4 | yifanyu/DiffusionGemma-26B-A4B-it-ORL-NVFP4 | This model |
| ORL-training-data | yifanyu/ORL-training-data | Dataset of the three ORL training runs |
@misc{yu2026orl,
title = {On-Policy Residual Learning for Diffusion Language Models},
author = {Yu, Yifan and Jian, Yuqing and Li, Jisen and Hu, Yuezhou and Zhang, Tianyi and Wu, Xiaoxia and
Zhu, Rui-Jie and Wang, Junxiong and Zhou, Zhongzhu and Lai, Fan and Zou, James and Xu, Chenfeng},
year = {2026},
eprint = {2610.20687},
archivePrefix = {arXiv},
primaryClass = {cs.LG},
url = {https://arxiv.org/abs/2610.20687}
}