pub struct KdaWeights {Show 15 fields
pub q_proj: QTensor,
pub k_proj: QTensor,
pub v_proj: QTensor,
pub conv_q: Vec<f32>,
pub conv_k: Vec<f32>,
pub conv_v: Vec<f32>,
pub f_a: QTensor,
pub f_b: QTensor,
pub dt_bias: Vec<f32>,
pub a_log: Vec<f32>,
pub b_proj: QTensor,
pub gate: KdaOutGate,
pub o_norm: Vec<f32>,
pub o_proj: QTensor,
pub gate_lower_bound: Option<f32>,
}Fields§
§q_proj: QTensor[nh·dk, hidden]
k_proj: QTensor[nh·dk, hidden]
v_proj: QTensor[nh·dv, hidden]
conv_q: Vec<f32>[nh·dk × kk] — depthwise taps, oldest→newest (see GdnWeights.conv1d)
conv_k: Vec<f32>§conv_v: Vec<f32>[nh·dv × kk]
f_a: QTensor[rank, hidden] — low-rank decay projection, stage 1
f_b: QTensor[nh·dk, rank] — stage 2
dt_bias: Vec<f32>[nh·dk]
a_log: Vec<f32>[nh] per-head (Kimi-Linear-48B) | [dk] per-dim (Kimi-K3) | [nh·dk] full — broadcast resolved by length.
b_proj: QTensor[nh, hidden] — β = σ(b_proj·x) per head
gate: KdaOutGateOutput gate: full-rank g_proj (K3) or low-rank g_b(g_a(x)) (48B).
o_norm: Vec<f32>[dv] — gated RMSNorm weight (per head over head_v_dim)
o_proj: QTensor[hidden, nh·dv]
gate_lower_bound: Option<f32>Some(lb): log-decay = lb·σ(exp(A)·(f+bias)) (K3, lb=−5); None: −exp(A)·softplus(f+bias) (Kimi-Linear-48B).
Auto Trait Implementations§
impl Freeze for KdaWeights
impl RefUnwindSafe for KdaWeights
impl Send for KdaWeights
impl Sync for KdaWeights
impl Unpin for KdaWeights
impl UnsafeUnpin for KdaWeights
impl UnwindSafe for KdaWeights
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