Model reference · open weights

Nemotron-Labs-Diffusion

LLMs nvidia Text gen 2 builds Its own licence terms 163k dl/mo

Nemotron-Labs-Diffusion is an open-weight language model from NVIDIA. Nemotron-Labs-Diffusion-3B (BF16) weighs 7.7 GB; the smallest configuration that runs it is RTX 3060 12 GB.

  • Nemotron-Labs-Diffusion is an 8.5B parameter text-generation model developed by NVIDIA that supports autoregressive, diffusion-based, and self-speculation decoding modes.
  • It is designed to improve decoding efficiency by switching attention patterns during inference, allowing the same model to perform parallel drafting and verification.
  • The model is distributed under the NVIDIA Nemotron Open Model License.

Summary of the nvidia/Nemotron-Labs-Diffusion-8B model card, 2026-10-01. The estimate below is for another build of the family.

What it is

Released byNVIDIA
Released2026-03-18
Parameters8.5B
VRAM7.7 GB for the weights

What it runs on

Memory and cards for Nemotron-Labs-Diffusion-3B (BF16)

7.7 GBweights, file size
106 MBcache per 1K tokens
690 MBruntime overhead, at least
262,144 tokenscontext max
CardRequests at onceContext maxMemory
8K each32K each
RTX 3060 12 GB3—29K11.6 GB
RTX 4060 Ti 16 GB8264K15.4 GB
RTX 3090 24 GB174137K23.4 GB
RTX 4090 24 GB174137K23.4 GB
RTX 5090 32 GB256207K31.0 GB
L40S 48 GB4010all 256K44.0 GB
A100 80 GB8020all 256K78.2 GB
H100 80 GB7518all 256K78.1 GB
RTX PRO 6000 Blackwell 96 GB9323all 256K93.8 GB
DGX Spark (GB10) 128 GB unified10827all 256K107 GB
H200 141 GB14436all 256K138 GB
B200 180 GB18746all 256K176 GB
2× RTX 3060 12 GB
tensor parallel
164130K11.6 GB a card
Memory needed at each load
Requests at once8K tokens each32K tokens each
19.2 GB11.8 GB
512.7 GB25.8 GB
815.3 GB36.3 GB
1622.3 GB64.2 GB
3236.3 GB120 GB
6464.2 GB232 GB

One card, with vLLM's small-card settings.

Builds

Sizes, precisions & builds

BuildParamsPrecisionWeightsSmallest setup
Nemotron-Labs-Diffusion-8B ↗ 8.5BBF16 17.0 GB2× RTX 3060 12 GB
Nemotron-Labs-Diffusion-3B (above) ↗ 3.8BBF16 7.7 GBRTX 3060 12 GB

From the model card

What NVIDIA says about Nemotron-Labs-Diffusion

Read the model card

Model Overview

Nemotron-Labs-Diffusion is a tri-mode language model that supports both AR decoding and diffusion-based parallel decoding by simply switching the attention pattern of the same model during inference. The synergy between these two modes enables a third mode, called self-speculation: the same model performs diffusion-based parallel drafting and AR verification with shared KV cache, achieving high acceptance lengths and decoding efficiency. The seamless mode switching by simply changing attention patterns enables high efficiency at different concurrency levels in varying deployment scenarios with one single model.

Highlights

  • SOTA 3B, 8B, 14B dense LM family (base, instruct, and vision-language variants) supporting AR, diffusion, and self-speculation with the focus on decode efficiency.
  • Generation moved from a memory-bound regime toward a compute-bound regime. Model weights are loaded once and reused to compute multiple tokens during generation.
  • Self-speculation uses diffusion for drafting and AR for verification, providing a stronger alternative to MTP approaches:
    • 3x higher acceptance length and 2.2x speed-up vs. Qwen3-8B-Eagle3 in SGLang.
    • 5.9× tokens per forward over Qwen3-8B (no MTP) with the same accuracy.
  • Real-device speed-up across platforms:
    • DGX Spark (8B, concurrency 1): 2.7x faster with 112 tok/sec vs. 41.8 tok/sec AR using w4a16.
    • GB200 (8B, concurrency 1): 3.3x faster with 850 tok/sec vs. 253 tok/sec AR and 360 tok/sec Eagle3. Custom CUDA kernels boost to 1015 tok/sec (4x).
  • Diffusion speedup-of-light analysis shows that throughput can be further doubled (vs. current best) for a single user with better sampling - future research.

