sentence-transformers
Safetensors
bert
embeddings
retrieval
northeast-india
low-resource
multilingual
RAG
Instructions to use MWirelabs/ne-embed with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use MWirelabs/ne-embed with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("MWirelabs/ne-embed") 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
File size: 5,607 Bytes
8246b15 36a159c 8246b15 36a159c 8246b15 dcb6ca8 8246b15 dcb6ca8 8246b15 dcb6ca8 8246b15 dcb6ca8 8246b15 dcb6ca8 8246b15 36a159c 8246b15 36a159c 8246b15 dcb6ca8 36a159c 8246b15 dcb6ca8 8246b15 dcb6ca8 8246b15 36a159c 8246b15 d5031eb 36a159c 8246b15 36a159c dcb6ca8 36a159c 8246b15 36a159c 8246b15 36a159c 8246b15 36a159c 8246b15 36a159c d5031eb 36a159c 8246b15 36a159c 8246b15 36a159c 8246b15 36a159c 8246b15 36a159c 8246b15 36a159c 8246b15 36a159c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | ---
license: cc-by-4.0
language:
- as
- brx
- grt
- kha
- lus
- mni
- njz
- pbv
- trp
- nag
tags:
- sentence-transformers
- embeddings
- retrieval
- northeast-india
- low-resource
- multilingual
- RAG
base_model: sentence-transformers/LaBSE
---
<p align="center">
<img src="https://huggingface.co/MWirelabs/ne-embed/resolve/main/Ne_embed_Mwirelabs_banner.jpg" alt="NE-Embed Banner">
</p>
<div align="center">
### Purpose-built Multilingual Embeddings for Northeast Indian Languages
> **10 languages • 201k parallel pairs • 768 dimensions • Built on LaBSE**
Semantic search, Retrieval and RAG for low-resource Northeast Indian languages.
</div>
---
## Highlights
- Supports **10 Northeast Indian languages**
- Optimized for **Semantic Search, Retrieval and RAG**
- Up to **7× higher retrieval accuracy** than raw LaBSE on low-resource languages
- Built on **sentence-transformers/LaBSE**
- Trained on **201,738 balanced English ↔ Northeast language parallel pairs**
- Released under the **CC-BY-4.0** license
## What is NE-Embed?
NE-Embed is a multilingual sentence embedding model designed for semantic understanding across Northeast Indian languages. It is optimized for **semantic search**, **dense retrieval**, **Retrieval-Augmented Generation (RAG)**, and **cross-lingual information retrieval**, where general-purpose multilingual embedding models often perform poorly.
The model is fine-tuned from **LaBSE** using **201,738 balanced English↔Northeast language parallel pairs** spanning **10 languages**. It substantially improves retrieval quality for several low-resource languages—including Garo, Khasi, Nyishi, Pnar, and Kokborok—while maintaining strong multilingual alignment.
---
## Why NE-Embed?
General-purpose multilingual embedding models are trained on hundreds of languages, but many Northeast Indian languages receive little or no representation during training. As a result, semantically similar sentences are often mapped far apart, leading to poor retrieval performance.
NE-Embed addresses this gap through targeted contrastive fine-tuning on balanced parallel data, producing embeddings that better capture semantic similarity for low-resource Northeast Indian languages while preserving multilingual compatibility.
---
## Supported Languages
| Code | Language | Script | Tier | Training Pairs |
|------|----------|--------|------|----------------|
| `asm` | Assamese | Bengali | ✅ Supported | 25,000 |
| `brx` | Bodo | Devanagari | ✅ Supported | 25,000 |
| `grt` | Garo | Latin | ✅ Supported | 25,000 |
| `kha` | Khasi | Latin | ✅ Supported | 25,000 |
| `lus` | Mizo | Latin | ✅ Supported | 25,000 |
| `mni` | Meitei | Meitei Mayek | ✅ Supported | 25,000 |
| `njz` | Nyishi | Latin | ✅ Supported | 25,000 |
| `trp` | Kokborok | Latin | ⚠️ Limited | 12,545 |
| `pbv` | Pnar | Latin | ⚠️ Limited | 6,034 |
| `nag` | Nagamese | Latin | ⚠️ Limited | 1,996 |
> **Supported** = strong retrieval performance. **Limited** = model has coverage but quality is lower; use with caution in production.
---
## Performance
Evaluated on 500 samples per language. CLRI = Cross-Language Retrieval Interference (lower is better).
| Language | R@1 (Base) | R@1 (NE-Embed) | CLRI (Base) | CLRI (NE-Embed) |
|----------|-----------|----------------|-------------|-----------------|
| Assamese | 95.6 | **97.4** | 1.8% | 4.6% |
| Bodo | 55.8 | **99.8** | 61.0% | **3.0%** |
| Garo | 13.2 | **90.8** | 88.8% | **3.0%** |
| Khasi | 28.6 | **95.6** | 65.0% | **3.4%** |
| Mizo | 46.6 | **91.8** | 58.4% | **9.4%** |
| Meitei | 13.6 | **34.2** | 90.8% | **19.8%** |
| Nyishi | 10.2 | **75.0** | 71.0% | **17.4%** |
| Pnar | 27.2 | **86.2** | 79.6% | **8.0%** |
| Kokborok | 26.4 | **71.6** | 63.8% | **11.8%** |
| Nagamese | 77.0 | **88.0** | 17.8% | **8.4%** |
> Base = raw LaBSE zero-shot. All CLRI reductions represent genuine cross-lingual confusion fixed by fine-tuning.
---
## Quick Start
```python
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("MWirelabs/ne-embed")
sentences = [
"Where is the nearest hospital?", # English
"Ngi lah ia shong ha ki shnong baroh", # Khasi
"Pilakchin an·senganiko man·na am·tokenga.", # Garo
]
embeddings = model.encode(sentences, normalize_embeddings=True)
similarities = model.similarity(embeddings, embeddings)
print(similarities)
```
### Recommended for RAG / Hybrid Retrieval
```python
# Hybrid: NE-Embed dense + BM25 char 3-gram sparse
score = 0.7 * ne_embed_score + 0.3 * bm25_score
```
---
## Training
- **Base model:** `sentence-transformers/LaBSE`
- **Loss:** `MultipleNegativesRankingLoss`
- **Data:** 201,738 English↔NE language parallel pairs, capped at 25k per language to prevent Assamese attractor bias
- **Epochs:** 3 · **Batch size:** 64 · **Max seq length:** 128
- **Hardware:** 1× NVIDIA A40 (48 GB) · **Training time:** ~1.3 hours
---
## Intended Uses
- Semantic search
- Dense retrieval
- RAG
- Cross-lingual retrieval
- Clustering
---
## Citation
```bibtex
@misc{mwirelabs2026neembed,
title = {NE-Embed: Multilingual Text Embeddings for Northeast Indian Languages},
author = {MWire Labs},
year = {2026},
publisher = {HuggingFace},
howpublished = {\url{https://huggingface.co/MWirelabs/ne-embed}},
note = {CC-BY-4.0}
}
```
---
<div align="center">
Built with ♥ in Shillong, Meghalaya · [MWire Labs](https://mwirelabs.in) · Part of the **NE-Stack**
*NE-LID · NE-BERT · NE-Embed · Kren · Aganbo · Klam*
</div> |