Hallucination'ı Testle Yakalamak
Gözle okumak eval değildir

İlk düzeltmeleri sohbet penceresinde yaptım. Beğendiğim bir cevap geldi, prompt'u kaydettim. Ertesi gün başka bir soruda uydurma bir dosya yolu çıktı. Eski örnekleri tekrar çalıştırmamıştım. İlerleme, son gördüğüm cevap kadardı.
Hallucination'ı 'model yalan söylüyor' diye kişiselleştirmiyorum. İddia, bağlamda yoksa ve kaynak istenmişse, bu bir hata. Hatayı teste bağlamak için büyük bir bench gerekmiyor. On örnek bile, gözden iyidir.
İddialı cümle
Cevaptan kaynak isteyince model bazen köşeli parantez uyduruyor. Eval, uydurma kaynağı yakalar. Kaynağın metinde geçmesini, geçmiyorsa 'bilmiyorum' demesini bekliyorum.
from dataclasses import dataclass
@dataclass(frozen=True)
class Case:
question: str
allowed: frozenset[str]
must_refuse: bool = False
def claims_ok(answer: str, case: Case) -> bool:
lower = answer.lower()
if case.must_refuse:
return "bilmiyorum" in lower or "baglamda yok" in lower
if "bilmiyorum" in lower:
return False
return any(token in lower for token in case.allowed)
def run(cases: list[Case], ask) -> list[str]:
failures: list[str] = []
for case in cases:
answer = ask(case.question)
if not claims_ok(answer, case):
failures.append(case.question)
return failures
ask gerçek çağrı. Set küçük: bildiğim üç sayfa, bilerek boş olan iki soru, kışkırtıcı bir 'emin ol' cümlesi. Boş soruda model uydurursa case düşer. Prompt değişince set'i çalıştırmadan birleştirmiyorum.
Büyütmeden önce sabitlemek
Yüzlerce örnek, on tanesi yokken tiyatro. Önce aynı on tanenin yeşil kalmasını istiyorum. Sonra bir tane ekliyorum. Bunu akademik bir benchmark diye satmıyorum; regress kapısı. Kapı yoksa hallucination bir karakter özelliği gibi durur, hata gibi durmaz.
Yorumlar
Yorumlar (0)
Yorumlar üyelere açık. Üye ol · Giriş yap