#[non_exhaustive]pub struct ModelConfig {Show 21 fields
pub model_type: Option<String>,
pub num_hidden_layers: Option<u32>,
pub num_attention_heads: Option<u32>,
pub num_key_value_heads: Option<u32>,
pub head_dim: Option<u32>,
pub hidden_size: Option<u32>,
pub torch_dtype: Option<String>,
pub sliding_window: Option<u32>,
pub sliding_window_pattern: Option<u32>,
pub use_sliding_window: Option<bool>,
pub kv_lora_rank: Option<u32>,
pub qk_rope_head_dim: Option<u32>,
pub layer_types: Option<Vec<String>>,
pub hybrid_override_pattern: Option<String>,
pub attn_layer_indices: Option<Vec<u32>>,
pub full_attention_interval: Option<u32>,
pub mamba_n_heads: Option<u32>,
pub mamba_d_head: Option<u32>,
pub mamba_d_state: Option<u32>,
pub mamba_d_conv: Option<u32>,
pub mamba_n_groups: Option<u32>,
}Expand description
Attention- and cache-relevant fields parsed from a model’s config.json.
Every field is Option because configs vary across architecture
families; the KV-cache estimator decides which combinations are
computable and which fall back to an “unavailable” verdict. Legacy
n_layer / n_head / n_head_kv spellings are absorbed by serde aliases
on the private deserialization struct. Drives KV-cache budgeting for
inspect --check-gpu --context.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.model_type: Option<String>Architecture tag (e.g. "llama", "qwen3", "gemma2", "deepseek_v2").
Number of transformer layers (num_hidden_layers / n_layer).
num_attention_heads: Option<u32>Number of query attention heads (num_attention_heads / n_head).
num_key_value_heads: Option<u32>Number of key/value heads for GQA (num_key_value_heads /
num_kv_heads / n_head_kv). Absent ⇒ MHA (equals
num_attention_heads).
head_dim: Option<u32>Explicit per-head dimension when stated (Gemma = 256, Qwen3 = 128).
Absent ⇒ derived as hidden_size / num_attention_heads.
Model hidden size, used to derive head_dim when it is not explicit.
torch_dtype: Option<String>Activation dtype spelling ("bfloat16", "float16", …); sizes the
KV-cache element via torch_dtype_bytes.
sliding_window: Option<u32>Sliding-window span in tokens when the model uses windowed attention.
null / absent ⇒ full attention.
sliding_window_pattern: Option<u32>Global-attention period for mixed local/global layouts (Gemma-3:
every N-th layer is a full-attention layer).
use_sliding_window: Option<bool>Explicit on/off switch for sliding-window attention — Qwen2/3 ship a
sliding_window value but disable it with false.
kv_lora_rank: Option<u32>MLA latent-KV rank (DeepSeek). Presence marks multi-head latent
attention, where the naive KV formula does not apply.
qk_rope_head_dim: Option<u32>MLA decoupled-RoPE key dimension (DeepSeek); part of the latent-KV
size used by the documented MLA estimate.
layer_types: Option<Vec<String>>Per-layer kind tags for hybrid models ("attention" / "mamba" /
"linear_attention" / …). Primary hybrid-layout signal (Granite-4).
hybrid_override_pattern: Option<String>Nemotron-H layer-layout string ("M-M-M-M*-…": * = attention,
M = Mamba, - = FFN-only). Alternative hybrid-layout signal.
attn_layer_indices: Option<Vec<u32>>Explicit indices of the attention layers (Bamba). Alternative hybrid-layout signal; the remaining layers are recurrent.
full_attention_interval: Option<u32>Period of full-attention layers — every N-th layer is attention, the
rest recurrent (Qwen3-Next). Alternative hybrid-layout signal.
mamba_n_heads: Option<u32>Mamba2 SSM head count (mamba_n_heads / mamba_num_heads).
mamba_d_head: Option<u32>Mamba2 SSM per-head dimension (mamba_d_head / mamba_head_dim).
mamba_d_state: Option<u32>Mamba2 SSM state size (mamba_d_state / ssm_state_size).
mamba_d_conv: Option<u32>Mamba2 causal-convolution width (mamba_d_conv / conv_kernel).
mamba_n_groups: Option<u32>Mamba2 group count for the convolution (mamba_n_groups / n_groups).
Trait Implementations§
Source§impl Clone for ModelConfig
impl Clone for ModelConfig
Source§fn clone(&self) -> ModelConfig
fn clone(&self) -> ModelConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more