RAG sistemleri kurarken işe yarayan pratik notlar
- #ai
- #rag
- #llm
RAG (Retrieval-Augmented Generation) anlatıldığında kulağa basit gelir: soruyu al, ilgili dokümanları bul, modele ver, cevabı döndür. Ama gerçek sistemde kalitenin çoğu modelin kendisinde değil, “retrieval” tarafında belirleniyor. TwinUp’taki AI stajımda ve sonrasında kafama kazınan birkaç not:
1. Chunk’lama her şeyi belirliyor
Dokümanı nasıl parçaladığın, sonucun kalitesini doğrudan etkiliyor. Çok büyük chunk’lar alakasız bağlamı içeri taşıyor; çok küçük olanlar ise anlamı bölüyor. Başlamak için makul bir kural: sabit karakter sayısına göre değil, anlamsal sınırlara göre böl (paragraf, başlık). Üst üste binen (overlapping) pencereler de sınırda kalan bilginin kaybolmasını engelliyor.
2. Benzerlik araması yeterli değil
Yalnızca vektör benzerliğine güvenmek, “doğru gibi görünen ama alakasız” sonuçlar getirebiliyor. İki şey burada ciddi fark yaratıyor:
- Hibrit arama — anlamsal (vektör) aramayı anahtar kelime aramasıyla birleştirmek.
- Yeniden sıralama (re-ranking) — ilk 20 sonucu çekip, daha güçlü bir modelle ilk 5’e indirmek.
3. Modele “bilmiyorum” deme izni ver
En sık yapılan hata, bağlamda cevap olmasa bile modeli cevap vermeye zorlamak. Sistem prompt’una net bir kural koyuyorum: bağlamda yoksa uydurma, “bu bilgi elimde yok” de. Bu, halüsinasyonu tamamen bitirmiyor ama ciddi ölçüde azaltıyor.
Yalnızca aşağıdaki bağlamı kullanarak cevapla.
Bağlamda cevap yoksa "Bu konuda elimde bilgi yok." de.
Bağlam: {context}
Soru: {question}
4. Değerlendirmeyi gözle değil, sistemli yap
“Bana iyi gibi geldi” bir metrik değil. Küçük de olsa bir soru-cevap seti oluşturup retrieval’ın doğru dokümanı getirip getirmediğini ölçmek, prompt’u değiştirdiğinde neyin iyileştiğini neyin bozulduğunu görmenin tek yolu.
RAG’in büyüsü modelde değil, ona ne verdiğinde. İyi bir retrieval ve dürüst bir prompt, çoğu zaman daha büyük bir modelden daha çok iş görüyor.