pub struct VmfPhaseWeights {
pub thq: QTensor,
pub thk: QTensor,
pub v_proj: QTensor,
pub out_proj: QTensor,
pub decay: Vec<f64>,
pub conv: Option<Vec<f32>>,
pub k_gate: Option<(QTensor, Vec<f32>)>,
}Expand description
Weights of one vmf_phase layer (model.layers.{i}.vmf_attn.*).
Fields§
§thq: QTensor[nh·nphase, hidden] — query phase projection
thk: QTensor[nh·nphase, hidden] — key phase projection
v_proj: QTensor[nh·dv, hidden]
out_proj: QTensor[hidden, nh·dv]
decay: Vec<f64>Per-component decay exp(−exp(A_log)), len nh·2·nphase (precomputed).
conv: Option<Vec<f32>>Short causal depthwise conv before the projections (embryo genomes
born with --conv-k): flat [hidden·k] taps, identity-initialised
at training start. The projections were TRAINED on the conv output —
running without it scrambles the layer (measured: train-val ppl 60
exported to runtime ppl 93 539). None = pre-conv genomes, untouched.
k_gate: Option<(QTensor, Vec<f32>)>Selective-write input gate κ (hybrid_k core, stage 71): weight [nh, hidden] + bias [nh]; κ_h = σ(W_k·x + b)_h multiplies the state WRITE (S = decay·S + κ·φk⊗v). None = classic phase core, bit-identical to the pre-κ kernel. Measured at mechanism level: knee ×2–6 earlier, restores correlated-noise robustness, LM crossover vs softmax at SEQ 512 (experiments/lc_final_merged.json).