Ünite 8 / 11

RAG Değerlendirme (Evaluation) ve İzleme

Kazanimlar:

  • Retrieval ve generation kalitesini ayrı ayrı ölçen metrikleri tanımlamak
  • Altın soru seti kurup LLM-as-judge ile otomatik değerlendirme çalıştırmak
  • Üretimde geri bildirim, izleme ve regresyon testleriyle kaliteyi sürdürmek

"Asistanı kurdum, güzel çalışıyor gibi" cümlesi bir mühendislik ifadesi değildir. RAG sistemleri sessizce bozulur: yeni bir doküman türü retrieval'ı yanıltır, bir prompt değişikliği doğruluğu düşürür, indeks bayatlar. Bunu fark etmenin tek yolu ölçmektir. Bu ünitede RAG kalitesini nasıl ölçeceğinizi (retrieval ve generation ayrı ayrı), otomatik değerlendirmeyi (LLM-as-judge) ve üretimde kaliteyi sürdürmeyi (izleme, regresyon) işliyoruz. "Ölçmediğini iyileştiremezsin" bu ünitenin sloganıdır.

İki Ayrı Şeyi Ölçün

RAG'in iki bacağı vardır ve ayrı ayrı ölçülmelidir, çünkü sorun ikisinden birinde olabilir:

  1. Retrieval kalitesi: Doğru parça geldi mi?
  2. Generation kalitesi: Gelen parçadan doğru cevap üretildi mi?

Cevap kötüyse önce hangi bacağın bozulduğunu bilmelisiniz. Doğru parça hiç gelmediyse, en iyi prompt bile kurtaramaz (retrieval sorunu). Doğru parça geldi ama model yanlış okuduysa, retrieval'ı iyileştirmek boşunadır (generation sorunu).

Retrieval Metrikleri

Retrieval, bir sıralama/erişim problemidir; klasik bilgi erişimi metrikleriyle ölçülür. Bunun için elinizde altın küme olmalı: her soru için hangi parçanın "doğru" olduğu bilgisi.

Metrik

Ne ölçer

Basit tanım

Recall@k

Doğru parça ilk k'da mı?

Doğru parçayı yakalama oranı

Precision@k

Getirilen k parçanın kaçı alakalı?

Getirilenin temizliği

MRR (Mean Reciprocal Rank)

Doğru parça kaçıncı sırada?

Üst sıralarda olmayı ödüllendirir

Hit rate

En az bir doğru parça geldi mi?

En temel başarı ölçüsü

Pratik yorum: Recall@k düşükse chunking veya arama stratejisi (hybrid, k, re-ranking) elden geçmeli. Precision düşük ama recall yüksekse re-ranking eklemek iyi bir hamledir.

Generation Metrikleri

Doğru parça geldiğinde modelin ürettiği cevabın kalitesini ölçeriz. Üç temel boyut:

  • Faithfulness (bağlama sadakat): Cevaptaki her iddia bağlamda destekleniyor mu? Uydurma var mı? Halüsinasyonun doğrudan ölçüsüdür.
  • Answer relevance (soruya uygunluk): Cevap gerçekten sorulanı mı yanıtlıyor, yoksa konu dışı mı?
  • Completeness (tamlık): Bağlamdaki ilgili bilginin hepsi kullanılmış mı, eksik mi?

Bunlar "doğru/yanlış" gibi ikili değil, çoğunlukla dereceli (ör. 1-5) puanlanır.

İpucu: Faithfulness'ı ayrı bir metrik olarak izleyin. Doğruluk düşerken faithfulness de düşüyorsa sorun uydurma (generation); faithfulness yüksek ama cevap yanlışsa sorun yanlış parça (retrieval). Bu iki metrik birlikte, arızanın yerini gösteren bir pusuladır.

Altın Soru Seti Kurmak

Her ölçüm bir altın küme (golden set / evaluation dataset) gerektirir: gerçekçi sorular + beklenen doğru cevaplar + doğru kaynak parçalar. 30-50 iyi seçilmiş soruyla başlamak, 500 rastgele sorudan iyidir. Sete şunları koyun: sık sorulan gerçek sorular, bilinen zor sorular, cevabı olmayan tuzak sorular (bilmiyorum demesi gereken), çelişkili kaynak içeren sorular.

# Altın küme örneği (kavramsal)[ {"soru": "Yıllık izin kaç gün?", "beklenen_cevap": "1-5 yıl kıdemde 14 gün", "dogru_parca_id": "ik-parca-3", "kategori": "izin"}, {"soru": "Şirketin Mars ofisi nerede?", "beklenen_cevap": "BILGI_YOK", # tuzak: bilmiyorum demeli "dogru_parca_id": null, "kategori": "tuzak"}]

LLM-as-Judge: Otomatik Değerlendirme

Yüzlerce cevabı elle puanlamak yorucudur. LLM-as-judge (jüri olarak dil modeli), bir modelin başka bir modelin cevabını belirli kriterlere göre puanlayıp gerekçelendirmesidir. İyi bir judge prompt'u kriterleri net tanımlar, örnek verir ve gerekçe ister.

# LLM-as-judge prompt (kavramsal)Sen tarafsız bir değerlendiricisin. Aşağıdaki CEVAP'ı, verilenBAĞLAM ve BEKLENEN CEVAP'a göre değerlendir.Puanla (1-5) ve gerekçelendir:- faithfulness: cevaptaki her iddia bağlamda destekleniyor mu?- dogruluk: cevap beklenen cevapla örtüşüyor mu?- tamlik: ilgili bilgi eksiksiz mi?Özellikle: cevap bağlamda olmayan bir bilgi içeriyorsa faithfulness'ı1 ver ve hangi iddianın uydurma olduğunu belirt.BAĞLAM: {baglam}BEKLENEN: {beklenen}CEVAP: {cevap}Çıktı: {faithfulness, dogruluk, tamlik, gerekce}