License/Terms of Use

Use of this model is governed by the NVIDIA Nemotron Open Model License.

Environment

transformers>=5.0.0

Chat with Our Model

from transformers import AutoModel, AutoTokenizer
import torch

repo_name = "nvidia/Nemotron-Labs-Diffusion-8B"

tokenizer = AutoTokenizer.from_pretrained(repo_name, trust_remote_code=True)
model = AutoModel.from_pretrained(repo_name, trust_remote_code=True)
model = model.cuda().to(torch.bfloat16)

history = []

user_input = input("User: ").strip()
history.append({"role": "user", "content": user_input})

prompt = tokenizer.apply_chat_template(history, tokenize=False, add_generation_prompt=True)
prompt_ids = tokenizer(prompt, return_tensors='pt').input_ids.to(device='cuda')

## Chat in AR Mode
out_ids, nfe = model.ar_generate(inputs.input_ids, max_new_tokens=512)

## Chat in dLM Mode
out_ids, nfe = model.generate(prompt_ids, max_new_tokens=512, block_length=32, threshold=0.9, eos_token_id=tokenizer.eos_token_id)

## Chat in Linear Self-Speculation Mode
out_ids, nfe = model.linear_spec_generate(prompt_ids, max_new_tokens=512, block_length=32, eos_token_id=tokenizer.eos_token_id)

tokenized_out = tokenizer.batch_decode(out_ids[:, prompt_ids.shape[1]:], skip_special_tokens=True)[0]
print(f"Model: {tokenized_out}")
print(f"[Num Function Eval (NFE)={nfe}]")

Inference with Linear Self-Speculation + LoRA-enhanced Drafter

An optional LoRA adatper can be applied to the diffusion drafter in the linear self-speculation mode to further increase the acceptance length:

import torch
from transformers import AutoModel, AutoTokenizer
from peft import PeftModel

repo = "nvidia/Nemotron-Labs-Diffusion-8B"
tokenizer = AutoTokenizer.from_pretrained(repo, trust_remote_code=True)
model = AutoModel.from_pretrained(repo, trust_remote_code=True)
model = model.cuda().to(torch.bfloat16)

# Attach the linear_spec LoRA adapter.
model = PeftModel.from_pretrained(model, repo, subfolder="linear_spec_lora").eval()
# Unwrap so we can call linear_spec_generate directly (it toggles LoRA internally).
base = model.model

history = [{"role": "user", "content": "Solve: What is 15% of 240?"}]
prompt = tokenizer.apply_chat_template(history, tokenize=False, add_generation_prompt=True)
prompt_ids = tokenizer(prompt, return_tensors="pt").input_ids.cuda()

out_ids, nfe = base.linear_spec_generate(
    prompt_ids, max_new_tokens=512, block_length=32,
    eos_token_id=tokenizer.eos_token_id,
)
print(tokenizer.decode(out_ids[0, prompt_ids.shape[1]:], skip_special_tokens=True))
print(f"[NFE={nfe}]")

Ethical Considerations

NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications. When downloaded or used in accordance with our terms of service, developers should work with their internal model team to ensure this model meets requirements for the relevant industry and use case and addresses unforeseen product misuse. For more detailed information on ethical considerations for this model, please see the bias, explainability, safety & security, and privacy subcards.

Please report model quality, risk, security vulnerabilities or NVIDIA AI Concerns here.

Citations

@techreport{fu2026nemotronlabsdiffusion,
  title       = {Nemotron-Labs-Diffusion: A Tri-Mode Language Model Unifying Autoregressive, Diffusion, and Self-Speculation Decoding},
  author      = {Yonggan Fu and Lexington Whalen and Abhinav Garg and Chengyue Wu and Maksim Khadkevich and Nicolai Oswald and Enze Xie and Daniel Egert and Sharath Turuvekere Sreenivas and Shizhe Diao and Chenhan Yu and Ye Yu and Weijia Chen and Sajad Norouzi and Jingyu Liu and Shiyi Lan and Ligeng Zhu and Jin Wang and Jindong Jiang and Morteza Mardani and Mehran Maghoumi and Song Han and Ante Jukic and Nima Tajbakhsh and Jan Kautz and Pavlo Molchanov},
  institution = {NVIDIA},
  year        = {2026},
  note

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms