Views
No views yet
| Metric | Original | Optimized | Improvement |
|---|---|---|---|
| Size | 465.2 MB | 113 MB | 75.7% reduction |
| Inference Speed | 52.0 ms | 6.6 ms | 7.8x faster |
| Accuracy | Baseline | 100% | Perfect retention |
| Format | PyTorch | ONNX + PyTorch | Multi-format |
indonesian-embedding-small/
├── pytorch/ # PyTorch SentenceTransformer model
│ ├── config.json
│ ├── model.safetensors
│ ├── tokenizer.json
│ └── ...
├── onnx/ # ONNX optimized models
│ ├── indonesian_embedding.onnx # FP32 version (449MB)
│ ├── indonesian_embedding_q8.onnx # 8-bit quantized (113MB)
│ └── tokenizer files
├── examples/ # Usage examples
├── docs/ # Additional documentation
├── eval/ # Evaluation results
└── README.md # This file1from sentence_transformers import SentenceTransformer
2
3# Load the model from Hugging Face Hub
4model = SentenceTransformer('your-username/indonesian-embedding-small')
5
6# Or load locally if downloaded
7# model = SentenceTransformer('indonesian-embedding-small/pytorch')
8
9# Encode sentences
10sentences = [
11 "AI akan mengubah dunia teknologi",
12 "Kecerdasan buatan akan mengubah dunia",
13 "Jakarta adalah ibu kota Indonesia"
14]
15
16embeddings = model.encode(sentences)
17print(f"Embeddings shape: {embeddings.shape}")
18
19# Calculate similarity
20from sklearn.metrics.pairwise import cosine_similarity
21similarity = cosine_similarity([embeddings[0]], [embeddings[1]])[0][0]
22print(f"Similarity: {similarity:.4f}")1import onnxruntime as ort
2import numpy as np
3from transformers import AutoTokenizer
4
5# Load quantized ONNX model (7.8x faster)
6session = ort.InferenceSession(
7 'indonesian-embedding-small/onnx/indonesian_embedding_q8.onnx',
8 providers=['CPUExecutionProvider']
9)
10
11# Load tokenizer
12tokenizer = AutoTokenizer.from_pretrained('indonesian-embedding-small/onnx')
13
14# Encode text
15text = "Teknologi AI sangat canggih"
16inputs = tokenizer(text, padding=True, truncation=True,
17 max_length=384, return_tensors="np")
18
19# Run inference
20outputs = session.run(None, {
21 'input_ids': inputs['input_ids'],
22 'attention_mask': inputs['attention_mask']
23})
24
25# Get embeddings (mean pooling)
26embeddings = outputs[0]
27attention_mask = inputs['attention_mask']
28masked_embeddings = embeddings * np.expand_dims(attention_mask, -1)
29sentence_embedding = np.mean(masked_embeddings, axis=1)
30
31print(f"Embedding shape: {sentence_embedding.shape}")| Text 1 | Text 2 | Similarity | Status |
|---|---|---|---|
| AI akan mengubah dunia | Kecerdasan buatan akan mengubah dunia | 0.801 | ✅ High |
| Jakarta adalah ibu kota | Kota besar dengan banyak penduduk | 0.450 | ✅ Medium |
| Teknologi sangat canggih | Kucing suka makan ikan | 0.097 | ✅ Low |
pip install sentence-transformers transformers torch numpy scikit-learnpip install onnxruntime transformers numpy scikit-learn1FROM python:3.9-slim
2COPY indonesian-embedding-small/ /app/model/
3RUN pip install onnxruntime transformers numpy
4WORKDIR /appindonesian_embedding_q8.onnx) with ONNX Runtime:1@misc{indonesian-embedding-small-2024,
2 title={Indonesian Embedding Model - Small: Optimized Semantic Similarity Model},
3 author={Fine-tuned from LazarusNLP/all-indo-e5-small-v4},
4 year={2024},
5 publisher={GitHub},
6 note={100% accuracy on Indonesian semantic similarity tasks}
7}