Nemotron Deciffusion 8B

Open model · Typed decisions

Nemotron Deciffusion 8B v2

Big-model decisions. One GPU. One pass.

Typed decisions in one forward pass. Give the model a JSON state and typed questions. It returns a probability for every option in a single bidirectional pass on one NVIDIA GPU: no generated text, no reasoning tokens.

24.1ms
median per decision on one NVIDIA GB200 (NVFP4, ~362-token prompts, production container)
210/231
JevBench public items, top-1
99.6%
BABILong at 32k tokens through the production path

Built on NVIDIA Nemotron-Labs-Diffusion-8B · NVIDIA Nemotron Open Model License · released 2026-10-14

TL;DR. Nemotron Deciffusion 8B is an open model for typed decisions such as routing, verification, tool selection, policy checks and judging. Built on NVIDIA Nemotron-Labs-Diffusion-8B, it returns a probability for every option of a choice, yes/no (noul) or score question in one bidirectional forward pass, without generating any tokens. v2 is our first public release; earlier versions were internal.

  • Fast. 24.1 ms median per decision on one NVIDIA GB200 (NVFP4), end to end through the production container. Up to 201.1 decisions per second on one GB200.
  • Accurate. JevBench public top-1 210/231. On the AA Decision Index open components: When2Call 94.2 and WildGuardTest F1 91.1.
  • Long context. BABILong 99.6 at 32k tokens through the production path, and QuALITY 80.3 on full articles.
  • Fully traced data. Every training row is checked for license, provenance and overlap with our evaluation sets, and every source is licensed for commercial training.
  • One container. vllm serve with a thin SystemOne adapter: NVFP4 in production on Blackwell data-center GPUs, FP8 on other GPUs.
Animation
Animated latency race: p50 per decision at concurrency 1 on NVIDIA GB200 (NVFP4, FP8 and BF16) and L40S (FP8), for short and longer prompts.
Efficiency. One decision end to end through the production container (vllm serve + adapter), p50 at concurrency 1. Full table in Latency. Static frame.

v2 vs the field

Artificial Analysis’s Decision Index combines four benchmarks. We ran the three public ones with AA’s published methodology: HLE-MC (513 text-only multiple-choice questions), When2Call (3,423 test tasks) and WildGuardTest (880 items, three yes/no questions each). The reference rows are AA’s published per-component scores (leaderboard snapshot 2026-10-13).

modelAA index (published)HLE-MC accWhen2Call accWildGuardTest F1mean of the 3 open componentsECE HLE-MCECE When2CallECE WildGuardTest
Nemotron Deciffusion 8B v2–11.794.291.165.70.3140.0300.017
Jev 1.1357.520.980.793.665.00.4020.0530.048
GLiDE53.910.583.795.163.10.3810.0120.012
Microsoft-Decision-153.810.981.988.260.30.4680.1030.028
Claude Haiku 5.5 (Low)60.623.672.692.662.9–––
  • When2Call: 94.2, the highest in the table. The When2Call train split (CC-BY-4.0) is part of our training data.
  • WildGuardTest: F1 91.1 with ECE 0.017.
  • AA index: the fourth component, AA-Omniscience-Decision, is private; the AA index column lists AA’s published values.
  • Calibration follows AA’s method: bins of 0.1, only bins with at least 20 answers, answer-weighted mean of |accuracy − confidence|.

To reproduce these components and the calibration, follow evaluation/README.md.

What's inside

Nemotron Deciffusion 8B v2 is trained from the base model on a line of data mixes built for commercial use.

Clean, fully traced data

Every row passes a row-level check: its source is licensed for commercial training, every model that generated, labelled or soft-targeted it is cleared for that use, and it does not overlap a protected evaluation set.

Multi-hop reasoning

Openly licensed multi-hop datasets (MuSiQue, 2WikiMultihopQA, HotpotQA, WikiHop, ShARC, MultiHiertt). Gold answers come from the datasets, and distractor options are checked blind by a second open model.

Long documents

The QuALITY train split with its human gold labels, BABILong train-generator rows, long-document decisions, and rows rendered through the same compactor the server uses, so the model trains on what it sees in production above 8,192 tokens.

