Feature Extraction
Transformers
Safetensors
sentence-transformers
ONNX
English
bert
embeddings
text-embeddings
semantic-search
information-retrieval
int8
minilm
e5
text-embeddings-inference
Instructions to use GrowBitLabs/tinye5 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use GrowBitLabs/tinye5 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("feature-extraction", model="GrowBitLabs/tinye5")# Load model directly from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("GrowBitLabs/tinye5") model = AutoModel.from_pretrained("GrowBitLabs/tinye5", device_map="auto") - sentence-transformers
How to use GrowBitLabs/tinye5 with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("GrowBitLabs/tinye5") sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [3, 3] - Notebooks
- Google Colab
- Kaggle
| language: | |
| - en | |
| license: apache-2.0 | |
| library_name: transformers | |
| pipeline_tag: feature-extraction | |
| base_model: sentence-transformers/all-MiniLM-L6-v2 | |
| tags: | |
| - sentence-transformers | |
| - embeddings | |
| - text-embeddings | |
| - semantic-search | |
| - information-retrieval | |
| - onnx | |
| - int8 | |
| - minilm | |
| - e5 | |
| # TinyE5-L6-384 | |
| **TinyE5-L6-384** is a compact **384-dimensional text embedding model** built from | |
| `sentence-transformers/all-MiniLM-L6-v2` and fine-tuned for semantic search and | |
| information retrieval using E5-style query/passage prefixes. | |
| The model uses **mean pooling + L2 normalization** and is designed for applications | |
| where model size, CPU latency, and deployment efficiency matter. | |
| ## Highlights | |
| - **6 Transformer layers** | |
| - **384-dimensional embeddings** | |
| - **22.7M parameters** | |
| - Only the **last 2 Transformer layers** were fine-tuned | |
| - **Mean pooling** | |
| - **L2-normalized embeddings** | |
| - E5-style `query:` and `passage:` prefixes | |
| - FP32 and dynamically quantized **INT8 ONNX** deployment | |
| - INT8 ONNX size: **21.8 MB** | |
| - Measured INT8 CPU throughput: **377.7 texts/s** | |
| --- | |
| ## Model Architecture | |
| | Property | Value | | |
| |---|---| | |
| | Base model | `sentence-transformers/all-MiniLM-L6-v2` | | |
| | Transformer layers | 6 | | |
| | Hidden / embedding size | 384 | | |
| | Total parameters | 22,713,216 | | |
| | Fine-tuned layers | Last 2 Transformer layers | | |
| | Trainable parameters | 3,548,928 | | |
| | Trainable percentage | 15.62% | | |
| | Pooling | Mean pooling | | |
| | Normalization | L2 normalization | | |
| | Query prefix | `query: ` | | |
| | Passage prefix | `passage: ` | | |
| | Training max length | 128 tokens | | |
| --- | |
| ## Benchmark Results | |
| ### Quality | |
| | Model | Size | STS Spearman ↑ | SciFact Recall@10 ↑ | SciFact nDCG@10 ↑ | | |
| | ------------------------------- | ----------: | -------------: | ------------------: | ----------------: | | |
| | **TinyE5-L6-384 (Safetensors)** | 86.7 MB | 0.8138 | 0.7342 | 0.5897 | | |
| | **TinyE5-L6-384 (FP32 ONNX)** | 86.2 MB | 0.8138 | 0.7342 | 0.5897 | | |
| | **TinyE5-L6-384 (INT8 ONNX)** | **21.8 MB** | 0.8058 | 0.7599 | 0.6020 | | |
| ### CPU Inference Performance | |
| | Model | Precision | Size | Latency ↓ | Throughput ↑ | Session RAM ↓ | | |
| | ---------------------- | --------- | ----------: | ---------------: | -----------------: | ------------: | | |
| | TinyE5-L6-384 ONNX | FP32 | 86.2 MB | 2.35 ms/text | 424.7 texts/s | 90.4 MB | | |
| | **TinyE5-L6-384 ONNX** | **INT8** | **21.8 MB** | **0.77 ms/text** | **1299.4 texts/s** | **11.2 MB** | | |
| ### INT8 vs FP32 ONNX | |
| | Metric | FP32 | INT8 | Change | | |
| | ----------------- | ------------: | -----------------: | -----------------: | | |
| | Model size | 86.2 MB | **21.8 MB** | **~74.7% smaller** | | |
| | CPU latency | 2.35 ms/text | **0.77 ms/text** | **~67.2% lower** | | |
| | CPU throughput | 424.7 texts/s | **1299.4 texts/s** | **~205.9% higher** | | |
| | Session RAM | 90.4 MB | **11.2 MB** | **~87.6% lower** | | |
| | STS Spearman | **0.8138** | 0.8058 | -0.0080 | | |
| | SciFact Recall@10 | 0.7342 | **0.7599** | **+0.0257** | | |
| | SciFact nDCG@10 | 0.5897 | **0.6020** | **+0.0123** | | |
| ### End-to-End Benchmark Time | |
| | Model | STS Time ↓ | SciFact Time ↓ | | |
| | ------------------------------- | ---------: | -------------: | | |
| | **TinyE5-L6-384 (Safetensors)** | 0.72s | 3.71s | | |
| | TinyE5-L6-384 (FP32 ONNX) | 8.82s | 265.58s | | |
| | TinyE5-L6-384 (INT8 ONNX) | 5.46s | 179.11s | | |
| > **Summary:** INT8 quantization reduces TinyE5-L6-384 from **86.2 MB to 21.8 MB (~74.7% smaller)**, lowers CPU inference latency from **2.35 ms/text to 0.77 ms/text (~67.2% lower)**, and increases CPU throughput from **424.7 to 1299.4 texts/s (~3.06× throughput)**. Session RAM also drops from **90.4 MB to 11.2 MB (~87.6% lower)**. STS Spearman decreases slightly from **0.8138 to 0.8058**, while SciFact Recall@10 improves from **0.7342 to 0.7599** and nDCG@10 improves from **0.5897 to 0.6020**. The all-MiniLM-L6-v2 baseline still achieves the highest overall quality, with **0.8194 STS Spearman, 0.7923 Recall@10, and 0.6494 nDCG@10**. | |
| ## Docker Example | |
| ### INT8 ONNX | |
| ```yaml | |
| services: | |
| embedding-server: | |
| image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.9 | |
| ports: | |
| - "80:80" | |
| volumes: | |
| - ./data:/data | |
| command: | |
| - --model-id | |
| - GrowBitLabs/tinye5 | |
| - --revision | |
| - int8-onnx | |
| - --pooling | |
| - mean | |
| ``` | |
| ### Available Variants | |
| All variants are published under the same Hugging Face repository: | |
| ```text | |
| GrowBitLabs/tinye5 | |
| ``` | |
| | Variant | Revision | Model | | |
| | ---------------- | ----------- | ------------------- | | |
| | Safetensors FP32 | `main` | `model.safetensors` | | |
| | ONNX FP32 | `fp32-onnx` | `onnx/model.onnx` | | |
| | ONNX INT8 | `int8-onnx` | `onnx/model.onnx` | | |
| ### Safetensors | |
| ```yaml | |
| command: | |
| - --model-id | |
| - GrowBitLabs/tinye5 | |
| - --revision | |
| - main | |
| - --pooling | |
| - mean | |
| ``` | |
| ### FP32 ONNX | |
| ```yaml | |
| command: | |
| - --model-id | |
| - GrowBitLabs/tinye5 | |
| - --revision | |
| - fp32-onnx | |
| - --pooling | |
| - mean | |
| ``` | |
| ### INT8 ONNX | |
| ```yaml | |
| command: | |
| - --model-id | |
| - GrowBitLabs/tinye5 | |
| - --revision | |
| - int8-onnx | |
| - --pooling | |
| - mean | |
| ``` | |
| For CPU deployment, the **INT8 ONNX** revision is recommended when model size and inference throughput are the priority. | |
| ## Attribution | |
| Developed by **[GrowBit Labs](https://growbitlabs.com)**. | |