pub struct NeedleModel {
pub cfg: TransformerConfig,
pub embedding: Vec<f32>,
pub encoder_layers: Vec<EncoderLayer>,
pub decoder_layers: Vec<DecoderLayer>,
pub encoder_final_norm: Vec<f32>,
pub decoder_final_norm: Vec<f32>,
/* private fields */
}Fields§
§cfg: TransformerConfig§embedding: Vec<f32>Token embedding matrix [vocab_size, d_model] (also used as LM head transposed)
encoder_layers: Vec<EncoderLayer>§decoder_layers: Vec<DecoderLayer>§encoder_final_norm: Vec<f32>Encoder final norm scale [d_model]
decoder_final_norm: Vec<f32>Decoder final norm scale [d_model]
Implementations§
Source§impl NeedleModel
impl NeedleModel
pub fn new( cfg: TransformerConfig, embedding: Vec<f32>, encoder_layers: Vec<EncoderLayer>, decoder_layers: Vec<DecoderLayer>, encoder_final_norm: Vec<f32>, decoder_final_norm: Vec<f32>, ) -> Self
Sourcepub fn encode(
&self,
input_ids: &[u32],
enc_kv_caches: &mut [KvCache],
) -> Vec<f32>
pub fn encode( &self, input_ids: &[u32], enc_kv_caches: &mut [KvCache], ) -> Vec<f32>
Run the encoder over the full input sequence. Returns encoder hidden states [enc_len, d_model]. Also fills enc_kv_caches (one per decoder layer) with cross-attn K/V projections.
Sourcepub fn decode_step(
&self,
token_id: u32,
enc_kv_caches: &[KvCache],
dec_kv_caches: &mut [KvCache],
logits: &mut [f32],
)
pub fn decode_step( &self, token_id: u32, enc_kv_caches: &[KvCache], dec_kv_caches: &mut [KvCache], logits: &mut [f32], )
Autoregressive decode: generates one token given decoder input token and KV caches. Returns logits over the full vocabulary.
Sourcepub fn make_enc_kv_caches(&self, enc_len: usize) -> Vec<KvCache>
pub fn make_enc_kv_caches(&self, enc_len: usize) -> Vec<KvCache>
Allocate fresh KV caches for cross-attention (one per decoder layer, sized for enc input).
Sourcepub fn make_dec_kv_caches(&self) -> Vec<KvCache>
pub fn make_dec_kv_caches(&self) -> Vec<KvCache>
Allocate fresh KV caches for decoder self-attention.
Auto Trait Implementations§
impl Freeze for NeedleModel
impl RefUnwindSafe for NeedleModel
impl Send for NeedleModel
impl Sync for NeedleModel
impl Unpin for NeedleModel
impl UnsafeUnpin for NeedleModel
impl UnwindSafe for NeedleModel
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