Human-labelled safety

Safety rows from Aegis 2.0 (Nemotron Content Safety Dataset V2) use only the dataset’s human labels from its train split.

Hard expert multiple choice

Science, medical and math questions from NVIDIA OpenScience, Nemotron-RL knowledge MCQA, Nemotron-Science, MedMCQA and AQuA-RAT train splits, kept only when open-model teachers agree with the gold answer.

  • Decontaminated evaluation. Evaluation items that share text with any training row are removed from scoring, and every expert multiple-choice question is checked against HLE-MC, GPQA, MMLU-Pro and SuperGPQA by exact hash and 13-gram overlap.

Why single-pass typed decisions

Agent systems and enterprise workflows make many small decisions:

  • which tool to call;
  • which queue gets a ticket;
  • whether a finished agent run actually solved its task;
  • whether a request or response is safe under a policy;
  • how relevant a document is to a query.

These calls need three things: a fixed set of allowed answers, a probability for each, and low, predictable latency. Deciffusion treats each decision as a classification over the options the caller provides. The caller sends a JSON state and one or more typed questions. The model returns a probability for every option, ready to threshold, rank or abstain on, and a request costs one prefill-sized pass whatever the difficulty.

How it works

Animation
Animation: a support ticket state, the question 'Which team should handle this ticket?' and options billing, shipping and tech feed one pass of the model; the mask slot lights up and probability bars grow to billing 0.91, shipping 0.06, tech 0.03.
One forward pass. The whole prompt is scored at once and the answer is read from the [MASK] slot. Timer: p50 24.1 ms at ~362 tokens on one NVIDIA GB200 (NVFP4). Probabilities are an illustrative example. Static frame.
  • Base model. nvidia/Nemotron-Labs-Diffusion-8B, a diffusion language model, pre-trained to fill masked positions using context on both sides.
  • Bidirectional attention over the whole prompt: the state, the question and every option attend to each other before the answer is read out.
  • Masked readout over option codes. Options get single-token codes, and one mask slot reads a distribution over them:
    • a single choice for choice questions;
    • p(true) for noul;
    • a distribution over levels for score.
  • Training. Full fine-tuning with soft-target cross-entropy on the exact serving graph.
  • Requests. Up to 512 questions per request and 501 options per question.

Long prompts: compaction

Prompts of 8,192 tokens or less are scored as is. Longer prompts are reduced to the 8,192 most relevant tokens before the single pass:

  • prose keeps its most question-relevant sentences, ranked with BM25 and kept in the original order;
  • agent traces keep their head and tail.

No second model and no generation are involved. The code is in serving/app/compaction.py.

Results

All numbers are BF16 except the Decision Index (FP8 container), scored on fixed items. Evaluation items that overlap training data are removed from scoring.

Decision benchmarks

benchmarkNemotron Deciffusion 8B v2
JevBench public, top-1210/231
JevBench public, hard tier90/111
Native eval split (decontaminated)528/578
Native audit split618/678

JevBench: the 231 public items. The native eval and audit splits are scored without items that overlap training data.

Long context

BABILong 4k8k16k32kQuALITY
Production path
default, shipped container
99.298.899.299.680.3
Native (no compaction)99.298.898.4–80.3

BABILong: 250 items per length. QuALITY: 300 validation questions with full articles. Prompts of 8,192 tokens or less are never compacted, so 4k and 8k are the same on both paths.

Animations
Animation of compaction: a long document of many sentence lines is scanned, the sentences relevant to the question light up green, the rest fade, and the relevant ones collect into an 8,192-token prompt.
Compaction. A 32k-token prompt in, the 8,192 most question-relevant tokens out. Production path: BABILong 32k 99.6%, QuALITY 80.3%. Document layout is illustrative. Static frame.
Animated line chart of BABILong accuracy from 4k to 32k tokens: the production path and native scoring.
Accuracy vs context length. Production path in green; dashed: native. Static frame.

Tools & retrieval

