« Tüm yayınlar

Altı LLM değerlendirme aracını CI'a bağladık, sadece ikisi ayakta kaldı

Sekiz aylık gerçek CI testinde altı LLM eval aracından sadece Promptfoo ve DeepEval merge queue gate'i olarak güvenilir çıktı; nedeni determinizm.

Sekiz ay boyunca gerçek bir GitHub Actions merge queue'sunda altı açık kaynak LLM değerlendirme çerçevesi test edildi. Amaç metrik zenginliğini sıralamak değil, hangi aracın bir CI kapısında güvenilir şekilde geçti/kaldı kararı verdiğini bulmaktı. Sonuç net: deterministik kontroller (string eşleşme, regex, JSON şema gibi) saniyeler içinde, ücretsiz ve her seferinde aynı sonucu veriyor; LLM-as-judge tabanlı skorlar ise eşik değerine yakın noktalarda dalgalanıp aynı, değişmemiş çıktıyı farklı günlerde farklı puanlıyor.

Bu ayrımın çıkış noktası, 0.8 eşikli bir judge metriğinin bir hafta sonu on dört PR'ı ve bir sürümü bloke etmesiydi — aynı prompt, aynı model, sabit seed yok, skor Cuma 0.83 iken Pazartesi 0.78'e düştü. Böyle bir olay ekibi gate'i zorla geçmeye alıştırıyor ve bir kez bu alışkanlık yerleşince gate artık hiçbir şeyi korumuyor. Bu yüzden değerlendirme beş kritere göre yapıldı: determinizm, hız, maliyet, entegrasyon eforu ve hata sinyalinin kalitesi.

Promptfoo ve DeepEval merge queue'da en iyi sonucu verdi. Promptfoo'nun CLI çıkış koduna dayanan deterministik assertion'ları hiç flake vermedi ve saniyenin altında çalıştı; judge tabanlı kontroller opsiyonel bırakıldığında sorun çıkmadı. DeepEval ise pytest tabanlı akışlarda benzer bir denge sundu. RAGAS, Arize Phoenix, Future AGI ve MLflow evaluate gibi judge-ağırlıklı veya scriptle çağrılan araçlar, izleme ve deney takibi için değerli olsa da blocking gate olarak daha kırılgan çıktı.

Mühendisler için çıkarım basit: bir merge queue'ya konan her metrik önce 'aynı girdide her zaman aynı sonucu verir mi' testinden geçmeli. Judge skorları faydalı bir sinyal olabilir, ama gate'i bloklayan asıl kontrol deterministik kalmalı.