inference/research
verifiedhigh · 0.90updated 2026-10-04

Nemotron-H-8B-Base-8K

hybrid-attention-ssm 8.10085B

Fields

id
models/nemotron-h-8b-base-8k
Family
nemotron-h
Vendor
NVIDIA
Release year
2025
Architecture
hybrid-attention-ssm
Params (B)
8.1009
Active params (B)
8.1009
Hidden size
4,096
Layers
52
KV heads
8
Head dim
128
GQA ratio
4
Max context
8,192
Context scaling method
native
Activation
relu2 (mlp_hidden_act); silu in the Mamba path
Attention variant
GQA on 4 of 52 layers; Mamba-2 on 48
Attention layer indices
7182940
Layer types
mambamambamambamambamambamambamambaattentionmambamambamambamambamambamambamambamambamambamambaattentionmambamambamambamambamambamambamambamambamambamambaattentionmambamambamambamambamambamambamambamambamambamambaattentionmambamambamambamambamambamambamambamambamambamambamamba
KV cache (bytes/token)
16,384
FLOPs per active token
16,201,705,472
Open weights
yes
License
NVIDIA Internal Scientific Research and Development Model License (license:other)
notes
CONTEXT SCALING: null is a VERIFIED value, checked against config rather than left blank. config.json (nvidia/Nemotron-H-8B-Base-8K) declares rope_scaling null, max_position_embeddings 8192. Verified native, and the shortest window in the hybrid set. Hybrid confirmed from config plus weights. config.json hybrid_override_pattern is 'M-M-M-M*-M-M-M-M-M*-' repeated over 52 layers: 13 groups of 4, four of them starred as attention layers. The safetensors index agrees exactly - q_proj/k_proj/v_proj/o_proj appear for 4 of 52 layers, and the other 48 carry Mamba-2 mixer tensors (A_log, D, conv1d, dt_bias, in_proj, norm, out_proj). KV: bf16 bytes/token = 4 attention layers x 8 KV heads x 128 head_dim (attention_head_dim, explicit) x 2 x 2 bytes = 16384 B/token = 16.0 KiB/token - 8x smaller than a 32-layer 8B dense GQA model at equal context. Recurrent state: ssm_state_size 128 x mamba_head_dim 64 x mamba_num_heads 128 x 2 bytes = 2 MiB per layer per sequence, x 48 layers = 96 MiB per sequence, constant in context length - that fixed 96 MiB is the real cost of this architecture and it scales with concurrency, not with context. gqa_ratio = 32 / 8 = 4. max_position_embeddings 8192 (the '-8K' in the name) with no rope_scaling; this model is about constant-state serving, not long context. intermediate_size 21504 with mlp_hidden_act 'relu2' (a squared-ReLU MLP), n_groups 8, mamba_num_heads 128, time_step_rank 256. rescale_prenorm_residual true. SERVICEABILITY JOIN (added 2026-10-03; the architecture x engine matrix this record was missing, with a citation per cell in docs/13-model-compatibility.md): FAMILY=hybrid-attention-ssm. REQUIRED KERNEL CLASS: two kernel families in one graph - a chunked linear-attention / delta-rule kernel for the SSM or linear-attention layers, and an ordinary or MLA decode kernel for the full-attention minority - plus a fixed-size recurrent state allocator. Three independent records say the recurrent branch is the hard part: flop/ssm-recurrent-state-update (the state is a fixed per-sequence tax that never amortises, so it scales with concurrency and NOT with context); flop/ssm-sequential-scan-tensor-core-mismatch (the recurrence is a multiplicative chain that tensor cores cannot express, so it must run as a sequential scan; the published SSD-vs-fused-scan gap is 2-8x for identical mathematics); and llama.cpp's own dispatch table, which puts every hybrid and SSM architecture in its supports_sm_tensor == false list [[mdl2-llamacpp-arch-class-registry]] - the engine agreeing with the arithmetic. That same list also shows llama.cpp needed ONE shared hybrid code path (llm_arch_is_hybrid, 18 entries: JAMBA, FALCON_H1, PLAMO2, GRANITE_HYBRID, LFM2, LFM2MOE, NEMOTRON_H, NEMOTRON_H_MOE, QWEN3NEXT, KIMI_LINEAR, BAILINGMOE3, KIMI_K3, GLM5_NEXT, QWEN35, QWEN35MOE, QWEN4EXP, DEEPSEEK4, MINIMAX_01) covering exactly the families vLLM and SGLang each ship as separate rows, which is why hybrid support arrives per engine release rather than at once. SUPPORTED BY (cited): vLLM native rows MambaForCausalLM, Mamba2ForCausalLM, JambaForCausalLM, FalconMambaForCausalLM, FalconH1ForCausalLM, NemotronHForCausalLM, GraniteMoeHybridForCausalLM, Qwen3NextForCausalLM, KimiLinearForCausalLM, Lfm2ForCausalLM, Lfm2MoeForCausalLM, OlmoHybridForCausalLM, KimiK3ForConditionalGeneration, BailingMoeV3ForCausalLM, Qwen3_5 rows [[mdl2-vllm-supported-models-2026-10]]; SGLang generative table names Granite 4.0 micro as 'hybrid Mamba-MoE ... combining gated short convolutions with a small number of grouped query attention blocks', Kimi Linear as 'hybrid linear attention model ... Kimi Delta Attention (KDA) for up to 6x faster decoding and 75% KV cache reduction vs full attention', Nemotron Nano as 'hybrid Mamba-Transformer architecture', Ling as 'hybrid MoE model: per-layer mix of DeepSeek-style MLA full attention and Qwen3 Gated-Delta-Net (GDN) linear attention', LFM2 as 'hybrid backbone', Mamba-Codestral as 'Mamba2 ... holds no KV cache', and its multimodal page carries the descriptor 'hybrid KDA/MLA' [[mdl2-sglang-generative-models]] [[mdl2-sglang-multimodal-language-models]]. TensorRT-LLM has rows for NemotronHForCausalLM, Qwen3NextForCausalLM, Qwen3_5MoeForCausalLM, Qwen4ExpForCausalLM, KimiLinearForCausalLM and KimiK3ForConditionalGeneration but NO row at all for MambaForCausalLM, Mamba2ForCausalLM, FalconH1ForCausalLM, Lfm2ForCausalLM or GraniteMoeHybridForCausalLM [[mdl2-trtllm-supported-models]]. PER-FAMILY FEATURE TRAPS, all from the TRT-LLM key-models matrix, which is the only per-architecture feature matrix in this repo [[mdl2-trtllm-supported-models]]: Qwen3NextForCausalLM has Sliding Window Attention = No and Speculative Decoding = No; Kimi K3 has no MTP or EAGLE-3 head at all (spec method DSpark only) and needs Blackwell SM100; MiniMax-M3 sparse-attention path supports neither KV cache reuse nor MTP in this release; DeepSeek-V4 and Step-3.7 are 'Untested' for disaggregated serving. KERNEL BUGS THAT ARE ARCHITECTURE-SPECIFIC AND REPRODUCED: (1) vLLM's EAGLE last-block drop (drop_eagle_block) costs 6-10 points of prefix-cache hit rate, and on a hybrid GDN/Mamba layout the scheduler alignment unit is 1,648 tokens instead of a 16-token dense block, so the same protection costs ~100x more cache hit - 97.5% to 86.9-91.7% hit rate and 30-40% batch throughput on prefix-reusing workloads [[eagle-prefix-cache-last-block-drop]]. (2) llama.cpp decode collapses on hybrid gated-deltanet GGUF models at high KV position: 33 t/s at 68K to 1.4 t/s at 91K with the model fully resident, across KV quant types and with FA on or off, reproduced on Windows and WSL2 on master and release [[gated-deltanet-decode-collapse-long-context]]. (3) llama.cpp's SYCL path has a regression specific to hybrid linear-attention graphs - qwen3next/qwen3_35 architecture models crash in ggml_sycl_op_mul_mat or return empty output on 2x Arc Pro B60, bracketed between builds b8477 (works) and b9479 (fails), while dense-attention models on the same cards are unaffected [[sycl-hybrid-linear-attention-arch-crash-intel-arc]]. (4) FlashInfer rejects large head sizes at engine init for the head geometry these hybrids introduce [[flashinfer-rejects-large-head-dim]]. Hybrid Mamba-2 with only 4 attention layers of 52. vLLM row NemotronHForCausalLM with LoRA and PP supported; SGLang describes Nemotron Nano as 'hybrid Mamba-Transformer architecture combining attention and state-space models for efficient long-context inference' and its generative table also lists nvidia/Nemotron-H-8B-Base-8K-class deployments [[mdl2-vllm-supported-models-2026-10]] [[mdl2-sglang-generative-models]]. TRT-LLM has NemotronHForCausalLM, labelled Nemotron-3-Nano/Super/Ultra rather than Nemotron-H, with MTP speculative decoding [[mdl2-trtllm-supported-models]] - the naming differs, so do not assume the row covers this exact 8K checkpoint. llama.cpp's llm_arch_is_hybrid and supports_sm_tensor == false both include NEMOTRON_H [[mdl2-llamacpp-arch-class-registry]]. The engine-visible cost of this architecture is the fixed 96 MiB per sequence of Mamba-2 state, which no KV-cache budget shows [[ssm-recurrent-state-update]]. LAYER LAYOUT (nemotron-h-8b-base-8k): config carries hybrid_override_pattern rather than layer_types; 'M' is read as mamba and '*' as attention. The model exposes an `attention_layer_indices`-style override interface but leaves the shipped pattern in effect.