benchmarkNemotron Deciffusion 8B v2
Decision Index 0.3 public index (full public suite)53.9
Decision Index 0.3: Tools & Automation80.2
Decision Index 0.3: Retrieval & Classification58.0
Decision Index 0.3: Language Understanding56.9
Decision Index 0.3: Arts & Human Taste37.8
Decision Index 0.3: Knowledge & Reasoning35.3
BEIR rerank nDCG@10 (FiQA, NFCorpus, SciFact)53.1

Decision Index 0.3: the full public suite (37 benchmarks in five areas) run with the official Decision Index kit through the released container (FP8). Chance-corrected: 0 is random guessing, 100 is perfect.

Safety & robustness

benchmarkNemotron Deciffusion 8B v2
Aegis 2.0 prompt safety F187.4
Aegis 2.0 response safety F183.0
ToxicChat F173.5
WildGuardTest F1 (AA method)91.1
Prompt injection: injected answer chosen, % (lower is better)4.93

Prompt injection: the share of decisions where an instruction planted in the state (“answer X”) makes the model pick X.

Agents & judging

benchmarkNemotron Deciffusion 8B v2
Policy judge AUC: tool calls0.981
Policy judge AUC: trajectories0.947
Agent-run verify AUC (held-out coding-agent runs)0.725
Continue-vs-escalate AUC (held-out coding-agent runs)0.575
SWE-Atlas verify AUC (unseen harness)0.631
When2Call accuracy (AA method)94.2

Latency

Latency of the v2 container (vllm serve + adapter), one decision per request:

GPUprecisionprompt tokensconcurrencyp50 msp95 msdecisions/s
NVIDIA L40SFP8 (dynamic)~362129.893.524.05
NVIDIA L40SFP8 (dynamic)~36216539.1893.128.56
NVIDIA L40SFP8 (dynamic)~850159.5129.414.19
NVIDIA L40SFP8 (dynamic)~85016984.31413.515.2
NVIDIA GB200FP8 (dynamic)~362124.929.028.75
NVIDIA GB200FP8 (dynamic)~3621691.2142.5166.8
NVIDIA GB200FP8 (dynamic)~850126.131.337.01
NVIDIA GB200FP8 (dynamic)~85016168.3266.885.95
NVIDIA GB200BF16~362125.833.726.86
NVIDIA GB200BF16~36216142.2243.2105.32
NVIDIA GB200BF16~850126.741.233.6
NVIDIA GB200BF16~85016265.6389.156.83
NVIDIA GB200NVFP4~362124.128.729.0
NVIDIA GB200NVFP4~3621673.1143.1201.1
NVIDIA GB200NVFP4~850125.145.735.53
NVIDIA GB200NVFP4~85016137.4319.895.33

Prompts: AA Decision Index items (HLE-MC at ~362 tokens, When2Call at ~850 tokens). Concurrency 16 measures throughput.

NVFP4 for Blackwell

NVFP4 build: nemotron-deciffusion/Nemotron-Deciffusion-8B-v2-NVFP4, a mixed NVFP4/FP8 checkpoint at 6.6 effective bits for Blackwell data-center GPUs. NVIDIA Model Optimizer AutoQuantize picks NVFP4 or FP8 for each layer with saturation-aware (Aumann–Shapley) sensitivity scoring, measured as the KL divergence of the decision distribution. Token embeddings and the readout head stay BF16. The recipe is by Joshua Hill (NVIDIA Model Optimizer).

How the NVFP4 build was made

NVIDIA Model Optimizer's AutoQuantize chooses a format for every linear-layer group independently. Each group's options are NVFP4 or FP8, and the search finds the assignment that keeps the model closest to BF16 within an effective-bits budget, here 6.6 bits per weight. The result is a mixed-precision checkpoint: NVFP4 where the model tolerates it, FP8 where it matters most.

