models / compare / nemotron-3-ultra-vs-gemma-4
Nemotron 3 Ultra vs Gemma 4 31B
How Nemotron 3 Ultra (NVIDIA, June 2026) and Gemma 4 31B (Google DeepMind, April 2026) are built, drawn on the same November 2026 blueprint. They make different choices on 19 of 29 components. Select a component in either diagram to find it in the table.
--- frontier-llm@2026-11+++ nemotron-3-ultra@2026-06+0~4−7
Nemotron 3 Ultra
NVIDIA, June 2026, 550B total, 55B active
--- frontier-llm@2026-11+++ gemma-4@2026-04+2~7−6
Gemma 4 31B
Google DeepMind, April 2026, 30.7B
Component by component
Nemotron 3 Ultra and Gemma 4 31B differ on 19 of 29 components.
| Blueprint component | Nemotron 3 Ultra | Gemma 4 31B |
|---|---|---|
Same as the blueprintByte-level BPE with 131,072 entries, the first 1,000 of which are reserved special and control tokens; the pre-tokenizer splits every digit into its own piece. The model is text-only. | SentencePiece BPE with byte fallbackGemini's 262,144-entry SentencePiece vocabulary: character-level BPE, split digits, bytes only as a fallback. | |
Same as the blueprintA ~550M-parameter ViT (27 layers, width 1,152, MLP 4,304, 16 heads, 16-px patches) with 2D RoPE and 2D absolute position embeddings, kept frozen during pretraining. Its outputs are pooled 3 × 3, so each soft token covers 48 × 48 px, under a per-image budget of 70, 140, 280 (default), 560 or 1,120 tokens. Video enters as frames; the 31B has no audio encoder. | ||
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. | Single residual stream with per-layer scalarsOne d = 5,376 stream, RMSNorm before and after each sublayer, and a stored scalar that rescales the stream after every block. | |
Same as the blueprintPer-head RMSNorm with a learned gain on queries and keys (256-dim heads in local layers, 512-dim in global ones), so the logits use scale 1 instead of 1/√d. Values get a gain-free RMSNorm. There is no attention-logit soft-cap. | ||
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. | RoPE by layer type: full RoPE local, p-RoPE globalLocal layers rotate all 256 dims (θ = 10⁴); global layers keep only the 64 fastest of 256 frequency pairs (θ = 10⁶). | |
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. | ||
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. | Global GQA with keys reused as valuesEvery sixth layer: full causal attention, 32 query heads and 4 KV heads of dim 512, V taken from the key projection. | |
Same as the blueprint50 of 60 layers, in runs of five between global layers. Each uses a 1,024-token window with 32 query heads and 16 KV heads of dim 256 (2 query heads per KV head), separate K and V projections and full RoPE with θ = 10,000. Their KV cache is bounded at 1,024 tokens per layer. | ||
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). | Dense GeGLU feed-forwardOne gated MLP per layer, 5,376 → 21,504 → 5,376 with tanh-approximated GELU; all 30.7B parameters are active. | |
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 blueprintUntied 8,192 × 131,072 output projection, shared with the MTP block and kept in BF16. Its gradient accumulation must stay in FP32: lowering it to BF16 erased the MTP heads' small gradient contribution and caused a pretraining divergence at about 8T tokens. | Tied LM head with logit soft-cappingLogits come from the input embedding matrix (no separate head) and are squashed by 30·tanh(z/30). | |
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. | Autoregressive MTP drafter (4 layers, reads trunk KV)A separate ~500M-parameter, 4-layer Transformer drafts tokens one at a time while attending to the 31B's own KV cache. | |
Same as the blueprintPretraining used 8,192-token sequences (Nemotron 3 Super recipe). A 33B-token continued-pretraining phase then trained at 1,048,576 tokens for 92% of iterations and at 4,096 for the rest, at a constant LR of 2.5e-6. With no RoPE, no YaRN-style rescaling is involved. | ||
Same as the blueprintAfter a two-stage SFT, a single unified RLVR stage ran asynchronous GRPO across agentic, coding, math, STEM, safety, chat, instruction-following and long-context environments. The maximum generation length grew from 48K to 64K tokens, and RLHF used a released GenRM. MTP drafting with 5 tokens sped up rollout generation 1.46×. | ||
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. | ||
| Not present | Post-attention RMSNorm (sandwich norm)The attention output is RMS-normalized with a learned gain before the residual add; there is no output gate or sink. | |
| Not present | Post-feed-forward RMSNorm (sandwich norm)The MLP output is RMS-normalized with a learned gain before it is added to the residual stream. |