Notes

CONTEXT SCALING: null is a VERIFIED value, checked against config rather than left blank. config.json (nvidia/Nemotron-H-8B-Base-8K) declares rope_scaling null, max_position_embeddings 8192. Verified native, and the shortest window in the hybrid set. Hybrid confirmed from config plus weights. config.json hybrid_override_pattern is 'M-M-M-M*-M-M-M-M-M*-' repeated over 52 layers: 13 groups of 4, four of them starred as attention layers. The safetensors index agrees exactly - q_proj/k_proj/v_proj/o_proj appear for 4 of 52 layers, and the other 48 carry Mamba-2 mixer tensors (A_log, D, conv1d, dt_bias, in_proj, norm, out_proj). KV: bf16 bytes/token = 4 attention layers x 8 KV heads x 128 head_dim (attention_head_dim, explicit) x 2 x 2 bytes = 16384 B/token = 16.0 KiB/token - 8x smaller than a 32-layer 8B dense GQA model at equal context. Recurrent state: ssm_state_size 128 x mamba_head_dim 64 x mamba_num_heads 128 x 2 bytes = 2 MiB per layer per sequence, x 48 layers = 96 MiB per sequence, constant in context length - that fixed 96 MiB is the real cost of this architecture and it scales with concurrency, not with context. gqa_ratio = 32 / 8 = 4. max_position_embeddings 8192 (the '-8K' in the name) with no rope_scaling; this model is about constant-state serving, not long context. intermediate_size 21504 with mlp_hidden_act 'relu2' (a squared-ReLU MLP), n_groups 8, mamba_num_heads 128, time_step_rank 256. rescale_prenorm_residual true.

