pub struct ModelDef {
pub name: String,
pub description: Option<String>,
pub vocab_size: usize,
pub max_seq_len: usize,
pub hidden_size: usize,
pub num_layers: usize,
pub block: BlockDef,
pub pattern: Option<Vec<BlockDef>>,
pub embeddings: EmbeddingsConfig,
pub output: OutputConfig,
}Expand description
Parsed model definition from MAL
Fields§
§name: String§description: Option<String>§vocab_size: usize§max_seq_len: usize§num_layers: usize§block: BlockDef§pattern: Option<Vec<BlockDef>>Optional heterogeneous layer pattern, repeated cyclically across
num_layers (e.g. [mamba, mamba, attn]). Overrides block when set.
embeddings: EmbeddingsConfig§output: OutputConfigImplementations§
Source§impl ModelDef
impl ModelDef
Sourcepub fn block_for_layer(&self, i: usize) -> &BlockDef
pub fn block_for_layer(&self, i: usize) -> &BlockDef
Block definition for layer i: cycles through pattern when set,
otherwise the homogeneous block.
Sourcepub fn dt_rank(&self, ssm: &SsmDef) -> usize
pub fn dt_rank(&self, ssm: &SsmDef) -> usize
Effective Δ rank for an SSM mixer (paper default: ceil(hidden/16))
pub fn num_heads(&self) -> usize
pub fn num_kv_heads(&self) -> usize
pub fn head_dim(&self) -> usize
pub fn intermediate_size(&self) -> usize
pub fn norm_eps(&self) -> f64
pub fn rope_theta(&self) -> f64
Sourcepub fn estimated_params(&self) -> usize
pub fn estimated_params(&self) -> usize
Count trainable parameters implied by the model definition.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ModelDef
impl<'de> Deserialize<'de> for ModelDef
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ModelDef
impl RefUnwindSafe for ModelDef
impl Send for ModelDef
impl Sync for ModelDef
impl Unpin for ModelDef
impl UnsafeUnpin for ModelDef
impl UnwindSafe for ModelDef
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more