RAG'de chunking stratejisi, hybrid search ve reranker neden önemlidir? Retrieval kalitesi düşükse ne yaparsınız?

Cevap

RAG sistemlerinde kötü cevapların çoğu LLM'den değil retrieval'dan kaynaklanır: doğru bilgi bağlama hiç gelmemiştir. Bu üç bileşen retrieval kalitesinin ana kaldıraçlarıdır.

Chunking

  • Çok küçük chunk: Bağlam kopar ("Bu oran %5'tir" ama hangi oran?).
  • Çok büyük chunk: Embedding birden çok konuyu ortalar, ilgisiz metin bağlamı doldurur.
  • Stratejiler: Sabit boyut + overlap (basit baseline), yapısal (başlık, paragraf, kod bloğu sınırları), semantik (cümle embedding'lerindeki kopuşlara göre), parent-child (küçük chunk ile ara, büyük ebeveyn bölümü bağlama ver), chunk'a doküman başlığı/özet ekleme (contextual retrieval).

Hybrid search

YöntemGüçlü olduğuZayıf olduğu
Dense (embedding)Eş anlamlılar, farklı ifadelerÜrün kodu, isim, nadir terim
Sparse (BM25)Tam kelime eşleşmesi, kodlarAnlamsal benzerlik
Hybrid (RRF ile birleşim)İkisinin avantajıEk altyapı

Reranker

Bi-encoder embedding'ler soru ve dokümanı ayrı ayrı kodlar, hızlıdır ama kaba sıralar. Cross-encoder reranker soru ve chunk'ı birlikte işler, çok daha doğru bir alaka skoru üretir. Ancak yavaştır, bu yüzden sadece ilk 20–100 adaya uygulanır. Genelde en yüksek getirili iyileştirmelerden biridir.

Retrieval kötüyse teşhis adımları

  1. Golden set ile recall@k ölç: doğru chunk ilk 20'de mi?
  2. Recall düşükse: chunking, embedding modeli (Türkçe performansı), hybrid search, query rewriting, HyDE (önce varsayımsal bir cevap üretip onunla aramak).
  3. Recall yüksek ama cevap kötüyse: reranker, daha az ama daha alakalı chunk, prompt.
  4. "Lost in the middle": Uzun bağlamda ortadaki bilgi kaçabilir. En alakalı chunk'ları başa veya sona yerleştirin.
  5. Metadata filtreleri (tarih, ürün, departman) arama uzayını daraltır.
def rrf(rankings, k=60):
    scores = {}
    for ranking in rankings:                 # her biri doc_id listesi
        for rank, doc in enumerate(ranking):
            scores[doc] = scores.get(doc, 0) + 1 / (k + rank + 1)
    return sorted(scores, key=scores.get, reverse=True)
  1. Şirket içi dokümanlar (Confluence, PDF, wiki) üzerinde soru cevaplayan bir RAG sistemi tasarlayın.ZorLLM & Üretken YZYapay Zeka
  2. Hangi prompt engineering tekniklerini kullanırsınız? Few-shot ve chain-of-thought ne zaman işe yarar?KolayLLM & Üretken YZYapay Zeka
  3. LLM'lerde temperature, top-k ve top-p (nucleus) sampling parametreleri ne işe yarar?KolayLLM & Üretken YZYapay Zeka
  4. Production'daki bir LLM uygulamasında maliyeti ve gecikmeyi (latency) nasıl düşürürsünüz?OrtaLLM & Üretken YZYapay Zeka
  5. Prompt injection nedir? LLM tabanlı bir uygulamayı ve agent'ı buna karşı nasıl korursunuz?ZorLLM & Üretken YZYapay Zeka
  6. Bir LLM uygulamasını nasıl değerlendirirsiniz? Benchmark'lar ve LLM-as-judge yaklaşımının sınırlamaları nelerdir?ZorLLM & Üretken YZYapay Zeka

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle