Diba-Embed · دیبا-امبد

A Persian-first text embedding model by Dibachain مدل نمایش برداری متن، فارسی‌محور، ساخته‌ی دیباچین

Website · Chat demo (GPU) · Chat demo (CPU) · Diba-Base


English

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.

What it can do

  • Persian semantic search — find the most relevant document for a Persian question, even when the wording differs.
  • Retrieval for RAG — retrieve the right passages to ground a chat model such as Diba-Base on your own documents.
  • Cross‑lingual matching — a Persian query can find an English passage and vice‑versa.
  • Clustering & deduplication — group similar tickets, comments, or products; detect near‑duplicates.
  • Reranking — order candidate passages by relevance to a query.

Specifications

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

Persian retrieval benchmark

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.

Quick start

Diba-Embed ships with the Diba model definition, so pass trust_remote_code=True when 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).

Run with llama.cpp (GGUF)

Diba-Embed ships ready-to-run GGUF files for CPU inference with llama.cpp — no Python required.

File Size Best for
Diba-Embed-Q8_0.gguf ~0.6 GB recommended — near‑full quality
Diba-Embed-Q4_K_M.gguf ~0.4 GB smallest, fastest
Diba-Embed-f16.gguf ~1.2 GB full precision
# start an OpenAI-compatible embeddings server on CPU
llama-server -m Diba-Embed-Q8_0.gguf --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.gguf

Intended use and limitations

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)، تطبیق پرسش‌های پرتکرار، خوشه‌بندی، حذف موارد تکراری و بازچینش نتایج استفاده کنید؛ به فارسی، به انگلیسی و میان این دو.

چه کارهایی انجام می‌دهد

  • جست‌وجوی معنایی فارسی: یافتن مرتبط‌ترین سند برای یک پرسش فارسی، حتی وقتی کلمه‌ها فرق دارند.
  • بازیابی برای RAG: پیدا کردن بخش‌های درست از اسناد شما تا پاسخ یک مدل گفتگو مانند Diba-Base بر پایه‌ی همان اسناد ساخته شود.
  • تطبیق میان‌زبانی: یک پرسش فارسی می‌تواند سند انگلیسی را پیدا کند و برعکس.
  • خوشه‌بندی و حذف تکراری: گروه‌بندی تیکت‌ها، نظرها یا محصولات مشابه و تشخیص موارد نزدیک به هم.
  • بازچینش نتایج: مرتب کردن بخش‌های نامزد بر اساس میزان ارتباط با پرسش.

مشخصات

تعداد پارامتر حدود ۰٫۶ میلیارد
اندازه‌ی بردار ۱۰۲۴ (قابل کاهش تا ۳۲ با روش 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» استفاده کنید و اسناد را بدون آن بردار کنید. بردارها را نرمال کنید و بر اساس شباهت کسینوسی مرتب نمایید.

اجرا با llama.cpp (GGUF)

دیبا-امبد فایل‌های GGUF آماده برای اجرا روی CPU با llama.cpp دارد؛ بدون نیاز به پایتون.

فایل حجم مناسبِ
Diba-Embed-Q8_0.gguf حدود ۰٫۶ گیگابایت پیشنهادی — کیفیت نزدیک به کامل
Diba-Embed-Q4_K_M.gguf حدود ۰٫۴ گیگابایت کوچک‌ترین و سریع‌ترین
Diba-Embed-f16.gguf حدود ۱٫۲ گیگابایت دقت کامل
# اجرای سرور سازگار با OpenAI روی CPU
llama-server -m Diba-Embed-Q8_0.gguf --embedding --pooling last -c 2048 --port 8080

لینک مستقیم دانلود: https://huggingface.co/Dibachain/Diba-Embed/resolve/main/Diba-Embed-Q8_0.gguf

کاربرد و محدودیت‌ها

دیبا-امبد برای جست‌وجو و بازیابی ساخته شده، نه برای تولید متن؛ خروجی آن بردار است، نه نوشته. بهترین کیفیت روی فارسی عمومی و رسمی و روی حوزه‌های آزمون بالاست؛ متن‌های بسیار تخصصی یا پرنویز ممکن است به تنظیم اختصاصی نیاز داشته باشند. مدل سوگیری‌های موجود در داده‌ی خود را بازتاب می‌دهد. برای تولید و گفتگو از Diba-Base استفاده کنید.


Diba family · خانواده‌ی دیبا — Diba-Base · Diba-Embed · Diba-Vision · Diba-Code · Diba-TTS · Diba-STT · Diba-Image · Diba-ImageEdit

Built by Dibachain · ساخته‌ی دیباچین

Downloads last month
-
Safetensors
Model size
0.6B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support