File tree Expand file tree Collapse file tree 2 files changed +6
-7
lines changed Expand file tree Collapse file tree 2 files changed +6
-7
lines changed Original file line number Diff line number Diff line change @@ -5,11 +5,11 @@ edition = "2021"
5
5
publish = false
6
6
7
7
[dependencies ]
8
- candle-core = " 0.6 "
9
- candle-nn = " 0.6 "
10
- candle-transformers = " 0.6 "
8
+ candle-core = " 0.7 "
9
+ candle-nn = " 0.7 "
10
+ candle-transformers = " 0.7 "
11
11
hf-hub = " 0.3"
12
12
pgvector = { path = " ../.." , features = [" postgres" ] }
13
13
postgres = " 0.19"
14
14
serde_json = " 1"
15
- tokenizers = " 0.19 "
15
+ tokenizers = " 0.20 "
Original file line number Diff line number Diff line change @@ -81,13 +81,12 @@ impl EmbeddingModel {
81
81
Ok ( Self { tokenizer, model } )
82
82
}
83
83
84
- // embed one at a time since BertModel does not support attention mask
85
- // https://github.com/huggingface/candle/issues/1798
84
+ // TODO support multiple texts
86
85
fn embed ( & self , text : & str ) -> Result < Vec < f32 > , Box < dyn Error + Send + Sync > > {
87
86
let tokens = self . tokenizer . encode ( text, true ) ?;
88
87
let token_ids = Tensor :: new ( vec ! [ tokens. get_ids( ) . to_vec( ) ] , & self . model . device ) ?;
89
88
let token_type_ids = token_ids. zeros_like ( ) ?;
90
- let embeddings = self . model . forward ( & token_ids, & token_type_ids) ?;
89
+ let embeddings = self . model . forward ( & token_ids, & token_type_ids, None ) ?;
91
90
let embeddings = ( embeddings. sum ( 1 ) ? / ( embeddings. dim ( 1 ) ? as f64 ) ) ?;
92
91
let embeddings = embeddings. broadcast_div ( & embeddings. sqr ( ) ?. sum_keepdim ( 1 ) ?. sqrt ( ) ?) ?;
93
92
Ok ( embeddings. squeeze ( 0 ) ?. to_vec1 :: < f32 > ( ) ?)
You can’t perform that action at this time.
0 commit comments