Aumann–Shapley sensitivity scoring. The standard way to rank layers is a gradient at the unquantized model. When the objective is KL divergence against the model's own outputs, that gradient is exactly zero: at the unquantized point the KL is zero and flat. Aumann–Shapley scoring instead walks the path from the BF16 output of each layer toward its quantized output, measures at points along the way (two steps here), and attributes the accumulated change in KL to each layer and format. This is path-integrated attribution in the Aumann–Shapley sense, and it needs no labels because the model is its own reference. The per-layer scores are then calibrated against a direct measurement of the damage with every layer at its most aggressive format, using a saturating damage model, so the search optimises a prediction in real units. For Deciffusion the objective is what the model actually outputs: the KL divergence of the decision distribution at the answer slot. Calibration used 640 prompts, 128 of them for sensitivity scoring.

What it chose. Of the 136 linear groups (34 layers × attention q/k/v, attention output, MLP gate/up, MLP down), 63 run in NVFP4 and 73 in FP8. Most NVFP4 goes to the MLP, which holds most of the weights: 24 of 34 gate/up groups and 21 of 34 down projections. Attention, which is smaller and more sensitive, stays mostly FP8: 7 of 34 q/k/v groups and 11 of 34 output projections are NVFP4. Token embeddings and the readout head stay BF16.

Per-layer formats chosen by AutoQuantize across the 34 decoder layers: NVFP4 in green, mostly in the MLP; FP8 in grey, mostly in attention.
Per-layer formats. NVFP4 (green) and FP8 (grey) for each projection group of the 34 decoder layers.

Aumann–Shapley scoring ships in NVIDIA Model Optimizer (_auto_quantize_shapley.py). The method and recipe are by Joshua Hill: Aumann–Shapley scoring in AutoQuantize, recipe integration, and the paper arXiv:2607.12266.

The two tables below come from their own paired run on one GB200, with BF16, FP8 and NVFP4 served the same way (vllm serve + adapter) on the same items. The BF16 column is that run’s own reference, separate from the results table above.

Accuracy in the paired run. Pooled decisions cover JevBench, our eval split and our audit split:

BF16FP8 (dynamic)NVFP4
Decisions, pooled (1,489 items)1,3581,3521,354
JevBench public (231)210206207
QuALITY, compacted long context (300)79.779.378.0
BABILong 4k / 8k / 16k / 32k99.6 / 99.2 / 99.2 / 99.698.8 / 98.8 / 99.2 / 99.699.2 / 99.6 / 99.2 / 99.6
Aegis 2.0 prompt / response F187.6 / 83.0–87.5 / 83.1
ToxicChat F172.9–72.1

Speed on one GB200, BF16, FP8 and NVFP4 measured in the same session (vllm serve + adapter, 300 AA Decision Index items per component):

BF16FP8 (dynamic)NVFP4
p50 per task, 1 request (HLE-MC, ~360 tokens)25.8 ms24.9 ms24.1 ms
Tasks/s, 16 concurrent (HLE-MC)105167201
Tasks/s, 16 concurrent (When2Call, ~850 tokens)578695
Bar chart of tasks per second at 16 concurrent requests on one NVIDIA GB200: HLE-MC BF16 105, FP8 167, NVFP4 201; When2Call BF16 57, FP8 86, NVFP4 95.
NVFP4 throughput. Tasks per second at 16 concurrent requests on one NVIDIA GB200.

On GB200, NVFP4 serves 11–21% more tasks per second than FP8 and 1.7–1.9× more than BF16, with comparable decision accuracy. To serve it, run the release container with MODEL_ID=nemotron-deciffusion/Nemotron-Deciffusion-8B-v2-NVFP4, QUANTIZATION=none and its own cache volume, -v $HOME/.cache/deciffusion-nvfp4:/models.

Methodology

  • One harness. Every number comes from the same evaluators, on the same items, with the same prompts: the native single-pass evaluator for JevBench and our eval and audit splits; the long-context runner, with and without production compaction; the official Decision Index kit for the full public 0.3 suite; and the AA methodology for the AA components.
  • BF16 weights for every evaluation except the Decision Index, which runs the released FP8 container. The container’s FP8 default is checked against BF16 on JevBench over HTTP.
  • Protected evaluation sets. Every training row is checked against JevBench public, the Decision Index 0.3 suite, BEIR test queries, QuALITY validation, BABILong test, RAGTruth test, Aegis 2.0 and ToxicChat test, our routing and judge held-out sets, our native eval and audit splits, and the AA component sets. A row is rejected if it is an exact copy of an item or shares at least half of its normalized text with one.
  • Traceability. release/v2/SOURCES.md lists the result file behind every number on this page, and release/v2/numbers.json has the same values in machine-readable form.

