İçeriğe geç

İstemi Ölçmek — Yeni Sürüm Gerçekten Daha mı İyi?

Orta 8 dk Sık karşılaşılır

Önce şunu oku: Modelin Cevabını Uygulamada Kullanmak — Doğrulamadan Kaydetme

30 saniyede özet

İstemi değiştirip birkaç örneğe göz atmak, iyileşmeyi kanıtlamaz. Etiketli bir değerlendirme seti değişikliği ölçer; kategori kategori puan ise ortalamada saklanan bozulmayı yayından önce gösterir.

Bir fırın kurabiye tarifini değiştiriyor. Tadan herkes yenisini daha çok beğeniyor. Ama şekersiz tepsiye de şeker girmiş; o tepsiyi tadan olmamış.

  1. Bayt: Şikâyetleri ekiplere dağıtan istemi biraz düzelttim. Üç örneğe baktım, hepsi daha iyi!

  2. Sen: Toplam puana da baktık: 12 örnekten 8 doğruydu, şimdi 10.

  3. Bayt: Ama iki dolandırıcılık bildiriminin ikisi de artık kart ekibine gidiyor!

  4. Bayt: Ortalamaya değil, her kategoriye ayrı bakmamız gerekiyormuş.

Göz atmak neden yetmez?

İstemi değiştirip birkaç cevaba bakmak doğal bir ilk adımdır. Ama yalnızca baktığın örnekler hakkında bir şey söyler.

Bir değerlendirme setiDoğru cevabı bilinen örneklerden oluşan bir set. İstem ya da model her değiştiğinde modeli bu setten geçirip ne kadar doğru cevap verdiğini ölçersin.Sözlükte gör →, doğru cevabı bilinen örneklerden oluşur. İstem ya da model her değiştiğinde hepsi yeniden çalıştırılır; tıpkı testler gibi.

Kafam karıştı, daha basit anlat

Göz atmak bir ipucudur. Etiketli örneklerin hepsini her değişiklikte çalıştırmak ölçümdür.

Hızlı kontrolBaşlangıç

İstemi değiştirdin ve üç örnekte cevaplar daha iyi göründü. Bu ne kadar güvenilir bir sonuç?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Değerlendirme seti nedir?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Ortalama neyi saklar?

Yeni istem 12 örneğin 10'unu doğru biliyor, eskisi 8'ini. Yeni istemi yayına çıkarmak güvenli mi? Cevabı göster

Henüz bilinmiyor. Toplam puan yükseldi, ama hangi örneklerde kazanıp hangilerinde kaybettiğini söylemiyor. Kaybedilen örnekler en önemli olanlar olabilir.

Ortalamaya değil, her tepsiye bak.
Adım adım oku
  1. Yeni tarif: tadan herkes beğendi.
  2. Ortalama puan yükseldi.
  3. Şekersiz tepsiye şeker girmiş.
  4. Ortalamaya değil, her tepsiye bak.

Az görülen ama önemli bir kategori, toplam puanda neredeyse hiç yer tutmaz. Orada her şey bozulsa bile ortalama yükselebilir.

dilim puanıDeğerlendirme sonucunu tek bir toplam yerine kategori kategori ayrı ölçmek. Ortalamada kaybolan bir bozulmayı görünür yapar.Sözlükte gör → bunu görünür yapar: her kategori ayrı ölçülür. Herhangi bir kategoride gerilemeBir değişiklikten sonra daha önce doğru çalışan bir durumun bozulması. İstem değişikliklerinde de testlerdeki gibi yakalanmalı.Sözlükte gör → varsa değişiklik o hâliyle yayına çıkmaz.

Kafam karıştı, daha basit anlat

Toplam puan yükselirken önemli bir kategori bozulabilir. Her kategoriye ayrı bak.

Hızlı kontrolOrta

Toplam puan 8/12'den 10/12'ye çıktı. Hangisi kesin söylenebilir?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Neden her kategori için ayrı puan tutulur?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Kendin gör

İstem v2 yayına çıksın mı?

Tohum 671861
  1. Kartım ATM’de kaldı · kart…
  2. Kart limitim neden düştü? · kart…
  3. Temassız ödeme çalışmıyor · kart…
  4. Yeni kartım gelmedi · kartbakılmadı
  5. Havalem karşıya ulaşmadı · havalebakılmadı
  6. IBAN’ı yanlış yazdım · havalebakılmadı
  7. FAST işlemi geri döndü · havalebakılmadı
  8. EFT ücreti neden alındı? · havalebakılmadı
  9. Kredi taksitim yanlış · kredibakılmadı
  10. Erken kapama tutarı nedir? · kredibakılmadı
  11. Tanımadığım bir harcama var · dolandırıcılıkbakılmadı
  12. Biri bankayı arayıp şifremi istedi · dolandırıcılıkbakılmadı

Toplam: v1 0/0 · v2 0/0

  • kart 0→0/0
  • havale 0→0/0
  • kredi 0→0/0
  • dolandırıcılık 0→0/0
Hız
Adım 0

Şu an ne oldu?

İlk üç örneğe göz at

Etiketli şikâyetler iki istemle de sınıflandırılıyor.

Görevler0/3

  • Göz kararıyla yayına çıkaçık

    İpucu

    İlk üç örneğe göz at.

  • Toplam puan yükselsin, dolandırıcılık yine bozulsunaçık

    İpucu

    Tek bir toplam puan.

  • Bozulmayı yayından önce yakalaaçık

    İpucu

    Her kategori ayrı.

Olay günlüğü (0)

