models / compare / gpt-oss-120b-vs-nemotron-3-ultra
gpt-oss-120b vs Nemotron 3 Ultra
How gpt-oss-120b (OpenAI, August 2025) and Nemotron 3 Ultra (NVIDIA, June 2026) are built, drawn on the same November 2026 blueprint. They make different choices on 14 of 27 components. Select a component in either diagram to find it in the table.
--- frontier-llm@2026-11+++ gpt-oss-120b@2025-08+0~4−9
gpt-oss-120b
OpenAI, August 2025, 117B total, 5.1B active
--- frontier-llm@2026-11+++ nemotron-3-ultra@2026-06+0~4−7
Nemotron 3 Ultra
NVIDIA, June 2026, 550B total, 55B active
Component by component
gpt-oss-120b and Nemotron 3 Ultra differ on 14 of 27 components.
| Blueprint component | gpt-oss-120b | Nemotron 3 Ultra |
|---|---|---|
Single residual streamOne d = 2,880 residual stream with pre-norm sublayers; no hyper-connections. | Single residual stream, one sublayer per layer108 pre-norm layers on one d = 8,192 residual stream; each layer is one mixer or one MoE, not an attention+FFN pair. | |
Full RoPE with YaRN scalingRotary embeddings on all 64 head dims, θ = 150,000, stretched 32× with YaRN. | Same as the blueprintNoPE: the 12 attention layers apply no positional encoding (Nemotron 3 Super omits positional embeddings, and Ultra keeps the same architecture). Token order reaches them only through the Mamba-2 layers' causal convolutions and recurrent state. config.json still lists rope_theta = 10,000, but the Hugging Face implementation never applies it. | |
Mamba-2 selective state-space layers48 of the 60 mixer layers: SSD with 256 heads × 64 dims, state size 128, 8 B/C groups, causal conv of kernel 4. | ||
Dense grouped-query attentionFull causal attention with 64 query heads sharing 8 KV heads, in every other block. | Global GQA attention without positional encoding12 layers of dense causal attention: 64 query heads share 2 KV heads (d_h = 128); no RoPE, QK-norm, gate or sink. | |
Same as the blueprintEvery other block (18 of 36) attends only to a banded window of the last 128 tokens, alternating with the dense blocks; same GQA head layout. | ||
Same as the blueprintNo output gate. Each head instead has a learned sink logit added to the softmax denominator, so it can assign attention mass to nothing. | ||
Softmax top-k routerA linear router picks the top 4 of 128 experts; softmax over those 4 logits gives the weights. | Same as the blueprintLinear router at the full 8,192 width: sigmoid scores over 512 experts, a per-expert bias steers top-22 selection, and the selected scores are renormalized and scaled by 5.0. Balancing follows the Nemotron 3 Super recipe: aux-loss-free bias updates (rate 1e-3) plus a standard load-balancing loss (coefficient 1e-4). | |
Same as the blueprint128 experts, top-4 active, each a SwiGLU with intermediate size 2,880. The gate is clamped at 7.0 and the linear branch to ±7.0, combined as (x_lin + 1) · x_glu · σ(1.702 · x_glu). Expert weights ship in MXFP4. | LatentMoE routed experts (ReLU², 2,048-dim latent)512 non-gated squared-ReLU experts of width 5,120 run in a 2,048-dim latent space; 22 active per token. | |
Same as the blueprintOne shared expert per MoE layer at full width: a non-gated squared-ReLU MLP, 8,192 → 10,240 → 8,192, added to the routed output without a router weight. The released checkpoint stores it in FP8 (per-tensor), not NVFP4. | ||
Same as the blueprintOne MTP block (an attention layer followed by a LatentMoE layer) whose weights are shared across steps and applied recursively. It ran 2 steps in pretraining (total loss weight 0.1, 0.05 per step). MTP Boosting then trains only this head with a forward-KL loss to the frozen backbone's logits over 7 steps, to match the inputs it sees when drafting. | ||
Same as the blueprintMulti-teacher on-policy distillation (MOPD) in two iterations. More than ten domain-specialized teachers (STEM, coding, SWE, search, terminal use, office work, chat, safety and others) give dense token-level reverse-KL signals on the student's own rollouts. The RLVR student acts as a self-teacher for uncovered domains. | ||
Same as the blueprintThe shared MTP head drafts recursively; the published serving recipes default to 5 draft tokens. On SPEED-Bench at draft length 7 with greedy decoding, the mean acceptance length is 4.39 tokens, and 4.58 after MTP Boosting. | ||
Same as the blueprintOnly the 12 attention layers keep a KV cache: 6 KiB per token in FP8, the released checkpoint's KV format. The 48 Mamba-2 states are constant-size and stored in FP16 with stochastic rounding. In FP32 they would exceed the FP8 KV cache below about 64K tokens. 8-bit state formats were evaluated but not shipped. |