Built on NVIDIA

Base modelNVIDIA Nemotron-Labs-Diffusion-8B
TrainingFull fine-tuning of every decoder layer
Servingvllm serve with bidirectional decision reads; NVFP4 in production
Measured onNVIDIA L40S and NVIDIA GB200
  • Training: full fine-tuning of the decoder with soft-target cross-entropy, with the trainer released as training/train_pack.py.
  • Serving: vLLM with bidirectional decision reads and the SystemOne adapter in one container. The vLLM changes are being upstreamed in vllm-project/vllm#60283.
  • Precision: NVFP4 in production on Blackwell (nemotron-deciffusion/Nemotron-Deciffusion-8B-v2-NVFP4, mixed NVFP4/FP8 at 6.6 effective bits for Blackwell data-center GPUs (validated on GB200), faster than FP8 there); FP8 on other GPUs (the container default), BF16 on request.
  • Throughput: up to 201.1 decisions per second on one NVIDIA GB200 (NVFP4, concurrency 16, ~362-token prompts).

Use cases

Agent-run routing & verification

Score whether a finished agent run solved its task, or whether to continue or escalate. Long traces are compacted head+tail automatically.

Tool selection

Mark each candidate tool yes/no, or pick among up to 501 tools in one question.

Policy, safety & compliance

Check requests, responses, tool calls and trajectories against a policy, including over long documents.

Judging & reranking

Grade responses on a scale (score), compare candidates (choice) or rerank documents, with probabilities instead of parsed text.

Classification & triage

Intents, queues and priorities, with many questions about one state batched in a single request.

Every answer comes with a probability for each option, so thresholds can be tuned on your own data for automated decisions.

Get started

1. Run the container (one GPU):

bash
docker run -d --name deciffusion --gpus all --shm-size=8g -p 8770:8770 \
  -v $HOME/.cache/deciffusion:/models -e HF_TOKEN ghcr.io/pst2154/nemotron-deciffusion:8b-v2

The first start downloads the weights (about 17 GB) into the volume.

2. Ask typed questions about a JSON state:

bash
until curl -sf localhost:8770/health > /dev/null; do sleep 5; done  # waits until the model is loaded
curl -s localhost:8770/v1/systemone -H 'Content-Type: application/json' -d '{
  "model": "nemotron-deciffusion-8b",
  "state": {"ticket": "Customer was charged twice for order 1182 and wants the duplicate refunded."},
  "questions": {
    "route":  {"type": "choice", "instructions": "Which team should handle this ticket?",
               "criteria": {"billing": "Payments, refunds and invoices", "shipping": "Delivery problems",
                            "tech": "Product bugs and outages"}},
    "urgent": {"type": "noul", "instructions": "Does this need a reply within one hour?"}}}'

Every option in the response has a probability.

NVFP4 on GB200. Serve the NVFP4 checkpoint with the same image:

bash
docker run -d --name deciffusion-nvfp4 --gpus all --shm-size=8g -p 8770:8770 \
  -v $HOME/.cache/deciffusion-nvfp4:/models -e HF_TOKEN \
  -e MODEL_ID=nemotron-deciffusion/Nemotron-Deciffusion-8B-v2-NVFP4 -e QUANTIZATION=none ghcr.io/pst2154/nemotron-deciffusion:8b-v2

License & acknowledgements

Use of this model is governed by the NVIDIA Nemotron Open Model License. Built on nvidia/Nemotron-Labs-Diffusion-8B. The code is released under the Apache License 2.0.

Every training source is licensed for commercial training. We thank the authors of the datasets used under attribution licenses:

Disclaimer

Nemotron Deciffusion is a personal project. It is not an NVIDIA product and is not released, endorsed or supported by NVIDIA.