SERVICEABILITY JOIN (added 2026-10-03; the architecture x engine matrix this record was missing, with a citation per cell in docs/13-model-compatibility.md): FAMILY=hybrid-attention-ssm. REQUIRED KERNEL CLASS: two kernel families in one graph - a chunked linear-attention / delta-rule kernel for the SSM or linear-attention layers, and an ordinary or MLA decode kernel for the full-attention minority - plus a fixed-size recurrent state allocator. Three independent records say the recurrent branch is the hard part: flop/ssm-recurrent-state-update (the state is a fixed per-sequence tax that never amortises, so it scales with concurrency and NOT with context); flop/ssm-sequential-scan-tensor-core-mismatch (the recurrence is a multiplicative chain that tensor cores cannot express, so it must run as a sequential scan; the published SSD-vs-fused-scan gap is 2-8x for identical mathematics); and llama.cpp's own dispatch table, which puts every hybrid and SSM architecture in its supports_sm_tensor == false list [[mdl2-llamacpp-arch-class-registry]] - the engine agreeing with the arithmetic. That same list also shows llama.cpp needed ONE shared hybrid code path (llm_arch_is_hybrid, 18 entries: JAMBA, FALCON_H1, PLAMO2, GRANITE_HYBRID, LFM2, LFM2MOE, NEMOTRON_H, NEMOTRON_H_MOE, QWEN3NEXT, KIMI_LINEAR, BAILINGMOE3, KIMI_K3, GLM5_NEXT, QWEN35, QWEN35MOE, QWEN4EXP, DEEPSEEK4, MINIMAX_01) covering exactly the families vLLM and SGLang each ship as separate rows, which is why hybrid support arrives per engine release rather than at once. SUPPORTED BY (cited): vLLM native rows MambaForCausalLM, Mamba2ForCausalLM, JambaForCausalLM, FalconMambaForCausalLM, FalconH1ForCausalLM, NemotronHForCausalLM, GraniteMoeHybridForCausalLM, Qwen3NextForCausalLM, KimiLinearForCausalLM, Lfm2ForCausalLM, Lfm2MoeForCausalLM, OlmoHybridForCausalLM, KimiK3ForConditionalGeneration, BailingMoeV3ForCausalLM, Qwen3_5 rows [[mdl2-vllm-supported-models-2026-10]]; SGLang generative table names Granite 4.0 micro as 'hybrid Mamba-MoE ... combining gated short convolutions with a small number of grouped query attention blocks', Kimi Linear as 'hybrid linear attention model ... Kimi Delta Attention (KDA) for up to 6x faster decoding and 75% KV cache reduction vs full attention', Nemotron Nano as 'hybrid Mamba-Transformer architecture', Ling as 'hybrid MoE model: per-layer mix of DeepSeek-style MLA full attention and Qwen3 Gated-Delta-Net (GDN) linear attention', LFM2 as 'hybrid backbone', Mamba-Codestral as 'Mamba2 ... holds no KV cache', and its multimodal page carries the descriptor 'hybrid KDA/MLA' [[mdl2-sglang-generative-models]] [[mdl2-sglang-multimodal-language-models]]. TensorRT-LLM has rows for NemotronHForCausalLM, Qwen3NextForCausalLM, Qwen3_5MoeForCausalLM, Qwen4ExpForCausalLM, KimiLinearForCausalLM and KimiK3ForConditionalGeneration but NO row at all for MambaForCausalLM, Mamba2ForCausalLM, FalconH1ForCausalLM, Lfm2ForCausalLM or GraniteMoeHybridForCausalLM [[mdl2-trtllm-supported-models]]. PER-FAMILY FEATURE TRAPS, all from the TRT-LLM key-models matrix, which is the only per-architecture feature matrix in this repo [[mdl2-trtllm-supported-models]]: Qwen3NextForCausalLM has Sliding Window Attention = No and Speculative Decoding = No; Kimi K3 has no MTP or EAGLE-3 head at all (spec method DSpark only) and needs Blackwell SM100; MiniMax-M3 sparse-attention path supports neither KV cache reuse nor MTP in this release; DeepSeek-V4 and Step-3.7 are 'Untested' for disaggregated serving. KERNEL BUGS THAT ARE ARCHITECTURE-SPECIFIC AND REPRODUCED: (1) vLLM's EAGLE last-block drop (drop_eagle_block) costs 6-10 points of prefix-cache hit rate, and on a hybrid GDN/Mamba layout the scheduler alignment unit is 1,648 tokens instead of a 16-token dense block, so the same protection costs ~100x more cache hit - 97.5% to 86.9-91.7% hit rate and 30-40% batch throughput on prefix-reusing workloads [[eagle-prefix-cache-last-block-drop]]. (2) llama.cpp decode collapses on hybrid gated-deltanet GGUF models at high KV position: 33 t/s at 68K to 1.4 t/s at 91K with the model fully resident, across KV quant types and with FA on or off, reproduced on Windows and WSL2 on master and release [[gated-deltanet-decode-collapse-long-context]]. (3) llama.cpp's SYCL path has a regression specific to hybrid linear-attention graphs - qwen3next/qwen3_35 architecture models crash in ggml_sycl_op_mul_mat or return empty output on 2x Arc Pro B60, bracketed between builds b8477 (works) and b9479 (fails), while dense-attention models on the same cards are unaffected [[sycl-hybrid-linear-attention-arch-crash-intel-arc]]. (4) FlashInfer rejects large head sizes at engine init for the head geometry these hybrids introduce [[flashinfer-rejects-large-head-dim]]. Hybrid Mamba-2 with only 4 attention layers of 52. vLLM row NemotronHForCausalLM with LoRA and PP supported; SGLang describes Nemotron Nano as 'hybrid Mamba-Transformer architecture combining attention and state-space models for efficient long-context inference' and its generative table also lists nvidia/Nemotron-H-8B-Base-8K-class deployments [[mdl2-vllm-supported-models-2026-10]] [[mdl2-sglang-generative-models]]. TRT-LLM has NemotronHForCausalLM, labelled Nemotron-3-Nano/Super/Ultra rather than Nemotron-H, with MTP speculative decoding [[mdl2-trtllm-supported-models]] - the naming differs, so do not assume the row covers this exact 8K checkpoint. llama.cpp's llm_arch_is_hybrid and supports_sm_tensor == false both include NEMOTRON_H [[mdl2-llamacpp-arch-class-registry]]. The engine-visible cost of this architecture is the fixed 96 MiB per sequence of Mamba-2 state, which no KV-cache budget shows [[ssm-recurrent-state-update]].

LAYER LAYOUT (nemotron-h-8b-base-8k): config carries hybrid_override_pattern rather than layer_types; 'M' is read as mamba and '*' as attention. The model exposes an `attention_layer_indices`-style override interface but leaves the shipped pattern in effect.

Cross-references

This record references no other records — it is a leaf. It is cited by 0.