pub struct Glm5NextDsaWeights {Show 13 fields
pub q_a_proj: DevicePtr,
pub q_a_layernorm: DevicePtr,
pub q_absorb: DevicePtr,
pub kv_a_proj: DevicePtr,
pub kv_a_layernorm: DevicePtr,
pub o_absorb: DevicePtr,
pub wk: DevicePtr,
pub k_norm_weight: DevicePtr,
pub k_norm_bias: DevicePtr,
pub compress_gate: DevicePtr,
pub wq_b: DevicePtr,
pub weights_proj: DevicePtr,
pub ape: DevicePtr,
}Expand description
2026-09-25: One DSA block’s weights on the device, already sharded for this rank.
Fields§
§q_a_proj: DevicePtr§q_a_layernorm: DevicePtr§q_absorb: DevicePtr2026-09-25: [local_heads * kv_lora_rank, q_lora_rank] BF16: q_b_proj absorbed
through kv_b_proj’s K half, so Q arrives in latent space.
kv_a_proj: DevicePtr§kv_a_layernorm: DevicePtr§o_absorb: DevicePtr2026-09-25: [hidden, local_heads * kv_lora_rank] BF16, row-parallel; the caller
all-reduces the output.
o_proj with kv_b_proj’s V half folded in (build::absorb_o), because the decode
kernel’s output is in latent space, kv_lora_rank per head. The checkpoint o_proj
is v_head_dim per head (256 against 512 on GLM-5.3).
wk: DevicePtr§k_norm_weight: DevicePtr§k_norm_bias: DevicePtr§compress_gate: DevicePtr§wq_b: DevicePtr§weights_proj: DevicePtr2026-09-25: Multiplied by index_heads^-0.5 at load; dsa_index_scores does not
apply it.
ape: DevicePtr2026-09-25: [index_kpool, index_head_dim] FP32; the checkpoint stores BF16.
Auto Trait Implementations§
impl Freeze for Glm5NextDsaWeights
impl RefUnwindSafe for Glm5NextDsaWeights
impl Send for Glm5NextDsaWeights
impl Sync for Glm5NextDsaWeights
impl Unpin for Glm5NextDsaWeights
impl UnwindSafe for Glm5NextDsaWeights
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