Skip to main content

BertEncoder

Struct BertEncoder 

Source
pub struct BertEncoder {
    pub hp: BertHparams,
    pub tok_embd: WeightMatrix,
    pub type_embd_row0: Option<Vec<f32>>,
    pub pos_embd: WeightMatrix,
    pub tok_norm_w: Vec<f32>,
    pub tok_norm_b: Vec<f32>,
    pub layers: Vec<BertLayer>,
}

Fields§

§hp: BertHparams§tok_embd: WeightMatrix§type_embd_row0: Option<Vec<f32>>

Row 0 of token_types.weight — “Sentence A”. See the module docs.

§pos_embd: WeightMatrix§tok_norm_w: Vec<f32>§tok_norm_b: Vec<f32>§layers: Vec<BertLayer>

Implementations§

Trait Implementations§

Source§

impl TextEncoder for BertEncoder

Source§

fn wrap_special(&self, pieces: &[u32]) -> Vec<u32>

[CLS] … [SEP], which is what llama.cpp’s WPM branch adds when add_special is set: it pushes special_bos_id before the pieces and special_sep_id after, unconditionally — the add_bos/add_eos flags are not consulted on that path (llama-vocab.cpp, case LLAMA_VOCAB_TYPE_WPM).

Source§

fn wrap_special_pair(&self, a: &[u32], b: &[u32]) -> Option<Vec<u32>>

[CLS] a [SEP] b [SEP] — what HuggingFace’s tokenizer(query, document) builds for a BERT cross-encoder, which is the input these checkpoints were trained on.

The segment ids that pairing normally carries are not here, and that is deliberate rather than forgotten: this graph adds row 0 of token_types.weight to every position, because llama.cpp does the same (token types are hardcoded to zero, its bert.cpp; see BertEncoder::type_embd_row0). A reranker scored here therefore differs from the HF reference by the second segment’s type embedding, on both engines equally. It is recorded in the ferrox rerank docs and is the first thing to check if an ordering disagrees with transformers.

Source§

fn n_embd(&self) -> usize

Width of one hidden-state row, and of the pooled embedding.
Source§

fn n_ctx_train(&self) -> usize

Longest sequence this checkpoint can represent. For a learned position table this is the table’s height, and exceeding it is an error rather than a degradation.
Source§

fn pooling_type(&self) -> PoolingType

What the checkpoint’s own {arch}.pooling_type said.
Source§

fn encode_tokens(&self, tokens: &[u32]) -> Result<Vec<f32>, EncodeError>

n_tokens × n_embd hidden states, in row order.
Source§

fn embed_tokens(&self, tokens: &[u32]) -> Result<Vec<f32>, EncodeError>

Self::encode_tokens followed by the checkpoint’s own pooling. Not L2-normalized — see crate::pooling::pool.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.