pub struct Glm5NextTextSkeleton {
pub hidden_size: usize,
pub hc_mult: usize,
pub layers: Vec<SkeletonLayer>,
pub mtp: Option<SkeletonLayer>,
}Fields§
§hc_mult: usize§layers: Vec<SkeletonLayer>2026-09-25: Text stack, indices 0..num_hidden_layers. Never includes the MTP layer.
mtp: Option<SkeletonLayer>2026-09-25: The MTP layer, index num_hidden_layers. Held apart from layers so a loop
over layers covers only the text stack.
Implementations§
Source§impl Glm5NextTextSkeleton
impl Glm5NextTextSkeleton
Sourcepub fn from_config(cfg: &ModelConfig) -> Result<Self>
pub fn from_config(cfg: &ModelConfig) -> Result<Self>
2026-09-25: Derive the topology from a parsed config. Every kind is read, never
defaulted. Errors on a model_type other than glm5_next, a layer_types length other
than num_hidden_layers, hc_mult == 0, a layer type other than linear or sparse
attention, and more than one MTP layer.
Sourcepub fn all_layers(&self) -> Vec<SkeletonLayer>
pub fn all_layers(&self) -> Vec<SkeletonLayer>
2026-09-25: Text stack plus the MTP layer, in checkpoint index order.
Sourcepub fn structural_tensors(&self, l: &SkeletonLayer) -> Vec<String>
pub fn structural_tensors(&self, l: &SkeletonLayer) -> Vec<String>
2026-09-25: The structural (non-MLP, non-MoE) tensors this layer needs, fully qualified.
Sourcepub fn structural_tensor_set(&self) -> BTreeSet<String>
pub fn structural_tensor_set(&self) -> BTreeSet<String>
2026-09-25: Every structural tensor the whole skeleton needs, including the non-layer ones.
Sourcepub fn residual_plan(&self, l: &SkeletonLayer) -> Vec<ResidualStep>
pub fn residual_plan(&self, l: &SkeletonLayer) -> Vec<ResidualStep>
2026-09-25: The residual/norm/mHC wiring for one layer, in execution order.
A layer without a hyper-connection (the MTP layer) gets the ordinary
x = x + sublayer(norm(x)) shape, with no mHC steps.
Sourcepub fn final_plan(&self) -> [FinalStep; 3]
pub fn final_plan(&self) -> [FinalStep; 3]
2026-09-25: What runs after the last text layer.
Sourcepub fn state_plan(&self) -> BTreeMap<usize, StateKind>
pub fn state_plan(&self) -> BTreeMap<usize, StateKind>
2026-09-25: Per-layer state kind, for every layer including the MTP layer.
Sourcepub fn kda_state_layers(&self) -> Vec<usize>
pub fn kda_state_layers(&self) -> Vec<usize>
2026-09-25: Layers whose recurrent state is carried between steps.
Sourcepub fn kv_cache_layers(&self) -> Vec<usize>
pub fn kv_cache_layers(&self) -> Vec<usize>
2026-09-25: Layers that consume paged KV blocks, the MTP layer included.
Sourcepub fn state_budget(&self, cfg: &ModelConfig, num_spec: usize) -> StateBudget
pub fn state_budget(&self, cfg: &ModelConfig, num_spec: usize) -> StateBudget
2026-09-25: The per-sequence state budget, from cfg’s geometry. kda_recurrent is
sized at 4 bytes (fp32) per element.
Sourcepub fn account(&self, available: &BTreeSet<String>) -> StructuralAccounting
pub fn account(&self, available: &BTreeSet<String>) -> StructuralAccounting
2026-09-25: Account the skeleton’s structural contract against a checkpoint’s tensor names.
available is the full name list. A required name that is absent goes to missing.
Any other name goes to deferred when it contains .mlp. or starts with
model.visual./model.vision, and to unexpected otherwise.
Trait Implementations§
Source§impl Clone for Glm5NextTextSkeleton
impl Clone for Glm5NextTextSkeleton
Source§fn clone(&self) -> Glm5NextTextSkeleton
fn clone(&self) -> Glm5NextTextSkeleton
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more