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

Falcon-H1-7B-Base

hybrid-attention-ssm 7.58565B

Fields

id
models/falcon-h1-7b-base
Family
falcon-h1
Vendor
TII
Release year
2025
Architecture
hybrid-attention-ssm
Params (B)
7.5856
Active params (B)
7.5856
Hidden size
3,072
Layers
44
KV heads
2
Head dim
128
GQA ratio
6
Max context
262,144
Context scaling method
native
Activation
silu
Attention variant
GQA in parallel with Mamba-2 on every layer
Attention layer indices
012345678910111213141516171819202122232425262728293031323334353637383940414243
Layer types
attentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattentionattention
KV cache (bytes/token)
45,056
FLOPs per active token
15,171,297,472
Open weights
yes
License
Falcon LLM license (license:other)
notes
CONTEXT SCALING: null is a VERIFIED value, checked against config rather than left blank. config.json (tiiuae/falcon-h1-7B-base) declares rope_scaling null, rope_theta 100000000000 (1e11), max_position_embeddings 262144. As with Magistral, the enormous base is a native training choice, not a scaling method - no PI / NTK / YaRN block exists. Hybrid confirmed two ways. config.json declares architectures ['FalconH1ForCausalLM'], model_type 'falcon_h1', with both Mamba-2 fields (mamba_d_state 256, mamba_d_head 128, mamba_n_heads 24, mamba_d_conv 4, mamba_chunk_size 128) and attention fields (12 query heads, 2 KV heads, head_dim 128). The safetensors index shows all 44 layers carrying self_attn.q/k/v/o_proj AND mamba.in_proj/out_proj/conv1d/A_log/D/dt_bias together - i.e. TII's 'hybrid mixer block' runs attention and SSM in PARALLEL in every layer, not the interleaved 1-in-N pattern used by Nemotron-H or Granite 4.0. This is the serving trap: the KV cache does NOT shrink. bf16 KV bytes/token = 44 layers x 2 KV heads x 128 head_dim x 2 x 2 bytes = 45056 B/token = 44.0 KiB/token, and at 262144 max_position_embeddings a full-length sequence is 11.00 GiB of KV per sequence at bf16 - with only 2 KV heads the per-token cost is low but the layer count is 44 so the total is still large. In parallel the recurrent state costs mamba_d_state 256 x mamba_d_head 128 x mamba_n_heads 24 = 786432 elements = 1.5 MiB per layer per sequence at bf16, x 44 layers = 66 MiB, constant in context length. rope_theta 1e11 with no rope_scaling; max_position_embeddings 262144 is 2x the next-largest in this slice. gqa_ratio = 12 / 2 = 6. Hidden 3072 with 44 layers is another deep-and-narrow shape: 44 layers at width 3072 versus 32 layers at width 4096 for Llama-3.1-8B. 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 in PARALLEL on every layer (attention and Mamba-2 side by side, 44 of 44), which is the expensive variant: the KV cache barely shrinks (44 layers still hold K/V) AND the full recurrent state is still paid [[ssm-recurrent-state-update]]. vLLM row FalconH1ForCausalLM exists; SGLang lists tiiuae/Falcon-H1-34B-Instruct and describes it as 'hybrid Mamba-Transformer language model designed to increase throughput for reasoning workloads' [[mdl2-vllm-supported-models-2026-10]] [[mdl2-sglang-generative-models]]. TRT-LLM has NO Falcon row [[mdl2-trtllm-supported-models]]. llama.cpp's llm_arch_is_hybrid includes FALCON_H1 and its supports_sm_tensor == false list too [[mdl2-llamacpp-arch-class-registry]]. The paper record papers/arch-jamba-15 covers the same parallel-per-layer design [[jamba-1-5]]. CONTEXT_SCALING_METHOD (native): SCHEME RECLASSIFIED (2026-10-04): was null (a rope_theta of 1e11 read as an extrapolation trick). rope_scaling null, rope_theta 1e11: 1e11 is the Falcon-H1 TRAINING BASE, not a scaling method. LAYER LAYOUT (falcon-h1-7b-base): config declares attn_layer_indices null, which for this architecture means the attention branch runs on EVERY layer in parallel with the Mamba-2 branch - not that the model is uniform. KV therefore accrues on all layers, which is why this hybrid buys almost nothing over dense GQA.

