Banglish Embed
One space. Two scripts.
কারো কাজ করলে বলবেন প্লিজ
Karo kaj korle bolben please
Search in either. Find both.
Banglish e
ki eta? Bangla ar Banglish — ek kotha duivabe likhle, model duitake ek jaygay rakhe. Tai Banglish diye search korle Bangla lekha o paba.
ki lagbe? pip install sentence-transformers, ar 1 GB jayga. Kono
GPU lage na — nijer computer er CPU tei cholbe, offline.
mone rakho: choto lekhar jonno — ek-duita line. Lomba pera'r jonno na.
Use it
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("sifat-febo/banglish-embed")
v = model.encode(["Karo kaj korle bolben please",
"কারো কাজ করলে বলবেন প্লিজ"])
model.similarity(v[0], v[1])
0.95 GB. Runs on a personal computer's CPU. No GPU. No account. No internet.
Why
We write Banglish. Our data is Bengali. Nothing matches.
Now it does.
How good
One Bengali sentence. 1,999 Banglish ones to choose from.
It picks the right partner first, 199 times out of 200.
| Bengali → Banglish | Banglish → Bengali | Size | |
|---|---|---|---|
| this model | 0.995 | 0.992 | 0.95 GB |
| banglish-embed-minilm-small | 0.988 | 0.986 | 0.47 GB |
| banglish-embed-tiny | 0.990 | 0.987 | 0.012 GB |
The same 2,000 pairs as the previous release, none of which any version of the model was trained on. The misses fell from 62 to 26 — more than half of them gone. And we read all 26 by hand: most are test rows that cannot be won (a name anonymized on one side only, two near-identical sentences fighting over first place, one line of corrupted emoji). On clean sentences it is close to unbeaten.
What changed
The previous release was a 12 MB model built from scratch. This one is MuRIL, further pretrained on Banglish and then trained on the same pairs with the same recipe. A gigabyte where the original was 12 MB — and less than half the misses. And now a stock BERT, so any tool that speaks sentence-transformers or plain transformers loads it.
The 12 MB one now has its own home: banglish-embed-tiny — eighty times smaller, half a point behind, and it runs in a browser. banglish-embed-minilm-small is the drop-in one: it keeps the tokenizer and the 384 dimensions of a widely used multilingual embedder, so a pipeline already built around that model swaps this in and reads Banglish, with nothing else to change and nothing to fine-tune.
The backbone ships on its own as banglish-encoder — fine-tune it for anything Banglish.
Limits
About sixty words, in either script, then it truncates. It answers one question and no others: do these two sentences mean the same thing.
Fine print
Both releases were scored on the exact same 2,000 pairs, unwinnable rows included — nothing was dropped to raise a number. Treat 99.5% as what it is: first place ahead of the other 1,999 sentences, counted the hard way (a tie counts as a miss).
AI Disclosure
The author designed the system, chose the base models, ran all training and measurement on the author's own machine, read the models' output, and chose what to publish and what to withhold. Claude Code (Anthropic) was used as a coding and writing tool under that direction.
License
Apache 2.0. Base model MuRIL (Google, Apache 2.0). Pair data from BanglaTLit (MIT).
@misc{banglishembed2026,
author = {Sifat Febo},
title = {Banglish Embed: one space, two scripts},
year = {2026},
url = {https://huggingface.co/sifat-febo/banglish-embed}
}