Skip to content

Retrieval: BM25, Vector, Hybrid, Re-ranking

Vector search yetmez. BM25 + vector hybrid retrieval, cross-encoder re-ranking. Her birinin güçlü/zayıf yönü.

Şükrü Yusuf KAYA
11 min read
Intermediate

Retrieval Stratejileri

Sadece vector search yeterli değil. Modern RAG hybrid çalışır.

1. BM25 (Keyword Match)#

Klasik, hala güçlü. Tam kelime arama.
✅ "iPhone 16 Pro" gibi spesifik terimleri yakalar ✅ Embedding cache'i bypass eder ❌ Synonym yakalamaz

2. Vector Search (Semantic)#

Embedding cosine similarity.
✅ Synonym, paraphrase ✅ Cross-language ❌ Tam kelime kaçırabilir (numara, kod)

3. Hybrid (BM25 + Vector)#

İki yöntemi birleştir. Reciprocal Rank Fusion (RRF):
python
# RRF implementation
def rrf(rankings: dict[str, list[str]], k: int = 60) -> list[str]:
scores = {}
for method, ranked in rankings.items():
for rank, doc in enumerate(ranked):
scores[doc] = scores.get(doc, 0) + 1 / (k + rank + 1)
return sorted(scores, key=scores.get, reverse=True)
 
# Kullanım
bm25_top = ["d1", "d3", "d7"]
vector_top = ["d3", "d5", "d1"]
final = rrf({"bm25": bm25_top, "vector": vector_top})
# → d3 (her iki yöntemde üstte) → d1 → d5 → d7
Reciprocal Rank Fusion

4. Re-ranking (Cross-Encoder)#

İlk retrieval'da N=50 getir, sonra cross-encoder ile N=5'e indir.
Cross-encoder = sorgu + döküman'ı birlikte model'e ver, yüksek precision.

Vendor Reranker'ları#

  • Cohere Rerank v3
  • Voyage Rerank
  • Jina Rerank
Hızlı, API var. Ücretli ama ucuz.

Açık Kaynak#

  • bge-reranker-v2
  • mxbai-rerank
  • ColBERT
Self-host, GPU gerekir.
Production pattern: retriever (top 50) → reranker (top 10) → LLM. Bu pipeline %15-25 doğruluk artırır.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

Related Content

Connected pillar topics

Pillar topics this article maps to