Temel RAG pipeline'i prototip icin yeterli olsa da kurumsal trafik ve heterojen doküman koleksiyonlarinda recall ve precision hizla duser. Ileri RAG teknikleri chunking, reranking ve hibrit arama ekseninde retrieval kalitesini artirir; generate asamasina giden bağlam daha temiz ve daha alakali hale gelir. Bu yazida her tekniğin çalışma prensibi, maliyet etkisi ve üretim tuzaklari ele alinir.
Semantic ve yapilandirilmis chunking
Sabit boyutlu chunking hızlı uygulanir ancak tablo, kod blogu ve hukuki madde yapisini bozar. Semantic chunking ardisik cumlelerin embedding benzerligini olcer; benzerlik dusus noktasinda parça sınırı cizer. LangChain SemanticChunker veya llama-index SemanticSplitter bu mantigi uygular. Maliyet, her cumle cifti icin embedding çağrısı gerektirmesidir; büyük arsivlerde batch işleme sarttir.
Yapilandirilmis chunking doküman turune gore farklı kurallar uygular: Markdown basliklari sınır olarak kullanılır, HTML'de h2/h3 bloklari korunur, PDF'lerde layout analizi ile tablo ayri chunk olur. Kod dosyalarinda fonksiyon veya sınıf bazli bolme sembol tablosunu bozmaz. Parent-child chunk iliskisi kurulabilir: küçük child chunk arama icin, büyük parent chunk LLM baglami icin retrieve sonrasi yuklenir. Bu pattern özellikle uzun politika dokumanlarinda etkilidir.
Chunk metadata zenginlestirme
- source_path: Orijinal dosya ve versiyon bilgisi
- heading_trail: Bölüm baslik zinciri (H1 > H2 > H3)
- token_count: Dinamik butce planlamasi icin
- content_type: prose, table, code, faq
- freshness_score: Tarih bazli agirliklandirma icin
Cross-encoder reranking
Bi-encoder embedding aramasi hızlıdır ama soru ile doküman arasindaki etkilesimi sinirli modeller. Cross-encoder reranker soru ve aday parcayi birlikte isler; daha yüksek kaliteli relevance skoru üretir. Tipik akis: vektor arama ile top 50 veya 100 aday al, reranker ile top 5'e indir, LLM'e gonder. Cohere Rerank, bge-reranker ve ms-marco egitimli modeller yaygın seceneklerdir.
Reranking gecikmeyi artirir. top_n=50 ve batch size=16 ile ortalama ek gecikme yuz ile iki yuz milisaniye arasinda kalabilir. Latency kritik uygulamalarda iki asamali retrieval kullanılır: hızlı birinci asama düşük n, ikinci asama yalnizca düşük guven skorlu sorgularda devreye girer. Rerank skorlari loglanarak esik degeri zamanla ayarlanir.
candidates = vector_search(query, top_k=80)
pairs = [(query, c.text) for c in candidates]
scores = reranker.predict(pairs)
ranked = sorted(zip(candidates, scores), key=lambda x: x[1], reverse=True)
final = [c for c, s in ranked[:8] if s > 0.35]
Hibrit arama: vektor + BM25
Vektor arama anlamsal benzerligi yakalar; BM25 kelime duzeyinde eslesmeyi guclendirir. Ürün kodu, hata kodu ve özel isim gibi birebir eslesme gerektiren sorgularda saf vektor arama yetersiz kalir. Hibrit arama her iki skoru birlestirir. Reciprocal Rank Fusion (RRF) veya agirlikli linear kombinasyon yaygın yontemlerdir.
RRF formulu basit ve parametre duyarliligi düşüktür: her aday icin 1/(k+rank) skorlari toplanir; k genelde 60 alinir. Elasticsearch ve OpenSearch hem BM25 hem vektor alanini destekler; pgvector ile BM25 icin tsvector kolonu eklenebilir. Hibrit aramanin dezavantaji index bakimidir: ayni doküman hem vektor hem ters index icin güncellenmelidir.
Query routing ve koleksiyon seçimi
Tek bir index tüm soru turlerine yetmez. Query router soruyu siniflandirir: FAQ, teknik runbook, satış materyali veya politika. Her sınıf farklı index, farklı chunk parametresi ve farklı rerank esigi kullanabilir. Router küçük bir classifier LLM veya embedding tabanli kNN ile calisabilir. Yanlış routing recall'u dusurur; router kararlarinin yüzde besi insan denetimine acilmalidir.
Multi-index retrieval paralel calistirilir; sonuçlar RRF ile birlestirilir. Bu yaklaşım organizasyonel silolari (Confluence, SharePoint, Git repo) tek arayuzde toplar. Her kaynak icin ayri ingestion pipeline olmasina ragmen retrieval API tektir.
Contextual compression ve filtreleme
Retrieve edilen parçalar hala gereksiz cumleler icerebilir. Contextual compression her parcayi soruya gore ozetler veya ilgisiz cumleleri cikarir. LLM tabanli compressor kaliteli ama pahalidir; extractive yöntemler (TF-IDF cumle seçimi) daha ucuzdur. Compression ratio ile faithfulness arasinda trade-off vardir; cok agresif sikistirma kritik detay kaybettirir.
Self-query filtreleme kullanıcı sorusundan metadata filtresi cikarir: tarih araligi, departman, ürün adi. Bu LLM adimini retrieval oncesine koymak aday havuzunu daraltir ve reranker yukunu azaltir.
Ölçeklendirme ve index performansi
Milyonlarca chunk'ta HNSW parametreleri (M, efConstruction) index suresi ile sorgu kalitesi arasinda denge kurar. Segment birlestirme, silinen dokumanlarin fiziksel temizligi ve embedding model versiyon degisikligi operasyonel gorevlerdir. Embedding model degistiginde re-embedding gerekir; blue-green index stratejisi kesinti olmadan geçiş sağlar.
Batch ingestion sirasinda rate limit ve vektor store yazma throughput'u darbogaz olur. Paralel worker sayisi embedding API kotasi ile sinirlanmalidir. Doküman basarisizlik kuyrugu tekrar deneme ve dead letter log tutmalidir.
Metrik hedefleri ve A/B test
Ileri RAG yatiriminin geri donusunu olcmek icin kontrol (naive RAG) ve tedavi (hibrit + rerank) gruplari karsilastirilir. Birincil metrik faithfulness ve kullanıcı thumbs-up orani; ikincil metrik p95 latency ve sorgu basina maliyet. Rerank top_k degeri ve RRF agirliklari grid search yerine bayesian optimizasyon ile aranabilir.
Regression alarmi: context recall bir haftada yüzde bes duserse son deployment veya veri kaynagi degisikligi incelenir. Chunk parametre degisikligi her zaman offline set uzerinde faithfulness dususu olmadan canliya alinmaz.
Yaygın hatalar
Reranker olmadan top_k'yi 50'ye cikarmak gurultuyu LLM'e tasir ve maliyeti artirir. Hibrit aramada BM25 agirligini calibrasyon yapmadan yüzde 50 vermek teknik kod aramalarinda vektor sinyalini ezer. Parent-child iliskisinde yalnizca child dondurulup parent unutulursa bağlam eksik kalir. Semantic chunking'i tablo agirlikli PDF'lere kör uygulamak hucreleri parcalara boler.
Pratik mimari ozeti
Ingestion: tur bazli chunker + zengin metadata. Index: vektor + BM25 (veya tsvector). Query: opsiyonel router, multi-query genişletme, paralel hibrit arama top 80. Post-retrieval: cross-encoder rerank top 8, skor esigi, parent chunk genişletme. Generate: kaynak zorunlu prompt, citation dogrulama. Bu zincir tipik kurumsal wiki plus runbook ortaminda naive RAG'e kiyasla context precision'da yüzde yirmi ile kirk iyilesme saglayabilir; kesin rakamlar domain verisine baglidir ve mutlaka kendi test setinizle olculmelidir.
Ek üretim perspektifi
Canli ortamda gozlemlenebilirlik olmadan ne RAG ne fine-tuning yatirimi savunulabilir. Her istek icin retrieval skorlari, kullanilan model surumu, prompt hash ve token sayilari yapilandirilmis log olarak yazilmalidir. Dashboard uzerinde haftalik trend analizi yaparak kalite dususleri deployment veya veri kaynagi degisikligine baglanir. On-call runbook'unda retrieval bos dondugunde kullanıcıya gosterilecek mesaj, fallback model seçimi ve cache invalidation adimlari açıkça tanimlanmalidir. Chaos testleri ile vektor veritabanı geçici kesildiginde sistemin kontrollu degradasyon gostermesi beklenir; sessiz halusinasyon üretmek kabul edilemez bir failure moddur. Maliyet optimizasyonu kalite metriklerinden koparilmamali; ucuz model veya düşük top_k seçimi anlik fatura dusurur ama faithfulness alarmi yoksa toplam is degeri zarar görür. Ekip icin ortak bir sözlük tutmak önemlidir: chunk, embedding, adapter, rerank gibi terimler herkes icin ayni anlama gelmelidir. Yeni hire onboarding dokumani bu mimari kararlari ve gerekce metriklerini icermelidir. Son olarak, kullanıcı geri bildirim dongusu kapatilmalidir: thumbs-down tiklanan cevaplar retrieval logu ile eslestirilerek haftalik kalite toplantisinda incelenir. Bu operasyonel olgunluk tek basina doğru teknoloji seciminden daha uzun vadeli başarı getirir cunku sistemler bozulduklarinda fark edilir ve duzeltilir; iyi tasarlanmis RAG veya fine-tuning pipeline'i ise ancak bu disiplinle sürekli deger üretir.