How to use from
Ollama
ollama run hf.co/Premshay/Nemotron-3-Super-120B-A12B-MTP-GGUF:IQ4_NL
Quick Links

Nemotron-3-Super-120B-A12B GGUF — with the MTP draft head intact

NVIDIA's Nemotron-3-Super: hybrid mamba2/attention/LatentMoE, 120B total / 12B active, long-context, reasoning on/off via chat template.

The model ships with a trained Multi-Token Prediction (MTP) head: a small built-in draft model that guesses the next few tokens so the main model can verify them in one pass instead of generating one at a time. This means substantially faster generation (measured below) at no quality cost. This model keeps the head at conversion time, which makes --spec-type draft-mtp possible. This model include all 1,040 mtp.* tensors from the official BF16 checkpoint.

Using the head requires a llama.cpp branch. Mainline llama.cpp (as of 2026-07-30) loads and runs these files as a normal Super, but cannot use the draft head, and loads its ~1.3 GB regardless (see ggml-org/llama.cpp#26290). MTP speculative decoding needs PR ggml-org/llama.cpp#25444 plus the converter change these files were produced with (exact branch and commit under "How these files were made"). Watch the PR for merge status.

Files

file quant size notes
Nemotron-3-Super-120B-A12B-MTP-IQ4_NL.gguf IQ4_NL 66.4 GiB recommended on CPU: IQ4_NL has an AVX2 repacked GEMM path

How to run

# build the branch (until PR #25444 merges)
git clone --branch nemotron-super-mtp https://github.com/Premshay/llama.cpp
cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j --target llama-server

# serve (this runs on mainline llama.cpp too, as a normal Super)
./build/bin/llama-server -m Nemotron-3-Super-120B-A12B-MTP-IQ4_NL.gguf -c 8192 -np 1

# add MTP speculative decoding ONLY on a build with mamba2 rollback -
# on the plain PR build it makes generation slower (see the benchmarks):
#   ... -c 8192 -np 1 --spec-type draft-mtp
  • ⚠️ Always set the context size explicitly (-c / --ctx-size, as above). Without it, llama.cpp sizes the KV cache to the model's trained context - enormous for this model - and the allocation can stall or crash a machine with limited RAM. MTP also requires -np 1 (no parallel slots).
  • Reasoning on/off at request time: "chat_template_kwargs": {"enable_thinking": false} in the request body (llama-server).
  • NVIDIA recommends temperature=1.0, top_p=0.95 for all tasks (per the official model card). The benchmark table below used temperature 0 for reproducibility.
  • <think> / </think> are separate tokens; add --special if you need them rendered (per unsloth's card for this model).

Benchmarks

Intel Core Ultra 7 270K Plus (Arrow Lake, 24 cores, no AVX-512), 121 GB DDR5, CPU-only, llama.cpp server, -t 20 -c 8192 -np 1 -fa off, thinking disabled, temperature 0, 256-token generations, 3 reps, machine otherwise idle:

build config min t/s mean t/s max t/s draft acceptance
PR #25444 (dbedc9e19) MTP off 8.72 8.83 8.95
PR #25444 MTP on 4.95 4.98 4.99 0.334
mamba-rs-rollback-wip (fc7f6aaa0) MTP off 8.72 8.87 8.96
mamba-rs-rollback-wip MTP on 10.92 12.03 12.80 0.70

In short: MTP only helps on a build that can roll back the mamba2 recurrent state when a draft is rejected (the PR author's follow-up branch, linked from PR #25444). There it is +36-44%; on the plain PR build it is -44%, so leave --spec-type off there. One known open item: with temperature 0, output with MTP on differs slightly from MTP off on both builds (being investigated in the PR thread) - if exactly reproducible greedy output matters to you, test before adopting.

Even with MTP off, this file generates +56% faster than unsloth's popular UD-IQ4_NL on this hardware (8.83 vs 5.64 t/s mean, same protocol). Reason: every tensor here is a type with a fast AVX2 kernel in llama.cpp, while the UD file mixes in types that fall back to a slower path on CPU.

Quality - perplexity on wikitext-2, lower is better (148 chunks, context 2048, same build and hardware):

model perplexity
this repo (plain IQ4_NL, no imatrix) 4.4498 +/- 0.026
unsloth UD-IQ4_NL 4.4050 +/- 0.026

So the trade-off against the UD file on CPU is +56% generation speed for about 1% worse perplexity: the UD file spends extra bits where they help quality most, this file keeps everything on the fast path. Choose by whether speed or quality is scarcer for you. Imatrix variants are possible on request.

How these files were made

  • Source: nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16 (official), converted with convert_hf_to_gguf.py at Premshay/llama.cpp@731368b5d (branch nemotron-super-mtp, stacked on PR #25444), quantized with llama-quantize from the same build (5 of 781 tensors fell back to a different quant type because their dimensions do not divide evenly - normal for this architecture).
  • The conversion change that preserves the head is ~50 lines in conversion/nemotron.py; it is offered upstream in PR #25444's thread.
  • Verification before upload: all 42,683 source tensors mapped (781 GGUF tensors), required nextn.* slots present, metadata nextn_predict_layers=2, head_count_kv[88]=2; loaded and generated coherently; A/B above.

Disclosure

Conversion code, benchmarks, and this card: AI-assisted (Claude), human-directed and verified. Numbers measured on hardware as described.

License

NVIDIA Nemotron Open Model License (inherited from the base model). This repository redistributes a quantized derivative with attribution; see the license link above.

Downloads last month
494
GGUF
Model size
124B params
Architecture
nemotron_h_moe
Hardware compatibility
Log In to add your hardware

4-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Premshay/Nemotron-3-Super-120B-A12B-MTP-GGUF

Quantized
(55)
this model