Views
No views yet
model-quant.onnx: Quantized INT8 model (recommended for production)model.onnx: Original FP32 ONNX model1import onnxruntime as ort
2import numpy as np
3from transformers import AutoTokenizer
4
5# Load the quantized model
6session = ort.InferenceSession("model-quant.onnx")
7tokenizer = AutoTokenizer.from_pretrained("sentence-transformers/all-MiniLM-L6-v2")
8
9def encode_text(text):
10 # Tokenize
11 inputs = tokenizer(text, return_tensors="np", padding=True, truncation=True, max_length=512)
12
13 # Run inference
14 outputs = session.run(None, {
15 "input_ids": inputs["input_ids"],
16 "attention_mask": inputs["attention_mask"]
17 })
18
19 # Apply mean pooling
20 last_hidden_state = outputs[0]
21 attention_mask_expanded = np.expand_dims(inputs["attention_mask"], -1)
22 attention_mask_expanded = np.broadcast_to(attention_mask_expanded, last_hidden_state.shape)
23
24 masked_embeddings = last_hidden_state * attention_mask_expanded
25 summed = np.sum(masked_embeddings, axis=1)
26 summed_mask = np.sum(attention_mask_expanded, axis=1)
27 embedding = summed / np.maximum(summed_mask, 1e-9)
28
29 return embedding[0]
30
31# Example usage
32text = "I love this product!"
33embedding = encode_text(text)
34print(f"Embedding shape: {embedding.shape}")1from sentence_transformers import SentenceTransformer
2
3model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
4embedding = model.encode("I love this product!")| Model | Size | Inference Speed | Memory Usage | Similarity to Original |
|---|---|---|---|---|
| Original | ~90MB | 1.0x | 1.0x | 100% |
| Quantized | ~23MB | 1.2-1.5x | 0.6x | 95%+ |
1@inproceedings{reimers-2019-sentence-bert,
2 title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
3 author = "Reimers, Nils and Gurevych, Iryna",
4 booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
5 month = "11",
6 year = "2019",
7 publisher = "Association for Computational Linguistics",
8 url = "http://arxiv.org/abs/1908.10084",
9}