pub struct ColBERT {
pub device: Device,
/* private fields */
}
Expand description
The main ColBERT model structure.
This struct encapsulates the language model, a linear projection layer, the tokenizer, and all necessary configuration for performing encoding and similarity calculations based on the ColBERT architecture.
Fields§
§device: Device
The device (CPU or GPU) on which the model is loaded.
Implementations§
Source§impl ColBERT
impl ColBERT
Sourcepub fn new(
weights: Vec<u8>,
dense_weights: Vec<u8>,
tokenizer_bytes: Vec<u8>,
config_bytes: Vec<u8>,
dense_config_bytes: Vec<u8>,
query_prefix: String,
document_prefix: String,
mask_token: String,
attend_to_expansion_tokens: bool,
query_length: Option<usize>,
document_length: Option<usize>,
batch_size: Option<usize>,
device: &Device,
) -> Result<Self, ColbertError>
pub fn new( weights: Vec<u8>, dense_weights: Vec<u8>, tokenizer_bytes: Vec<u8>, config_bytes: Vec<u8>, dense_config_bytes: Vec<u8>, query_prefix: String, document_prefix: String, mask_token: String, attend_to_expansion_tokens: bool, query_length: Option<usize>, document_length: Option<usize>, batch_size: Option<usize>, device: &Device, ) -> Result<Self, ColbertError>
Creates a new instance of the ColBERT
model from byte buffers.
Sourcepub fn from(repo_id: &str) -> ColbertBuilder
pub fn from(repo_id: &str) -> ColbertBuilder
Creates a ColbertBuilder
to construct a ColBERT
model from a Hugging Face repository.
Sourcepub fn encode(
&mut self,
sentences: &[String],
is_query: bool,
) -> Result<Tensor, ColbertError>
pub fn encode( &mut self, sentences: &[String], is_query: bool, ) -> Result<Tensor, ColbertError>
Encodes a batch of sentences (queries or documents) into embeddings.
On CPU and non-WASM targets, this method leverages Rayon for parallel batch processing to accelerate encoding. On other targets (like GPU or WASM), it processes batches sequentially.
Sourcepub fn similarity(
&self,
queries_embeddings: &Tensor,
documents_embeddings: &Tensor,
) -> Result<Similarities, ColbertError>
pub fn similarity( &self, queries_embeddings: &Tensor, documents_embeddings: &Tensor, ) -> Result<Similarities, ColbertError>
Calculates the similarity scores between query and document embeddings.
Sourcepub fn raw_similarity(
&self,
queries_embeddings: &Tensor,
documents_embeddings: &Tensor,
) -> Result<Tensor, ColbertError>
pub fn raw_similarity( &self, queries_embeddings: &Tensor, documents_embeddings: &Tensor, ) -> Result<Tensor, ColbertError>
Computes the raw, un-reduced similarity matrix between query and document embeddings.
Trait Implementations§
Source§impl TryFrom<ColbertBuilder> for ColBERT
impl TryFrom<ColbertBuilder> for ColBERT
Source§fn try_from(builder: ColbertBuilder) -> Result<Self, Self::Error>
fn try_from(builder: ColbertBuilder) -> Result<Self, Self::Error>
Builds the ColBERT
model by downloading files from the hub and initializing the model.
Source§type Error = ColbertError
type Error = ColbertError
Auto Trait Implementations§
impl !Freeze for ColBERT
impl !RefUnwindSafe for ColBERT
impl Send for ColBERT
impl Sync for ColBERT
impl Unpin for ColBERT
impl !UnwindSafe for ColBERT
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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