RAG her derde deva mı?
Günün sorusu çözüldü. Her şey yolunda mı? Gün boyunca pipeline’ın dört farklı şekilde yanıldığını gördük.
Bir çarpım; ilk çarpan retriever
RAG’in başarısı bir çarpım: retriever × chunk × LLM. Biri sıfırsa sonuç sıfır. “How much holiday do I get?” sorusu (q02) dokümanın kelimelerini kullanmıyor. İzin tablosu vektör sırasında 5. Onu ilk 3’e ancak rerank sokuyor.
Chunk: başlığını kaybeden satır
Her 300 karakterde sabit bir kesim.
| 7 | 22 |satırı başlığını kaybetti ve prompt’a giremedi. §4 ise girdi: yoğun sezonda tek seferde en fazla 7 iş günü izin kullanılabilir. Cevap: “An employee with 7 years of service gets at most 7 working days [1].” Yanlış sayı, üstelik kaynaklı.LLM: bilmiyorum demesi gerekirken
Maaş sorusu: filtre maaş chunk’ını dışarıda tuttu. Bu iyi. Kural açık: kaynakta yoksa “This is not in the policies.” yaz. Model yazmadı. Şunu yazdı: “The hotel upper limit for a senior specialist is 4,000 TRY per night [2].” Kaynak doğru, soru yanlış.
Context: bedel
Dördüncüsü bir çarpan değil, bir bedel. El kitabının tamamı 9954 token. RAG’in 3 chunk’ı 976. Büyük context’in bedeli her soruda ödenir. Cevap yanlış mı? Önce
--promptile prompt’a bakın.
Dört yanılmanın logları bu sitenin sayfalarında: retriever için Kaliteyi ölçmek (q02), chunk için B · Chunking, LLM için Güvenlik (filtre açık), context için Performans ve maliyet.
LLM çarpanının bir hikâyesi daha: tablo okumak. Tabloyu ve prompt’u küçük bir model için biçimlendirdik:
- İzin tablosunda her kıdem yılı ayrı bir satır:
| 7 | 22 |. - Kaynak işaretinde yalnızca doküman adı var; id ve bölüm numarası yok.
- Prompt’ta tablolar için bir kural var: “If the answer comes from a table, first write the row you used word for word. Then give the answer in one sentence.”
- Model bu kuralın ilk yarısına uymuyor. Günün sorusunun cevabı satırı yazmadan geliyor: “An employee with 7 years of service gets 22 working days of annual leave [1].” Prompt’taki bir kural, modelin ona uyacağı anlamına gelmez. Prompt’u ve cevabı F sayfasında görebilirsiniz.
- Bugünkü loglarda tablo soruları doğru. Küçük bir model tablo okumada kırılgandır: veriyi ve prompt’u ona göre biçimlendirin, yine de ölçün.
Bir tane mi RAG var?
Bölüm başlığı “Bir tane mi RAG var?”Hepsi aynı iskelet: bul, ekle, yaz. Fark, “bul” adımının ne kadar akıllı ve ne kadar pahalı olduğunda.
Bugün kurduklarımız: naive ve reranker
Naive: soruyu embed ederiz. En yakın k chunk soruyla birlikte modele gider. Reranker: aradaki bir sıralama adımı en iyi 3’ü seçer. Her aday için bir LLM çağrısı harcar. Rerank açıkken q02 doğru.
Multi-query ve RAG-fusion
Multi-query: model soruyu birkaç biçimde yeniden yazar, her biriyle ayrı arar, sonuçları birleştirir. RAG-fusion listeleri sıralarına göre puanlar. İkisi de çağrı ekler. Önce naive RAG’i ölçün. Eval’da hata yoksa yeni tür de yok.
Tek satırda beş tür daha
Bölüm başlığı “Tek satırda beş tür daha”Hiçbirini burada ölçmedik. Her biri belirli bir hatayı düzeltir ve bir bedeli vardır:
| Tür | Hangi hatayı düzeltir | Bedeli |
|---|---|---|
| Hybrid (kelime + vektör) | Birebir eşleşmesi gereken kodlar, numaralar, e-posta adresleri; embedding’in bulanıklaştırdığı kelimeler | İkinci bir indeks ve iki listeyi birleştirme. İngilizce soruyla Türkçe doküman arasında kelimelerin çoğu tutmaz; kısaltmalar, adlar ve adresler ise iki dilde aynı yazılır. Bizim 4 EN→TR sorumuzda vektör araması tek başına hit@1 1.00 verdi. |
| HyDE | Soru ile doküman farklı yazılmış (“holiday” ↔ “annual paid leave”; bu soru eval’da 5. sırada) | Soru başına bir LLM çağrısı: model önce varsayımsal bir cevap yazar, arama o cevapla yapılır. Varsayımsal cevaptaki uydurma rakam aramayı yanlış yöne çekebilir. |
| Parent-child | Küçük chunk iyi bulunur ama kötü okunur (başlığını kaybeden tablo satırı) | İki boyda chunk ve aralarındaki bağ; küçükle aranır, büyük olan prompt’a girer. Prompt büyür. |
| Agentic RAG | Birkaç dokümana yayılan, birkaç parçalı sorular | Model soruyu böler, her parça için ayrı arar, “yeterli mi?” diye sorar. Bir yerine birçok çağrı; süre tur sayısıyla çarpılır, iki koşu farklı sonuç verebilir. |
| GraphRAG | Cevabın dokümanlar arasındaki bağda olduğu sorular (duyuru, yan haklar politikasının §2’sindeki tutarı günceller) ve “hepsini özetle” soruları | Ingest’te bütün corpus modelden geçer, varlık–ilişki grafı çıkarılır ve bakımı yapılır. En pahalısı. |
Bu türlerin hangi durumda ve hangi sırayla eklendiğinin hikâyesi: İlk 90 gün.
Sık sorulan
Bölüm başlığı “Sık sorulan”Hangi türle başlamalı?
Naive RAG ve bir gold set ile. Eval’da bir soru tipi düşük çıkınca (bizde tablo ve paraphrase soruları) o hatayı düzelten türü ekleyin, sonra aynı eval’ı tekrar koşun.