Dikkat: LLM-as-judge mükemmel değildir; kendi yanlılıkları (uzun cevabı, kendi üslubunu tercih etme) olabilir. Judge'ı de doğrulayın: bir kısım cevabı hem judge'a hem insana puanlatıp aralarındaki uyumu ölçün. Judge insan puanıyla tutarlıysa güvenebilirsiniz.

Zayıf / Güçlü Değerlendirme

Zayıf ("bana iyi geldi"):

Birkaç soru sordum, cevaplar güzel görünüyordu. Yayına aldım.# Sorun: ölçüm yok, regresyon fark edilmez, iyileştirme kör.

Güçlü (altın küme + ayrı metrikler + otomatik judge + regresyon):

40 soruluk altın küme. Her değişiklikte recall@5, faithfulness vedoğruluk otomatik ölçülür. Skor düşerse değişiklik geri alınır.Üretimde kullanıcı geri bildirimi toplanır ve sete eklenir.

Üretimde İzleme ve Regresyon

Değerlendirme bir kez yapılıp bitmez. Üç sürekli pratik:

  • Regresyon testi: Her prompt/retrieval/model değişikliğinde altın kümeyi otomatik çalıştırın. Skor düştüyse değişiklik geri alınır. Bu, "iyileştireyim derken bozmayı" önler.
  • Üretim izleme: Gerçek sorulardaki "bilgi bulamadım" oranı, ortalama gecikme, maliyet, kullanıcı geri bildirimi (👍/👎) izlenir. Ani bir "bilmiyorum" artışı çoğu zaman bir indeks veya retrieval arızasının ilk işaretidir.
  • Geri besleme döngüsü: Kullanıcının 👎 verdiği gerçek sorular incelenip altın kümeye eklenir; böylece set zamanla zenginleşir ve sistemin kör noktaları kapanır.

Üç Mini Vaka

Vaka 1 — Sessiz regresyon. Bir ekip prompt'u "iyileştirmek" için değiştirmiş; genel doğruluk artmış ama tuzak sorularda faithfulness %30 düşmüş (model daha çok uydurmaya başlamış). Altın kümedeki tuzak soruları olmasa fark edilmezdi; regresyon testi değişikliği geri aldırdı.

Vaka 2 — Yanlış bacağı düzeltmek. Bir asistanda cevaplar kötüydü; ekip haftalarca prompt üzerinde çalıştı. Retrieval metriklerini ölçünce recall@5'in sadece %48 olduğu görüldü — sorun generation değil retrieval'daydı. Hybrid + re-ranking eklenince recall %89'a, doğruluk beraberinde yukarı çıktı.

Vaka 3 — Üretim uyarısı. Bir destek asistanında "bilgi bulamadım" oranı bir gün %6'dan %34'e fırladı. İzleme paneli uyarı verdi; sebep gece çalışan indeksleme işinin sessizce hata alması ve yeni makalelerin yüklenmemesiymiş. İzleme olmasa günlerce yanlış "bilmiyorum"lar sürecekti.

Sık yapılan hatalar

  • "Bana iyi geldi" ile yetinmek: Ölçüm olmadan regresyon fark edilmez.
  • Retrieval ve generation'ı ayırmamak: Yanlış bacağı düzeltip zaman kaybedersiniz.
  • Tuzak soru koymamak: Uydurma eğilimi altın kümede görünmez.
  • Judge'ı doğrulamamak: Yanlı bir jüri yanlış güven verir.
  • Üretimi izlememek: İndeks arızası, maliyet patlaması sessizce sürer.

Özetle

  • RAG'de retrieval ve generation kalitesi ayrı ölçülür; önce hangi bacağın bozulduğu belirlenmeli.
  • Retrieval için recall@k, precision@k, MRR; generation için faithfulness, uygunluk, tamlık kullanılır.
  • Her ölçüm bir altın küme gerektirir; içine gerçek, zor, tuzak ve çelişkili sorular koyun.
  • LLM-as-judge büyük setleri otomatik puanlar; ama judge'ın kendisi insana karşı doğrulanmalıdır.
  • Regresyon testi, üretim izleme ve geri besleme döngüsü kaliteyi zaman içinde korur.

Uygulama görevi

(1) Kendi asistanınız için en az 15 soruluk bir altın küme kurun: en az 3 tuzak (cevabı yok), 3 zor, 2 çelişkili kaynak sorusu içersin. Her soruya beklenen cevabı ve doğru parçayı yazın. (2) Bu setle iki farklı prompt sürümünü elle karşılaştırın; her cevaba faithfulness ve doğruluk için 1-5 puan verin. (3) Yukarıdaki LLM-as-judge prompt'unu kendi kriterlerinize uyarlayın. (4) Üretimde izleyeceğiniz 3 metrik belirleyin ve her biri için "hangi eşikte alarm veririm?" değerini yazın.

Kontrol listesi

  • [ ] Retrieval ve generation kalitesini ayrı metriklerle ölçebiliyorum.
  • [ ] recall@k, faithfulness gibi metriklerin ne anlama geldiğini biliyorum.
  • [ ] Gerçek, zor, tuzak ve çelişkili soru içeren bir altın küme kurabiliyorum.
  • [ ] LLM-as-judge ile otomatik değerlendirme kurup judge'ı doğrulayabiliyorum.
  • [ ] Regresyon testi, üretim izleme ve geri besleme döngüsünü işletebiliyorum.