Henüz olay yok. Oynat veya adımla.

  1. Varsayılanla oynat. İlk üç örneğe bakıldı, v2 daha iyi göründü ve yayına çıktı. Dolandırıcılık örneklerine hiç bakılmadı.
  2. “Tek bir toplam puan” seç. Bütün örnekler çalıştı, toplam 8’den 10’a çıktı ve v2 yine yayına çıktı.
  3. “Her kategori ayrı puan” seç. Dolandırıcılık 2/2’den 0/2’ye düştü ve değişiklik durduruldu.
Hızlı kontrolOrta

Yeni istem toplamda daha iyi, ama dolandırıcılık bildirimlerinin ikisi de artık yanlış ekibe gidiyor. Ne yapılmalı?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Değerlendirme setine hangi örnekler mutlaka girmeli?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Tuzaklar

Seti yalnızca sık durumlarla doldurmak. Nadir ama pahalı hatalar, dolandırıcılık gibi, sette yoksa hiç ölçülmez. Onlar için özellikle örnek ekle.

Bir kez çalıştırmak. Model aynı soruya her seferinde biraz farklı cevap verebilir. Önemli kararlarda her örneği birkaç kez çalıştır ya da temperature’ı düşür.

Canlı hatayı unutmak. Canlıda yanlış giden her örneği, doğru etiketiyle sete ekle. Böylece aynı hata bir daha sessizce geri dönmez.

Kafam karıştı, daha basit anlat

Nadir ama önemli örnekleri ekle, birden çok çalıştır, canlı hatayı sete taşı.

Hızlı kontrolOrta

Canlıda bir şikâyet yanlış ekibe gitti ve düzeltildi. Bu örnekle ne yapılmalı?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.
Derinleş · Şikâyet yönlendirme: istem değişikliğini kategori kategori ölçmek 3 dosya · ~58 satır · ilk okumada atlayabilirsin
Proje dosyaları

routing/src/test/resources/eval/ complaints.jsonl Etiketli örnekler: her satırda şikâyet ve doğru ekip; nadir ama kritik dolandırıcılık örnekleri de var.

routing/src/test/resources/eval/complaints.jsonl
{"text": "Kartım ATM'de kaldı", "team": "CARD"}
{"text": "Temassız ödeme çalışmıyor", "team": "CARD"}
{"text": "IBAN'ı yanlış yazdım", "team": "TRANSFER"}
{"text": "Kredi taksitim yanlış", "team": "LOAN"}
{"text": "Tanımadığım bir harcama var", "team": "FRAUD"}
{"text": "Biri bankayı arayıp şifremi istedi", "team": "FRAUD"}

routing/src/test/java/com/bank/routing/ RoutingEval.java Değerlendirme: her örnek iki istemle de çalışır, sonuç kategori kategori toplanır.

routing/src/test/java/com/bank/routing/RoutingEval.java
public final class RoutingEval {
public record Example(String text, Team team) {}
public record Slice(int correct, int total) {
double rate() {
return total == 0 ? 1.0 : (double) correct / total;
}
}
private final ComplaintRouter router;
public RoutingEval(ComplaintRouter router) {
this.router = router;
}
/** Runs every example and scores each team separately. */
public Map<Team, Slice> run(List<Example> examples, String promptVersion) {
Map<Team, int[]> counts = new EnumMap<>(Team.class);
for (Example example : examples) {
Team predicted = router.route(example.text(), promptVersion);
int[] c = counts.computeIfAbsent(example.team(), t -> new int[2]);
if (predicted == example.team()) {
c[0]++;
}
c[1]++;
}
Map<Team, Slice> slices = new EnumMap<>(Team.class);
counts.forEach((team, c) -> slices.put(team, new Slice(c[0], c[1])));
return slices;
}
}

routing/src/test/java/com/bank/routing/ PromptChangeTest.java Kapı: herhangi bir kategoride gerileme varsa test kırmızı olur ve değişiklik birleşmez.

routing/src/test/java/com/bank/routing/PromptChangeTest.java
@Tag("eval")
class PromptChangeTest {
private final RoutingEval eval = new RoutingEval(TestRouters.real());
private final List<RoutingEval.Example> examples = EvalFiles.read("eval/complaints.jsonl");
@Test
void the_new_prompt_does_not_get_worse_for_any_team() {
Map<Team, RoutingEval.Slice> before = eval.run(examples, "v1");
Map<Team, RoutingEval.Slice> after = eval.run(examples, "v2");
List<String> regressions = before.keySet().stream()
.filter(team -> after.get(team).rate() < before.get(team).rate())
.map(team -> team + ": " + before.get(team) + " -> " + after.get(team))
.toList();
// An overall score could go up while FRAUD drops; check every slice.
assertThat(regressions).isEmpty();
}
}

Kendini sına

Şimşek turu1/4

Üç örnekte daha iyi görünen istem, genel olarak daha iyidir.

Soru 1/3İleri

Model aynı soruya her seferinde biraz farklı cevap verebiliyor. Değerlendirmede ne yapılır?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Aklında kalacak üç şey

  1. 1 Birkaç örneğe göz atmak bir ipucudur, ölçüm değildir. Bakılmayan örnek hakkında hiçbir şey söylenemez.
  2. 2 Etiketli bir değerlendirme seti, istem ya da model her değiştiğinde yeniden çalıştırılır; tıpkı testler gibi.
  3. 3 Toplam puan, az görülen ama önemli bir kategorideki bozulmayı saklar. Karar kategori kategori puana göre verilir.
Sonraki kapı Asistan uzun bir cevap yazıyor. Müşteri sıkılıp sekmeyi kapattı. Model yazmaya devam etti mi? Cevabı Akıtmak — Asistan Yazarken Müşteri Neden Boş Ekrana Bakıyor? · 8 dk

4 kart sonraki derste seni bekliyor

0/4 kart bu dersten toplandı