Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
RAG'i Ölçmek: Recall@k, MRR, nDCG, Faithfulness ve Groundedness
RAG'i ölçmek, retrieval'ı etiketli kaynakla (recall@k, MRR, nDCG) ve generation'ı yargıç bir LLM'le (groundedness, relevance) ayrı ayrı ölçmek demek. 30 soruda dört retrieval yöntemini C#'ta karşılaştırıyor, Microsoft.Extensions.AI.Evaluation'ın soruyu ıskalayan bir cevaba 5 verdiğini gösteriyor ve response cache'le 1 dk 42 sn'lik testi 1,1 sn'ye indiriyoruz.
Agent'ları Değerlendirmek: Trajectory, Tool Call Accuracy, Task Adherence ve Production Gözlemi
Bir agent'ı değerlendirmek için sonucu, izlediği yolu (trajectory) ve maliyeti ayrı ayrı ölçer, aynı senaryoyu fake tool'larla N kez koşturup başarı oranı raporlarsın; LLM-as-judge ancak kod kontrollerinden sonra ve gerekçesi okunarak kullanılır. Kendi trajectory kaydımızı, deterministik senaryoları, Microsoft.Extensions.AI.Evaluation'ın agent evaluator'larının yerel modellerle gerçek sonuçlarını ve OpenTelemetry span'lerinden regresyon setine giden yolu görüyoruz.
IChatClient Kullanan Kodu Test Etmek: Fake Client, Deterministik Testler ve Microsoft.Extensions.AI.Evaluation
IChatClient kullanan kodun doğruluğunu fake bir client'la, modelsiz ve milisaniyeler içinde test edersin; modelin cevap kalitesini ise Microsoft.Extensions.AI.Evaluation ile, ayrı çalışan ve cache'lenen evaluation'larla ölçersin. Gerçek koşularda judge timeout'larını, 800 token'a takılan reasoning'i, eski cevap dönen cache'i ve prompt hatasını yakalayan Relevance skorunu görüyoruz.