1.7 KiB
1.7 KiB
Hybrid Retrieval + Reranker (Persian-friendly)
این پایپلاین یک روش هیبریدی برای بازیابی و بازرتبهبندی نتایج است:
- Dense Retrieval با
sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
- Sparse Retrieval با TF-IDF (الگوی توکنسازی سازگار با فارسی)
- Fusion بر اساس وزندهی امتیازها (
--dense-alpha
) - Re-ranking با Cross-Encoder:
BAAI/bge-reranker-v2-m3
دادهٔ ورودی
فایل ./data/sentences_vector.json
با ساختار زیر:
[
{"sentence": "متن جمله ۱", "embedding": [0.1, -0.2, ...]},
{"sentence": "متن جمله ۲", "embedding": [0.05, 0.33, ...]}
]
نصب
pip install -U sentence-transformers transformers scikit-learn numpy torch
اجرا
python hybrid_retrieval_reranker.py --query "بهترین راه موفقیت چیست؟" --topk-dense 50 --topk-sparse 50 --pre-rerank-k 50 --final-k 5
آرگومانها
--query
: پرسش کاربر--data
: مسیر فایل داده (پیشفرض:./data/sentences_vector.json
)--topk-dense
،--topk-sparse
: تعداد نتایج اولیه از هر روش--pre-rerank-k
: تعداد کاندیدهای ورودی به ریرنکر--final-k
: تعداد نتایج نهایی--dense-alpha
: وزن امتیاز Dense در مرحله Fusion (۰ تا ۱)--device
:cuda
یاcpu
(در صورت عدم تعیین، خودکار)
خروجی
نتایج در ترمینال چاپ میشود. برای ذخیرهٔ JSON:
python hybrid_retrieval_reranker.py --query "..." --save-json output.json