Notes

CONTEXT SCALING: null is a VERIFIED value, checked against config rather than left blank. config.json (tiiuae/falcon-h1-7B-base) declares rope_scaling null, rope_theta 100000000000 (1e11), max_position_embeddings 262144. As with Magistral, the enormous base is a native training choice, not a scaling method - no PI / NTK / YaRN block exists. Hybrid confirmed two ways. config.json declares architectures ['FalconH1ForCausalLM'], model_type 'falcon_h1', with both Mamba-2 fields (mamba_d_state 256, mamba_d_head 128, mamba_n_heads 24, mamba_d_conv 4, mamba_chunk_size 128) and attention fields (12 query heads, 2 KV heads, head_dim 128). The safetensors index shows all 44 layers carrying self_attn.q/k/v/o_proj AND mamba.in_proj/out_proj/conv1d/A_log/D/dt_bias together - i.e. TII's 'hybrid mixer block' runs attention and SSM in PARALLEL in every layer, not the interleaved 1-in-N pattern used by Nemotron-H or Granite 4.0. This is the serving trap: the KV cache does NOT shrink. bf16 KV bytes/token = 44 layers x 2 KV heads x 128 head_dim x 2 x 2 bytes = 45056 B/token = 44.0 KiB/token, and at 262144 max_position_embeddings a full-length sequence is 11.00 GiB of KV per sequence at bf16 - with only 2 KV heads the per-token cost is low but the layer count is 44 so the total is still large. In parallel the recurrent state costs mamba_d_state 256 x mamba_d_head 128 x mamba_n_heads 24 = 786432 elements = 1.5 MiB per layer per sequence at bf16, x 44 layers = 66 MiB, constant in context length. rope_theta 1e11 with no rope_scaling; max_position_embeddings 262144 is 2x the next-largest in this slice. gqa_ratio = 12 / 2 = 6. Hidden 3072 with 44 layers is another deep-and-narrow shape: 44 layers at width 3072 versus 32 layers at width 4096 for Llama-3.1-8B.

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 in PARALLEL on every layer (attention and Mamba-2 side by side, 44 of 44), which is the expensive variant: the KV cache barely shrinks (44 layers still hold K/V) AND the full recurrent state is still paid [[ssm-recurrent-state-update]]. vLLM row FalconH1ForCausalLM exists; SGLang lists tiiuae/Falcon-H1-34B-Instruct and describes it as 'hybrid Mamba-Transformer language model designed to increase throughput for reasoning workloads' [[mdl2-vllm-supported-models-2026-10]] [[mdl2-sglang-generative-models]]. TRT-LLM has NO Falcon row [[mdl2-trtllm-supported-models]]. llama.cpp's llm_arch_is_hybrid includes FALCON_H1 and its supports_sm_tensor == false list too [[mdl2-llamacpp-arch-class-registry]]. The paper record papers/arch-jamba-15 covers the same parallel-per-layer design [[jamba-1-5]].

CONTEXT_SCALING_METHOD (native): SCHEME RECLASSIFIED (2026-10-04): was null (a rope_theta of 1e11 read as an extrapolation trick). rope_scaling null, rope_theta 1e11: 1e11 is the Falcon-H1 TRAINING BASE, not a scaling method.

LAYER LAYOUT (falcon-h1-7b-base): config declares attn_layer_indices null, which for this architecture means the attention branch runs on EVERY layer in parallel with the Mamba-2 branch - not that the model is uniform. KV therefore accrues on all layers, which is why this hybrid buys almost nothing over dense GQA.

Cross-references

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