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

نخستین مدل امبدینگِ فارسی‌محورِ دیباچین برای جست‌وجوی معنایی و RAG فارسی.

دیبا مدل بردارسازی متن (امبدینگ) 🤗 Hugging Face ▶ دموی زنده

دیبا-امبد (Diba-Embed) نخستین مدلِ بردارسازیِ متن (Text Embedding) شرکت دیباچین و اولین مدلِ امبدینگِ خانوادهٔ دیباست — مدلی فارسی‌محور که متنِ فارسی و انگلیسی را به بردارهای عددی تبدیل می‌کند تا متن‌های هم‌معنا در فضای برداری به هم نزدیک شوند. ویژهٔ کاربردهای فارسی‌زبان و ایرانی، جایی که بیشترِ مدل‌های متن‌باز ضعیف عمل می‌کنند. از آن برای جست‌وجوی معنایی، RAG، تطبیقِ پرسش‌های پرتکرار، خوشه‌بندی و بازچینشِ نتایج استفاده کنید.

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

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

مشخصات فنی

نوعمدل بردارسازیِ متن (متن ← بردار)
تعداد پارامترحدود ۰٫۶ میلیارد
اندازهٔ بردار۱۰۲۴ (قابل کاهش تا ۳۲ با روش Matryoshka)
بیشینهٔ طول ورودی۳۲٬۷۶۸ توکن
زبان‌هاچندزبانه، بهینه برای فارسی و انگلیسی
حجمحدود ۱٫۲ گیگابایت · قابل اجرا روی CPU
سنجهٔ شباهتکسینوسی
مجوزApache 2.0 (متن‌باز)

آزمونِ بازیابیِ فارسی

روی ۴۰۰ جفت پرسش و پاسخِ فارسی (از دادهٔ مستندِ خودِ دیبا: تاریخ ایران، موضوعاتِ معاصر و پرسش‌های شرکت دیباچین) سنجیده شد. هر پرسش باید پاسخِ درستِ خود را از میان کلِ مجموعه بازیابی کند — روی CPU و بدون آموزشِ اختصاصی.

معیارنتیجه
Recall@1 ۸۲٪
Recall@3 ۹۵٪
MRR ۰٫۸۹

در ۹۵٪ موارد، پاسخِ درست میان سه نتیجهٔ نخست است؛ برای جست‌وجو و RAG فارسیِ قابلِ اتکا کافی است.

شروع سریع

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)   # بیشترین امتیاز به سند درست اشاره می‌کند
llama.cpp (سرور امبدینگِ سازگار با OpenAI روی CPU)
llama-server -m Diba-Embed-Q8_0.gguf --embedding --pooling last -c 2048 --port 8080

راهنمای کامل، فایل‌های GGUF/ONNX و نمونه‌های بیشتر در کارتِ مدل روی Hugging Face در دسترس است.

دموها و نمایشِ زنده

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

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

پرسش‌های متداول

دیبا-امبد چه کاری انجام می‌دهد؟

متن فارسی و انگلیسی را به بردار عددی تبدیل می‌کند تا بتوان جست‌وجوی معنایی، RAG، خوشه‌بندی و بازچینش انجام داد. خروجی آن بردار است، نه متن.

آیا دیبا-امبد برای RAG فارسی مناسب است؟

بله؛ در آزمونِ بازیابیِ فارسی به Recall@3 برابر ۹۵٪ و MRR برابر ۰٫۸۹ رسیده که برای جست‌وجو و RAG فارسیِ قابل‌اتکا کافی است.

اندازهٔ بردارِ خروجی چقدر است؟

۱۰۲۴ بُعد که با روش Matryoshka می‌توان تا ۳۲ بُعد کاهشش داد تا حافظه و سرعت بهینه شود.

آیا روی CPU اجرا می‌شود؟

بله؛ حجمِ وزن‌ها حدود ۱٫۲ گیگابایت است و فایل‌های GGUF آماده برای اجرای CPU با llama.cpp دارد.