pub struct Parameters { /* private fields */ }Expand description
Parameters
Prefer using default() and set individual parameters as needed.
Implementations§
Source§impl Parameters
impl Parameters
Sourcepub fn with_max_length(self, max_length: Option<usize>) -> Self
pub fn with_max_length(self, max_length: Option<usize>) -> Self
Input truncation (nb of tokens)
Sourcepub fn max_length(&self) -> Option<usize>
pub fn max_length(&self) -> Option<usize>
Input truncation (nb of tokens)
Sourcepub fn with_sigmoid(self, sigmoid: bool) -> Self
pub fn with_sigmoid(self, sigmoid: bool) -> Self
Apply sigmoid (for re-reanking)
Examples found in repository?
examples/rerank.rs (line 10)
5fn main() -> gte::util::result::Result<()> {
6 const TOKENIZER_PATH: &str = "models/gte-modernbert-base/tokenizer.json";
7 const MODEL_PATH: &str = "models/gte-reranker-modernbert-base/onnx/model.onnx";
8 const APPLY_SIGMOID: bool = true;
9
10 let params = gte::params::Parameters::default().with_sigmoid(APPLY_SIGMOID);
11 let pipeline = gte::rerank::pipeline::RerankingPipeline::new(TOKENIZER_PATH, ¶ms)?;
12 let model = orp::model::Model::new(MODEL_PATH, orp::params::RuntimeParameters::default())?;
13
14 let inputs = gte::rerank::input::TextInput::from_str(&[
15 ("what is the capital of China?", "Beijing"),
16 ("how to implement quick sort in python?", "Introduction of quick sort"),
17 ("how to implement quick sort in python?", "The weather is nice today"),
18 ]);
19
20 const EXPECTED_SIMILARITIES: [f32; 3] = if APPLY_SIGMOID { [0.8945664, 0.9213594, 0.15742092] } else { [2.1387, 2.4609, -1.6729] };
21 const EPSILON: f32 = if APPLY_SIGMOID { 0.00001 } else { 0.01 };
22
23 let outputs = model.inference(inputs, &pipeline, ¶ms)?;
24
25 println!("Scores: {:?}", outputs.scores);
26 assert!(gte::util::test::is_close_to_a(&outputs.scores.view(), &EXPECTED_SIMILARITIES, EPSILON));
27
28 Ok(())
29}Sourcepub fn with_output_id(self, id: &str) -> Self
pub fn with_output_id(self, id: &str) -> Self
Set output tensor identifier (eg. last_hidden_state)
Examples found in repository?
examples/embed-mul-token.rs (line 7)
3fn main() -> gte::util::result::Result<()> {
4 const TOKENIZER_PATH: &str = "models/gte-multilingual-base/tokenizer.json";
5 const MODEL_PATH: &str = "models/gte-multilingual-base/onnx/model.onnx";
6
7 let params = gte::params::Parameters::default().with_output_id("token_embeddings");
8 let pipeline = gte::embed::pipeline::TextEmbeddingPipeline::new(TOKENIZER_PATH, ¶ms)?;
9 let model = orp::model::Model::new(MODEL_PATH, orp::params::RuntimeParameters::default())?;
10
11 let inputs = gte::embed::input::TextInput::from_str(&[
12 "What is the capital of France?",
13 "How to implement quick sort in python?",
14 "Die Hauptstadt von Frankreich ist Paris.",
15 "La capital de Francia es París.",
16 "London is the capital of the UK",
17 ]);
18
19 let outputs = model.inference(inputs, &pipeline, ¶ms)?;
20 let distances = gte::util::test::distances_to_first(&outputs);
21
22 println!("Distances: {:?}", distances);
23
24 Ok(())
25}More examples
examples/embed-mul-sentence.rs (line 8)
3fn main() -> gte::util::result::Result<()> {
4 const TOKENIZER_PATH: &str = "models/gte-multilingual-base/tokenizer.json";
5 const MODEL_PATH: &str = "models/gte-multilingual-base/onnx/model.onnx";
6
7 let params = gte::params::Parameters::default()
8 .with_output_id("sentence_embedding")
9 .with_mode(gte::embed::output::ExtractorMode::Raw);
10
11 let pipeline = gte::embed::pipeline::TextEmbeddingPipeline::new(TOKENIZER_PATH, ¶ms)?;
12 let model = orp::model::Model::new(MODEL_PATH, orp::params::RuntimeParameters::default())?;
13
14 let inputs = gte::embed::input::TextInput::from_str(&[
15 "What is the capital of France?",
16 "How to implement quick sort in python?",
17 "Die Hauptstadt von Frankreich ist Paris.",
18 "La capital de Francia es París.",
19 "London is the capital of the UK",
20 ]);
21
22 let outputs = model.inference(inputs, &pipeline, ¶ms)?;
23 let distances = gte::util::test::distances_to_first(&outputs);
24
25 println!("Distances: {:?}", distances);
26
27 Ok(())
28}Sourcepub fn with_mode(self, mode: ExtractorMode) -> Self
pub fn with_mode(self, mode: ExtractorMode) -> Self
Set embeddings extraction mode
Examples found in repository?
examples/embed-mul-sentence.rs (line 9)
3fn main() -> gte::util::result::Result<()> {
4 const TOKENIZER_PATH: &str = "models/gte-multilingual-base/tokenizer.json";
5 const MODEL_PATH: &str = "models/gte-multilingual-base/onnx/model.onnx";
6
7 let params = gte::params::Parameters::default()
8 .with_output_id("sentence_embedding")
9 .with_mode(gte::embed::output::ExtractorMode::Raw);
10
11 let pipeline = gte::embed::pipeline::TextEmbeddingPipeline::new(TOKENIZER_PATH, ¶ms)?;
12 let model = orp::model::Model::new(MODEL_PATH, orp::params::RuntimeParameters::default())?;
13
14 let inputs = gte::embed::input::TextInput::from_str(&[
15 "What is the capital of France?",
16 "How to implement quick sort in python?",
17 "Die Hauptstadt von Frankreich ist Paris.",
18 "La capital de Francia es París.",
19 "London is the capital of the UK",
20 ]);
21
22 let outputs = model.inference(inputs, &pipeline, ¶ms)?;
23 let distances = gte::util::test::distances_to_first(&outputs);
24
25 println!("Distances: {:?}", distances);
26
27 Ok(())
28}Sourcepub fn mode(&self) -> ExtractorMode
pub fn mode(&self) -> ExtractorMode
Embeddings extraction mode
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Parameters
impl RefUnwindSafe for Parameters
impl Send for Parameters
impl Sync for Parameters
impl Unpin for Parameters
impl UnwindSafe for Parameters
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
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>
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 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>
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