Downloads · 30 days
647
100% of all-time downloads
Dibachain/Diba-Embed
Diba-Embed is a sentence similarity model from Dibachain. Use it when you need a score for how close two texts are. It is set up for sentence-transformers. The card lists the license as apache-2.0.
Downloads · 30 days
647
100% of all-time downloads
All-time downloads
647
Public
Parameters
596M
3.4 GB on disk
Likes
1
Public
Click a slice to open those files.
.bin2.2 GB · 65%
From the Hugging Face model README
A Persian-first text embedding model by Dibachain مدل نمایش برداری متن، فارسیمحور، ساختهی دیباچین
Website · 🤖 Agent · Chat demo (GPU) · Chat demo (CPU) · Diba-Base
</div>Diba-Embed is the first text-embedding model from Dibachain and the first embedding model in the Diba family — a Persian-first model that turns Persian and English text into dense vectors, placing similar meanings close together. Built by Dibachain (dibachain.ir) and tuned and packaged for Iranian, Persian-language use cases where most open models fall short.
Use it to build semantic search, retrieval‑augmented generation (RAG), FAQ matching, clustering, deduplication, and reranking — in Persian, in English, and across the two.
| Parameters | ~0.6B |
| Embedding size | 1024 (Matryoshka: truncatable down to 32) |
| Max input length | 32,768 tokens |
| Languages | Multilingual, optimized for Persian + English |
| Weights | ~1.2 GB · runs on CPU |
| Similarity | cosine |
| License | Apache 2.0 |
Measured on 400 Persian question/answer pairs drawn from Diba's own grounded data (Iran history, contemporary topics, and Dibachain company Q/A). Each question must retrieve its correct passage out of the full pool. Greedy, on CPU, no task‑specific training:
| Metric | Score |
|---|---|
| Recall@1 | 82% |
| Recall@3 | 95% |
| MRR | 0.89 |
In 95% of cases the correct passage is among the top three results — enough to drive reliable Persian RAG and search.
Diba-Embed ships with the Diba model definition, so pass
trust_remote_code=Truewhen loading.
sentence-transformers (recommended):
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Dibachain/Diba-Embed", trust_remote_code=True)
# queries use the built-in "query" prompt; documents are embedded as-is
queries = ["پایتخت ایران کجاست؟"]
documents = [
"تهران پایتخت و بزرگترین شهر ایران است.",
"اصفهان یکی از شهرهای تاریخی ایران است.",
]
q = model.encode(queries, prompt_name="query", normalize_embeddings=True)
d = model.encode(documents, normalize_embeddings=True)
scores = q @ d.T
print(scores) # highest score points to the matching document
transformers (last-token pooling, for full control):
import torch, torch.nn.functional as F
from transformers import AutoModel, AutoTokenizer
tok = AutoTokenizer.from_pretrained("Dibachain/Diba-Embed", padding_side="left")
model = AutoModel.from_pretrained("Dibachain/Diba-Embed", trust_remote_code=True).eval()
def embed(texts, is_query=False):
if is_query:
texts = [f"Instruct: Given a query, retrieve passages that answer it\nQuery: {t}" for t in texts]
enc = tok(texts, padding=True, truncation=True, max_length=512, return_tensors="pt")
with torch.no_grad():
h = model(**enc).last_hidden_state
lengths = enc["attention_mask"].sum(1) - 1
v = h[torch.arange(h.size(0)), lengths] # last non-pad token
return F.normalize(v, dim=1)
sim = embed(["پایتخت ایران؟"], is_query=True) @ embed(["تهران پایتخت ایران است."]).T
print(sim)
Tip: always add the query instruction to search queries; embed documents without it. Normalize vectors and rank by cosine (dot product of normalized vectors).
Diba-Embed ships ready-to-run llama.cpp files (GGUF format; the .bin files load directly with -m) for CPU inference with llama.cpp — no Python required.
| File | Size | Best for |
|---|---|---|
diba-embed-q8_0.bin | ~0.6 GB | recommended — near‑full quality |
diba-embed-q4_k_m.bin | ~0.4 GB | smallest, fastest |
diba-embed-f16.bin | ~1.2 GB | full precision |
# start an OpenAI-compatible embeddings server on CPU
llama-server -m diba-embed-q8_0.bin --embedding --pooling last -c 2048 --port 8080
# then request embeddings
curl http://localhost:8080/v1/embeddings -H "Content-Type: application/json" -d '{"input": ["تهران پایتخت ایران است", "capital of Iran"]}'
Direct download: https://huggingface.co/Dibachain/Diba-Embed/resolve/main/diba-embed-q8_0.bin
Diba-Embed is built for search and retrieval, not for generation — it produces vectors, not text. Quality is strongest on general and formal Persian and on the domains in the benchmark above; very specialized or noisy text may need domain adaptation. It reflects biases present in its training data. For generation and chat, use Diba-Base.
دیبا-امبد نخستین مدل بردارسازی متن (Text Embedding) شرکت دیباچین و اولین مدل امبدینگ خانوادهی دیبا است — مدلی فارسیمحور که متن فارسی و انگلیسی را به بردارهای عددی تبدیل میکند تا متنهای هممعنا در فضای برداری به هم نزدیک شوند. ساختهی شرکت دیباچین (dibachain.ir) و ویژهی کاربردهای فارسیزبان و ایرانی، جایی که بیشتر مدلهای متنباز ضعیف عمل میکنند.
از آن میتوانید برای جستوجوی معنایی، تولید پاسخ مبتنی بر بازیابی (RAG)، تطبیق پرسشهای پرتکرار، خوشهبندی، حذف موارد تکراری و بازچینش نتایج استفاده کنید؛ به فارسی، به انگلیسی و میان این دو.
| تعداد پارامتر | حدود ۰٫۶ میلیارد |
| اندازهی بردار | ۱۰۲۴ (قابل کاهش تا ۳۲ با روش Matryoshka) |
| بیشینهی طول ورودی | ۳۲٬۷۶۸ توکن |
| زبانها | چندزبانه، بهینه برای فارسی و انگلیسی |
| حجم وزنها | حدود ۱٫۲ گیگابایت · قابل اجرا روی CPU |
| سنجهی شباهت | کسینوسی |
| مجوز | Apache 2.0 |
روی ۴۰۰ جفت پرسش و پاسخ فارسی از دادهی مستند خود دیبا (تاریخ ایران، موضوعات معاصر و پرسشهای شرکت دیباچین) سنجیده شد. هر پرسش باید پاسخ درست خود را از میان کل مجموعه بازیابی کند. بدون هیچ آموزش اختصاصی و روی CPU:
| معیار | نتیجه |
|---|---|
| Recall@1 | ۸۲٪ |
| Recall@3 | ۹۵٪ |
| MRR | ۰٫۸۹ |
در ۹۵ درصد موارد، پاسخ درست میان سه نتیجهی نخست است؛ برای جستوجو و RAG فارسی قابل اتکاست.
دیبا-امبد با تعریف مدل دیبا منتشر شده است؛ هنگام بارگذاری
trust_remote_code=Trueرا بدهید.
با sentence-transformers (پیشنهادی):
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Dibachain/Diba-Embed", trust_remote_code=True)
queries = ["پایتخت ایران کجاست؟"]
documents = [
"تهران پایتخت و بزرگترین شهر ایران است.",
"اصفهان یکی از شهرهای تاریخی ایران است.",
]
q = model.encode(queries, prompt_name="query", normalize_embeddings=True)
d = model.encode(documents, normalize_embeddings=True)
print(q @ d.T) # بیشترین امتیاز به سند درست اشاره میکند
نکته: برای پرسشهای جستوجو حتماً از دستور «query» استفاده کنید و اسناد را بدون آن بردار کنید. بردارها را نرمال کنید و بر اساس شباهت کسینوسی مرتب نمایید.
دیبا-امبد فایلهای GGUF آماده برای اجرا روی CPU با llama.cpp دارد؛ بدون نیاز به پایتون.
| فایل | حجم | مناسبِ |
|---|---|---|
diba-embed-q8_0.bin | حدود ۰٫۶ گیگابایت | پیشنهادی — کیفیت نزدیک به کامل |
diba-embed-q4_k_m.bin | حدود ۰٫۴ گیگابایت | کوچکترین و سریعترین |
diba-embed-f16.bin | حدود ۱٫۲ گیگابایت | دقت کامل |
# اجرای سرور سازگار با OpenAI روی CPU
llama-server -m diba-embed-q8_0.bin --embedding --pooling last -c 2048 --port 8080
لینک مستقیم دانلود: https://huggingface.co/Dibachain/Diba-Embed/resolve/main/diba-embed-q8_0.bin
دیبا-امبد برای جستوجو و بازیابی ساخته شده، نه برای تولید متن؛ خروجی آن بردار است، نه نوشته. بهترین کیفیت روی فارسی عمومی و رسمی و روی حوزههای آزمون بالاست؛ متنهای بسیار تخصصی یا پرنویز ممکن است به تنظیم اختصاصی نیاز داشته باشند. مدل سوگیریهای موجود در دادهی خود را بازتاب میدهد. برای تولید و گفتگو از Diba-Base استفاده کنید.
Diba family · خانوادهی دیبا — Diba-Base · Diba-Embed · Diba-Vision · Diba-Code · Diba-TTS · Diba-STT · Diba-Image · Diba-ImageEdit
</div>