LLM değerlendirmesi: Public benchmark’lerden kendi golden set’ine
Aynı agent, aynı görev, on çalıştırma. Yedi başarı %70 gibi görünür; pass^10 hesaplanınca sonuç tam olarak sıfırdır.
Bu sayfada
İşte bir gösterim. Bölüm 23’teki agent — aynı loop, dört aracından ikisi — beş log ve yapılandırma dosyasından oluşan bir dizine yöneltiliyor ve tek bir soru soruluyor.
Q: What is the last line of errors.log about?
turn 1 -> read_file({"path": "errors.log"})
turn 2 -> "The last line of errors.log is:
ERROR worker 7 timed out after 30000 ms."Doğru, ama hiçbir şeye kanıt değil — çünkü bu transcript, çalıştırdığım on transcript’ten biri ve ben onu onunu da gördükten sonra seçtim.
Aynı görevi on kez çalıştır; sampling seed dışında hiçbir şeyi değiştirme. agent bunu yedi kez doğru yapıyor. Yüzde yetmiş; slayta girecek sayı bu olurdu. Şimdi bir müşterinin gerçekten önemsediği soruyu sor — her seferinde çalışacak mı? — cevap bambaşka bir sayı:
t20 7/10 successes = 70 % (95 % Wilson interval: 39.7 % to 89.2 %)
pass^1 70.00 % pass^5 8.33 %
pass^2 46.67 % pass^7 0.83 %
pass^3 29.17 % pass^8 0.00 %
pass^4 16.67 % pass^10 0.00 %agent bu görevi art arda on kez hiç çözmedi ve bu kanıta göre çözmesi de beklenmiyor. Bu sayı — pass^10 — dürüst sayı; neredeyse hiç yayımlanmaz. Bu bölümün sonunda onu nasıl hesaplayacağını, hesaplamanın neye mal olduğunu ve %70’in yanındaki aralığın neden %70’in kendisinden daha önemli olduğunu bileceksin.
Ayrıntıları göster
Bu bölümün önceki bölümlerden ihtiyaç duyduğu şeyler.
- Bölüm 4 istatistik için: bir oran üzerindeki Wilson aralığı, yirmide on yedinin hiçbir şeyi ayırt etmemesinin nedeni ve ilk gereklilik olarak aptal baseline.
- Bölüm 15 bench için: elli satırlık harness, iki sistemin anlaşamadığı vakalar üzerinde eşleştirilmiş sign test ve bir prompt’un tartışılmayıp ölçüldüğü kuralı.
- Bölüm 23 ölçülen şey için: loop, çıkışın beş yolu, maliyet muhasebesi ve bir harness’ın agent’ı yönetilebilir kıldığı ama doğru kılmadığı son gözlem.
Burada iki panel var. Kendi değerlendirmen için TypeScript, çünkü code’unun yanında continuous integration içinde yer almalı. İkinci panel için Python, çünkü public benchmark’ler orada yaşıyor ve aşağıdaki ölçümlerden biri logits gerektiriyor.
Üç proje, üç araç
Bölüme bağlantı: Üç proje, üç araçDeğerlendirme hakkındaki neredeyse her tartışma, farklı şeyleri ölçen iki kişiden ibarettir. Üç proje vardır ve aynı aracı paylaşmazlar.
| neyi değerlendiriyorsun | soru | araç | sahibi kim |
|---|---|---|---|
| model | bu model genel olarak şundan daha mı iyi? | public benchmark’ler, leaderboard’lar | topluluk |
| uygulaman | prompt’um, retrieval’ım, schema’m benim girdilerimde çalışıyor mu? | senin golden set’in | sen |
| agent’ın | araçlar ve yan etkilerle birlikte tüm loop hedefe güvenilir biçimde ulaşıyor mu? | görev başarısı artı pass^k | sen |
Karışıklık tek yönde pahalıdır. Bir leaderboard sana modelin lisansüstü düzey reasoning’de güçlü olduğunu söyler; destek taleplerini yönlendirip yönlendirmeyeceğini söyleyemez. Ve girdi başına tek cevap puanlayan bir uygulama değerlendirmesi bir agent’ı hiç göremez; çünkü agent’ın trajectory dağılımı vardır ve tek cevap ondan alınmış tek bir sample’dır. Bölüm 22 o üçüncü satıra ad verdi ve boş bıraktı: performance measure, yani ekiplerin bir agent specification’ında en son yazdığı ya da hiç yazmadığı bölüm.
Sıra da önemlidir ve sana modeli satan vendor bunu söyler. OpenAI’nin agent rehberi model seçimini şu sırayla üç adıma indirger: "Bir performance baseline oluşturmak için evals kur", "Mevcut en iyi modellerle accuracy hedefini tutturmaya odaklan", "Mümkün yerlerde büyük modelleri daha küçükleriyle değiştirerek maliyet ve latency için optimize et".1 Değerlendirme önce gelir, çünkü ikinci ve üçüncü adımlar bir sayı olmadan anlamsızdır.
Golden set ve yirmi vakanın gerçekte satın aldığı şey
Bölüme bağlantı: Golden set ve yirmi vakanın gerçekte satın aldığı şeyGolden set, her birinin cevabı yazılı olan girdiler listesi ve bir çıktının eşleşip eşleşmediğine karar veren grader’dır. Sıkıcıdır, küçüktür ve bu bölümde gerçekten sana ait olan tek artefact’tır. Burada kurulan set, beş dosyalık bir dizin üzerinde yirmi görev içeriyor — Bölüm 23’ün üç görevi değil, yani cevaplar aynı cevaplar değil — ve grader agent çalışmadan önce yazılıyor:
export type Task = {
id: string;
prompt: string;
answer: string; // the fact, in words, for a human and for a judge
must: RegExp[]; // ALL must match the final answer
mustNot?: RegExp[]; // NONE may match
};
export const GOLDEN: Task[] = [
{ id: "t04", prompt: "Which file is the largest?", answer: "access.log",
must: [/access\.log/i], mustNot: [/errors\.log/i, /notes\.txt/i] },
{ id: "t12", prompt: "Which HTTP status codes appear in access.log? List all of them.",
answer: "200, 429 and 500", must: [/200/, /429/, /500/] },
// ...eighteen more
];İki özellik taşıyıcı kolon gibidir. mustNot listesi vardır çünkü doğru dosyayı da içeren üç dosya adı veren bir model soruyu cevaplamış sayılmaz. Ve answer hem prose olarak hem de pattern’lerle yazılır; çünkü hem bir insanın hem de bir judge’ın buna daha sonra ihtiyacı olacak — aynı olguyu iki notasyonda iki kez yazmak, görevin ne olduğu konusunda kendinle aynı fikirde olmadığını keşfetmenin yoludur.
Şimdi karar veren tablo. Dört aday sistem, aynı yirmi görev, aralığıyla birlikte accuracy ve yalnızca accuracy tablosunun her zaman sakladığı iki sütun:
| sistem | doğru | accuracy, %95 Wilson | çözülen görev başına maliyet | ortalama latency |
|---|---|---|---|---|
| A — araç yok, greedy | 2/20 | %10,0 [2,8, 30,1] | $0.004649 | 663 ms |
| B — araçlar, kısa prompt | 5/20 | %25,0 [11,2, 46,9] | $0.005576 | 1.362 ms |
| C — araçlar, yönlendirilmiş prompt | 2/20 | %10,0 [2,8, 30,1] | $0.013071 | 930 ms |
| D — C, T = 0,7’de en iyi 3 | 1/20 | %5,0 [0,9, 23,6] | $0.073532 | 2.628 ms |
Kazananı okumadan önce aralıkları oku. B kolunun çalışmaları %11’den %47’ye uzanıyor; A kolu %3’ten %30’a. Uzunluklarının çoğunda örtüşüyorlar; bu, Bölüm 4’ün bulgusunun tam da vaat edildiği yere gelmesi: yirmi vaka dört sistemi sıralayamaz. Bölüm 15 bunu eşleştirilmiş soruyu sorarak keskinleştirdi — iki kolun anlaşamadığı vakalarda bölünme ne kadar tek taraflı? — çünkü setin ortak zorluğu iptal olur. İşte her çift:
A vs B +0 / -3 p = 0.2500 B vs C +4 / -1 p = 0.3750
A vs C +2 / -2 p = 1.0000 B vs D +4 / -0 p = 0.1250
A vs D +2 / -1 p = 1.0000 C vs D +1 / -0 p = 1.0000Altı karşılaştırmanın hiçbiri kanıtlanmış değil. En iyi kol, hiç aracı olmayan kolu on beş puan geçiyor ve bunun dayandığı şey üç discordant vaka. Yirmi vaka bir mekanizma gösterir, tedarikçi seçemez; toplantıda aksini söylemek kötü bir modelin satın alınma yoludur.
Bu tablonun kanıtladığı bir şey var ve o da kimsenin koymadığı sütun. D kolu, çözülen görev başına B kolunun on üç katı maliyete sahip; çünkü üç trajectory sampling yapıp modal cevabı almak, accuracy’yi üç katına çıkarsa da çıkarmasa da faturayı üç katına çıkarır. Maliyeti dışarıda bırakan accuracy tabloları bu takası görünmez kılar.
Sayıya metric karar verir
Bölüme bağlantı: Sayıya metric karar verirŞimdi bundan sonra göreceğin her benchmark’ü okuma biçimini değiştiren bulgu. Aynı iki yüz transcript’i al — yirmi görev, on çalıştırma, tek token bile yeniden üretilmemiş — ve üç şekilde puanla:
| grader | doğru | accuracy, %95 Wilson |
|---|---|---|
| yazılı cevaba exact match | 0/200 | %0,0 [0,0, 1,9] |
| yazılı cevap substring olarak geçiyor | 26/200 | %13,0 [9,0, 18,4] |
| yukarıdaki keyword rubric | 52/200 | %26,0 [20,4, 32,5] |
Sıfır, on üç, yirmi altı. Sistem değişmedi. Grader değişti. Exact match sıfır döndürür; agent işe yaramaz olduğu için değil, hiçbir serbest metin cevap reference ile byte düzeyinde özdeş olmadığı için: formatlamayı ölçer ve bunu capability diye raporlar.
Bu bir merak konusu değil, bir mekanizma; adı da var. Hard-cutoff metric, birkaç alt olgu üzerinden bir görevi ya hep ya hiç puanlar, dolayısıyla bileşik etki yaratır. Görev t12 aynı anda üç status code ister. On çalıştırmada:
per-code presence 200: 9/10 429: 6/10 500: 8/10 (mean 0.77 per fact)
all three at once 5/10Her olgu yaklaşık dörtte üç oranında doğru; üçünü birden istemek skoru yarıya indiriyor ve ölçülen 0,50’ye düşüşün nereden geldiğini gösterecek kadar yakın. Genelle:
| olgu başına accuracy | |||||
|---|---|---|---|---|---|
| 0,60 | %60,0 | %36,0 | %21,6 | %7,8 | %0,6 |
| 0,80 | %80,0 | %64,0 | %51,2 | %32,8 | %10,7 |
| 0,90 | %90,0 | %81,0 | %72,9 | %59,0 | %34,9 |
| 0,95 | %95,0 | %90,3 | %85,7 | %77,4 | %59,9 |
noktasında 0,90 satırını 0,95 satırıyla birlikte oku: olgu başına beş puanlık iyileşme, conjunction üzerinde yirmi beş puana dönüşür. Modelde kesikli hiçbir şey olmadı. Ya hep ya hiç metric üzerinden okunan pürüzsüz bir eğri sıçrama gibi görünür — Schaeffer, Miranda ve Koyejo’nun emergent abilities hakkında yaptığı argüman tam olarak buydu ve Bölüm 10 bunu buraya ertelemişti.2 Audit’leri, BIG-Bench’in tercih edilen 39 metric’inden en fazla 5’inin herhangi bir emergence sergilediğini; iki discontinuous metric’in ise iddia edilen vakaların %92’den fazlasını açıkladığını buldu.
Yani disiplin tek satırda şu: grafikteki bir sıçrama, aksi gösterilene kadar metric hakkında kanıttır. Bir capability’nin ortaya çıktığına inanmadan önce aynı çalıştırmaları partial credit veren bir metric ile çiz ve uçurumun kalıp kalmadığına bak.
Bunun ikinci dereceden bir versiyonu var; Kalai ve çalışma arkadaşları bunun yukarı akışta zarar verdiğini savunuyor: doğru-yanlış puanlanan benchmark’ler "bilmiyorum" demek yerine tahmini ödüllendirir, dolayısıyla onlara göre optimize edilen model tahmin etmeyi öğrenir. Önerdikleri düzeltme başka bir hallucination benchmark’ü değil, "hizalanmamış ama leaderboard’ları domine eden mevcut benchmark’lerin puanlamasını değiştirmek"tir.3 Senin golden set’in de aynı kaldıraca sahip ve tek satırdan ibaret: abstention’ın failure mı yoksa kendi kategorisi mi sayılacağına karar ver. Çoğu kişi asla karar vermez; bu yüzden sessizce failure sayılır ve gönderdikleri sistem tahmin eder.
pass^k ve kimsenin yayımlamadığı variance
Bölüme bağlantı: pass^k ve kimsenin yayımlamadığı varianceBuraya kadar her görev için tek attempt puanlandı. Bir agent tek attempt değildir. Bölüm 17, temperature sıfırda bile determinizme sahip olmadığını göstermişti; bu yüzden aynı girdi bir trajectory dağılımı üretir ve her görevi bir kez çalıştıran bir benchmark ondan tek sample raporlar.
τ-bench’in katkısı bunun metric’idir. Makale bunu açıkça tanımlar: "yeni bir metric öneriyoruz – pass^k (pass hat k), tüm k i.i.d. görev denemesinin başarılı olma şansı; görevler üzerinden ortalaması alınmış hâli."4 Her görevi kez çalıştır, başarıyı say; unbiased estimators şunlardır:
İkincisi code generation’dan tanıdık pass@k: attempt’ten en az birinin başarılı olma şansı. Aynı ölçülmüş sayılar üzerinde yan yana koyunca ters yönlere hareket ederler:
pass@k — en az biri | pass^k — hepsi | |
|---|---|---|
| 1 | %26,0 | %26,0 |
| 2 | %37,0 | %15,0 |
| 3 | %43,5 | %10,5 |
| 5 | %51,2 | %6,7 |
| 8 | %57,7 | %5,1 |
| 10 | %60,0 | %5,0 |
Aynı çalıştırmalar, aynı grader, aynı yirmi görev. Bir sütun sistemin daha fazla attempt ile iyileştiğini, diğeri kötüleştiğini söylüyor; ikisi de doğru, çünkü farklı sorulara cevap veriyorlar. pass@k insan çıktıyı filtrelediğinde doğru metric’tir — code generation, taslaklar, brainstorming — ve ekstra attempt’ler ucuzdur. pass^k ise agent filtresiz hareket ettiğinde doğru metric’tir; "agent" zaten budur. İkincisinin geçerli olduğu yerde birincisini yayımlamak bu alandaki en yaygın abartıdır ve τ-bench’in kendi manşeti dürüst versiyondur: retail’de yaklaşık %61 pass^1 olan gpt-4o, pass^8 noktasında yaklaşık %25’e düşer.4
Şimdi kendi sayılarımdaki acı nokta. Yirmi görevim üzerinde pass^10 %5,0: on çalıştırmanın hepsinde çözülen yirmide tam olarak bir görev. O görev t19, "Deploy 42 başarılı oldu mu?", ve rubric’in doğru puanladığı on cevaptan ikisi burada:
run 2 "To check if 'deploy.log' succeeded in deploying 42, I will list the file
names in the working directory using the list_files function..."
run 8 "Yes, deploy 42 has successfully deployed. Deploying was successful for 41
as well."İlki asla cevap vermiyor. İkincisi yanlış bir iddia ekliyor — deploy 41 rollback edilmişti. İkisi de /succe|yes/ ile eşleşti. pass^10 değerini sıfırın üstünde tutan tek görev bir grader artefact’ı; bu yüzden gerçek değer sıfır ve hiçbir aggregate bunu bana göstermezdi. En yüksek puanlı görevinin arkasındaki transcript’leri sampling yapmak, grader’ların öldüğü yerdir.
Ve bir sayı daha; bu bölümün adını aldığı sayı. On özdeş değerlendirme — aynı sistem, aynı yirmi görev, aynı code, seed’ler dışında hiçbir şey değişmedi:
per-run correct: 5 2 5 5 8 5 8 5 4 5 -> 10 % .. 40 %, mean 26.0 %, sd 8.8 pointsDeğişmeyen bir sistemde otuz puanlık aralık. Suite’ini release öncesi bir kez, sonrası bir kez çalıştırırsan sekiz puanlık "iyileşme" bu yayılımın içindedir ve buna senin neden olduğuna inanarak ship edersin. Bu yüzden yukarıdaki pooled interval — %26,0 [20,4, 32,5] — tek başına alıntılanamayacak kadar dardır: iki yüz correlated trial’ı iki yüz bağımsız trial gibi ele alır. Bir agent evaluation’ın dürüst özeti, repeat’ler arasında bir mean ve bir spread’dir; neredeyse kimse ikincisini yayımlamaz.
Judge ve judge’ın kendi golden set’i
Bölüme bağlantı: Judge ve judge’ın kendi golden set’iRubric’ler open-ended cevaplara ölçeklenmez; bu yüzden standart hamle, çıktıyı bir modele puanlatmaktır. Frontier scale’de default olacak kadar iyi çalışır ve üç adı konmuş failure mode’u vardır: position bias, verbosity bias ve self-enhancement bias.5
Güvenmeden önce ölç. Aynı altmış cevap — on çalıştırmanın üçü — üç şekilde etiketlendi. İnsan etiketi benim: beş dosya açıkken altmış cevabın hepsini okudum ve tek yazılı kuralı uyguladım: cevap ancak sorunun istediği olguyu söylüyor ve dosyalarla çelişen hiçbir şey içermiyorsa geçer.
| grader | pass diyor | insanla aynı fikirde | false pass | false fail |
|---|---|---|---|---|
| keyword rubric | 17/60 | 50/60 = %83,3 [72,0, 90,7] | 8 | 2 |
| judge olarak model | 60/60 | 11/60 = %18,3 [10,6, 29,9] | 49 | 0 |
Judge altmışta altmış kez PASS dedi. İnsanın %18 puan verdiği bir sette bu agent’ı %100 accuracy ile raporlardı. Discriminative power’ı olmayan bir judge gürültülü bir araç değildir; sabit fonksiyondur ve sabit fonksiyon en iyi sistemine de en kötü sistemine de aynı skoru verir.
Prompting kurtarmadı. Dört varyant, aynı altmış item:
| judge prompt | pass diyor | insanla agreement |
|---|---|---|
| "PASS veya FAIL yanıtla." | 60/60 | %18,3 |
| "FAIL veya PASS yanıtla." — etiketler yer değiştirdi | 56/60 | %25,0 |
| failure sayılan şeylerin açık listesi eklendi | 55/60 | %26,7 |
bir çalışılmış FAIL örneği ve bir PASS örneği eklendi | 56/60 | %25,0 |
Talimat içinde iki etiketin sırasını değiştirmek dört verdict’i oynattı. Bu ölçülebilir bir etki ve yanlış türde bir etki: judge önündeki cevaba değil, prompt’un şekline yanıt veriyor.
Temiz gösterim pairwise’dır. Yirmi soru, her birinde açıkça doğru bir aday ve açıkça yanlış bir aday, iki sırayla da sunuldu:
picked the FIRST option 40/40 = 100.0 %
order-consistent (same winner both ways) 0/20 = 0.0 % [Wilson 0.0, 16.1]
picked the CORRECT answer 20/40 = 50.0 %Kırkta kırk A pozisyonunu seçti. Correctness üzerindeki %50 partial competence değil — aritmetik; çünkü doğru cevap trial’ların tam yarısında A pozisyonunda. Burada consistency, MT-Bench’in tanımladığı gibi "bir judge’ın iki assistant’ın sırası değiştirildiğinde tutarlı sonuç verdiği vakaların yüzdesi"dir; bu da karşılaştırmayı apples to apples yapar: GPT-4 bu ölçüde %65,0 alır ve few-shot prompting bunu %77,5’e çıkarır.5 Benimki sıfır alıyor.
Standart mitigation da aynı makaleden: "iki cevabın sırasını değiştirerek judge’ı iki kez çağır ve ancak bir cevap iki sırada da tercih edilirse win ilan et."5 Bunu burada uygula; judge yirmi çiftten sıfır kullanılabilir verdict üretir — bu doğru sonuçtur ve yirmi kendinden emin verdict’ten sonsuz kat iyidir.
Sonuçtan daha değerli bir metodoloji notu. Bir verbosity testi de çalıştırdım: aynı doğru cevap, bir kopyası hiçbir şey eklemeyen 36 kelimelik bir cümleyle şişirilmiş. Judge tam olarak trial’ların %50’sinde daha uzun versiyonu tercih etti — bu verbosity bias yokluğu gibi görünür ama hiç de öyle değildir; çünkü hep A pozisyonunu seçen bir judge herhangi bir dengeli pairing’de %50 alır. İlk bias kontrol edilmeden ikinci bir bias ölçemezsin. Pozisyonları değiştirmek sonradan eklenecek bir iyileştirme değildir; diğer tüm ölçümleri yorumlanabilir kılan şeydir.
Judge ne içindir. Parse edilebilir formu olmayan open-ended cevaplar: ton, kapsam, bir citation’ın cümlesini destekleyip desteklemediği, refusal’ın uygun olup olmadığı. Ucuz, hızlı ve kabaca base model’i kadar iyi.
Judge ne değildir. Ground truth değildir. Accuracy’si, bias profili ve maliyeti olan bir sistemdir; ürettiği herhangi bir sayının anlam taşıması için, bilinen failure’lar dahil olmak üzere kendi insan etiketli golden set’ine ihtiyacı vardır.
Dürüst caveat: bu judge yarım milyar parameter’lı bir model ve kimse böyle bir modelle not vermemeli. Mesele judge’ların kötü olması değil. Mesele şu: yukarıdaki sayıları üretmek sekiz dakika sürdü ve onlar olmasaydı bu judge’ın shipping kararındaki verdict’i %100 olacaktı.
İkinci panel: Python ve contamination probu
Bölüme bağlantı: İkinci panel: Python ve contamination probuBu, kursun ilan edilmiş üçüncü ve son Python paneli; nedeni public sayıların geldiği yer. lm-evaluation-harness, "LLM’ler için 60’tan fazla standart akademik benchmark’ü, yüzlerce alt görev ve varyant implement edilmiş hâlde" kapsar ve "Hugging Face’in popüler Open LLM Leaderboard’unun backend’i"dir; HELM, SWE-bench ve τ-bench Python entry point’leri olan Python paketleridir.6 Modelini yayımlanmış bir sayı karşısında çalıştırmak onların code’unu çalıştırmak demektir; birinin alıntıladığı sayıyla karşılaştırmak istediğin gün içinde bulunduğun ecosystem budur:
lm_eval --model hf \
--model_args pretrained=EleutherAI/gpt-j-6B \
--tasks hellaswag \
--device cuda:0 \
--batch_size 8İkinci neden, bu bölümdeki bir ölçümün HTTP üzerinden imkânsız olması. Contamination — test set’inin training data’ya sızmış olması — public benchmark’ü sessizce anlamsız kılan failure’dır ve bunun en keskin probu modelin kendi loss’unu gerektirir; hiçbir chat API bunu döndürmez. Bu, Bölüm 8’in token başına cross-entropy’sinin hafızaya dair bir soruya yöneltilmiş hâlidir:
def nll(text: str) -> float:
"""Mean negative log-likelihood per token, in nats."""
ids = tok(text, return_tensors="pt").input_ids.to(model.device)
with torch.no_grad():
out = model(ids, labels=ids)
return float(out.loss)On cümle çifti: beşi web’in var olduğundan beri her crawl’ında olanlardan, beşi bu sabah bu bölüm için yazılmış; her biri aynı içeriği taşıyan yeniden ifade edilmiş bir versiyonla eşleştirilmiş.
| set | canonical wording | yeniden ifade | gap |
|---|---|---|---|
| ünlü, 5 ortalaması | 1,21 | 3,03 | +1,83 |
| taze, 5 ortalaması | 5,02 | 5,96 | +0,93 |
Model bu sabah yazılmış bir cümle karşısında, milyon kez gördüğü bir cümleye göre dört kat daha şaşırıyor; yeniden ifade etmenin maliyeti ünlü olanlarda iki kat fazla — ekstra maliyet, anlaşılmış olmaktan ziyade ezberlenmiş olan kısım. Absolute loss, ezberlemeyi sıradan naturalness ile karıştırır; bu yüzden gap daha iyi istatistiktir ve continuation test daha da iyidir. Ona ilk altı kelimeyi ver:
famous "Permission is hereby granted, free of"
-> "charge, to any person obtaining a copy of this software and associated
documentation files (the "
famous "All human beings are born free"
-> "and equal in dignity and rights. The right to life, liberty, and security"
fresh "All evaluation harnesses are born tiny"
-> ", and the most common way to measure their size is by using a ruler."Beş ünlü string’in üçü altı kelimeden sonra kelimesi kelimesine devam etti; beş taze olanın hiçbiri etmedi. Bu, MIT License’ı ezbere okuyan yarım milyar parameter’lı bir model. Benchmark’ün public web’deyse, weights içinde olduğunu varsay. Bu aynı zamanda tüm bölümün argümanı: kendi verinden yazdığın, bir crawler’ın okuduğu hiçbir repository’ye koymadığın golden set, üzerinde hiç train edilmediğinden emin olabileceğin tek test set’idir.
Public benchmark’ler gerçekte neyi ölçer
Bölüme bağlantı: Public benchmark’ler gerçekte neyi ölçerYine de okunmaya değerler; yeter ki her birinin ölçtüğü şeyi, ona iliştirilmiş tek sayı yerine okuyasın.
| benchmark | neyi ölçer | makalesinden bir sayı |
|---|---|---|
| MMLU | 57 konu genelinde multiple-choice bilgi | GPT-3 şansı "ortalama neredeyse 20 percentage point" geçti7 |
| HELM | birçok metric × birçok scenario, standardize | core scenario coverage %17,9’dan %96,0’a çıktı8 |
| Chatbot Arena | crowdsourced pairwise insan tercihi | 240K’dan fazla oy; crowd oyları expert’lerle "iyi agreement" içinde9 |
| SWE-bench | gerçek GitHub issue’larını çözme, repo testleriyle graded | 2.294 problem; dönemin en iyi modeli "sadece %1,96" çözdü10 |
| τ-bench | simulated user ve domain policy ile tool use | retail’de gpt-4o ≈ %61 pass^1, ≈ %25 pass^84 |
| WebArena | çalışan web sitelerinde long-horizon görevler | en iyi GPT-4 agent %14,41, insanlar %78,2411 |
| OSWorld | uygulamalar genelinde gerçek desktop ve OS görevleri | 369 görev; en iyi model %12,24, insanlar %72,3612 |
| GAIA | insanlar için kolay, assistant’lar için zor sorular | 466 soru; insanlar %92, plugin’li GPT-4 %1513 |
| AgentBench | 8 ayrı environment’ta agent reasoning | commercial ve open modeller arasında büyük fark14 |
| AgentHarm | bir agent’ın malicious multi-step görevleri yürütüp yürütmeyeceği | 11 harm category üzerinde 110 malicious görev15 |
Tek bir satırı değil tabloyu al. Agentic benchmark’lerin hepsinde insanlar modellerin çok üzerindedir; bu, knowledge benchmark’lerinin tersidir ve alanın nerede olduğuna dair en iyi tek cümlelik özettir. Rakamları aylar içinde eskir; bu yüzden onları okuduğun tarihle birlikte cite et. Ve her biri senin olmayan bir görevi ölçer.
Production’da karar veren metrics
Bölüme bağlantı: Production’da karar veren metricsAccuracy hakkında tartışırsın. Şeyin ship edilip edilmeyeceğine karar verenler bunlardır. Dördü de zaten ölçülmüş iki yüz çalıştırmadan çıkar.
Call başına değil, çözülen görev başına maliyet. agent attempt başına $0.001345 ve gerçekten çözülen görev başına $0.005172 tutuyor — 3,85 kat daha fazla; çünkü attempt’lerin dörtte üçü hiçbir şey üretmiyor. Latency de aynı davranır: attempt başına 1.213 ms, çözülen görev başına 4.667 ms. Her retry, her yeniden sorma, her terk edilmiş trajectory ikinci sayının içindedir ve birincide görünmez.
Accuracy’den daha iyi bir diagnostic. 200 attempt’in 123’ünde agent tek bir araç bile çağırmadan cevap verdi — bakmak yerine tahmin etti. Buna göre ayırınca:
answered without reading anything 8/123 = 6.5 % [3.3, 12.3]
answered after reading something 44/77 = 57.1 % [46.0, 67.6]Aralıklar birbirine yaklaşmıyor bile. Bu aggregate %26’dan daha değerlidir; çünkü düzeltilecek şeyi adlandırır — model reasoning’de başarısız değil, bakmakta başarısız — ve düzeltme modelde değil harness’tadır. Bu bölümün kendi standartlarına borçlu olduğu bir caveat: iki grup farklı görevlerdir, aynı görevlerin paired hâli değil; dolayısıyla bu farkın bir kısmı, araçları tam da zor bulduğu sorularda atlıyor olmasından gelebilir. Split bir diagnostic’tir, causal claim değil.
Human intervention rate, bir alıcının ilk sorduğu metric’tir: çalıştırmaların hangi oranı bir approval, guardrail veya handoff’ta durdu? Bölüm 23’ün typed interruptions’ı bunu sayılabilir kılar; görev türü ve hafta bazında sayıldığında, işini öğrenen bir agent ile sessizce queue’ya dönüşen bir agent’ı ayıran şey budur.
Abandonment, hiçbir offline suite’in göremediği metrictir: cevabı okuyup sekmeyi kapatan ve işi kendisi yapan kullanıcı. Offline evaluation bir gate’tir; production evaluation, aynı grader artı bu dört unsurla puanlanan gerçek trafiğin sürekli sample’ıdır.
Ve Bölüm 17’den devralınan kural: exact output üzerinde assert etme. Properties üzerinde assert et — valid JSON, doğru schema, doğru aracın çağrılması, tolerans içindeki sayı, gerekli substring’in bulunması. Bu bölümün başındaki exact-match sütunu, bu kural bozulduğunda olan şeydir.
Üçüncü tarafa ne gönderirsin
Bölüme bağlantı: Üçüncü tarafa ne gönderirsinBir tedarikçiyi değerlendirmek yalnızca accuracy meselesi değildir; bu da bu kursun etik kısmının ikinci yarısıdır ve appendix yerine kendi heading’ini hak eder.
Bias’ı ölç, varsayma. Bir modelin isimler, lehçeler, cinsiyetler veya milliyetler üzerindeki davranışı hakkında neye inanırsan inan, bu senin pipeline’ının ölçülebilir bir özelliğidir ve araç zaten sahip olduğun araçtır: golden set’ini al, yalnızca attribute’u değiştir, paired karşılaştır. HELM tam olarak accuracy tek başına raporlanırken bias, toxicity, calibration ve robustness da karar verilebilir olduğu için vardır.8 Bir vendor’ın model card’ı başlangıç noktasıdır, girdilerin hakkında kanıt değil.
Contamination da bir tedarikçi sorusudur. Yukarıdaki prob, yayımlanmış bir sayının ne üzerinde ölçüldüğünü ve modelin data’sının ne zaman kesildiğini sorma nedenidir.
Retention, training ve residency, 7 Eylül 2026’da okundu. Bunlar değişir; bu yüzden cevabın yanına tarihi kaydet. Anthropic’in policy sayfası şöyle der: "Varsayılan olarak, commercial products’larımızdan (örn. Claude for Work, Anthropic API, Claude Gov vb.) gelen girdilerinizi veya çıktılarınızı modellerimizi train etmek için kullanmayacağız"; istisna, feedback olarak açıkça gönderdiğiniz content’tir ve bu "5 yıla kadar" saklanır.16 OpenAI’nin data controls dokümantasyonu "OpenAI API’ye gönderilen data, OpenAI modellerini train etmek veya iyileştirmek için kullanılmaz (data’yı bizimle paylaşmayı açıkça seçmediğiniz sürece)" der, abuse-monitoring log’ları için otuz günlük default retention’ı açıklar ve "müşteri content’ini abuse monitoring log’larından hariç tutan" Zero Data Retention ile bölge listesi genelinde configurable data residency sunar.17
İlk production call’dan önce yazılı alman gereken dört soru var; çünkü her birinin sahibi farklıdır: data’m training için kullanılıyor mu; ne kadar süreyle ve kim tarafından tutuluyor; nerede işleniyor ve saklanıyor; provider yerine reseller, gateway veya aggregator kullanırsam bunların hepsine ne oluyor. Sürprizlerin çoğu sonuncudadır ve hiçbir benchmark bunu söylemez.
Buradan sonrası
Bölüme bağlantı: Buradan sonrasıArtık elinde araç var: sahip olduğun bir golden set, her sayının üzerinde bir interval, her karşılaştırma için paired test, kimseye göstermediğin çalıştırmalar için pass^k, ölçülmüş bir judge ve public score’un bir anlamı olup olmadığını yoklayan bir prob. Bölüm 23’ün kapanış iddiası artık asserted değil, checked olabilir — harness bir agent’ı governable kılar, correct kılmaz — ve bunu kontrol etmek iki yüz run ve sekiz dakika sürdü.
Bunların hiçbirinin ölçmediği bir agent özelliği var ve insanları işinden eden de o.
Bu bölümün golden set’indeki her görev benim tarafımdan yazıldı ve agent’ın okuduğu her dosya benim tarafımdan yazıldı. O dizindeki hiçbir şey bir şey yapmaya çalışmıyordu. agent’a okuması söylenen bir dosyada tek satırı değiştir — satır, onu bir sonraki okuyacak şeye hitap eden bir instruction ile bitsin — ve %26 skor alan agent aynı araçlarla, aynı izinlerle ve aynı temiz trace ile onu izler; bu bölümdeki her sayı tam olarak yerinde kalır. Bir evaluation suite, sistemin senin hedefine ne sıklıkla ulaştığını ölçer. Başka birinin kendi hedefini ne kadar kolay yerine koyabileceğini ölçmez.
Bölüm 30 işte bu: prompt injection, private data, untrusted content ve external communication’dan oluşan lethal trifecta ve bir agent’a gerçek izinler vermenin maliyeti. Bu bölümün kaçındığı gözlemle açılır — aynı passing score’un, kendisine okuması söylenen bir dosyaya attacker’ın yazdığı şeyi aynen yapan bir agent ile uyumlu olduğu gerçeğiyle.
Kaynaklar ve yöntem
Bölüme bağlantı: Kaynaklar ve yöntemYukarıdaki her sayı tek bir makinede üretildi ve hiçbiri paid endpoint’e dokunmadı. agent, beş dosyalık bir dizin üzerinde dört aracından ikisiyle Bölüm 23’ün loop’udur; portun arkasındaki model Qwen/Qwen2.5-0.5B-Instruct, Bölüm 23’tekiyle aynı biçimde chat completions endpoint şeklinde küçük bir server üzerinden expose edilmiştir; ancak o bölümün CPU’su yerine bir consumer GPU üzerinde half precision çalışır. Maliyetler Bölüm 16’nın rate’lerini kullanır — milyon input token başına $2.00 ve milyon output başına $12.00 — ve ölçülmüş token count’larına uygulanır. Repeated runs temperature 0,7 ve fixed seed’ler kullanır; böylece tüm set yeniden üretilebilir. Dört kollu tablo greedy’dir. Intervals %95 Wilson’dır, paired comparisons discordant pairs üzerinde two-sided exact sign tests’tir; Wilson interval Bölüm 4’ten, exact paired sign test Bölüm 15’ten alınmış ve değişmeden yeniden kullanılmıştır. İnsan etiketleri bana aittir; metinde alıntılanan yazılı kural altında altmış cevaba uygulanmıştır. Buradaki her magnitude’u yarım milyar parameter’lı bir modelin özelliği, her yöntemi transferable olarak oku: daha büyük bir model tüm sayıları yukarı taşır, araçların hiçbirini değiştirmez.
Referanslar
Bölüme bağlantı: Referanslar-
OpenAI, A practical guide to building agents (PDF), sayfa 8, 7 Eylül 2026’da okundu. Yukarıda alıntılanan üç adımlı sıralamanın ve eşlik eden "bir performance baseline oluşturmak için agent prototype’ını her görevde en yetenekli modelle kur. Oradan sonra, hâlâ kabul edilebilir sonuçlara ulaşıp ulaşmadıklarını görmek için daha küçük modelleri dene" tavsiyesinin kaynağı. Bölüm 22 ve 25, tanımsal ve orchestration sayfalarını alıntılar. ↩
-
Schaeffer, R., Miranda, B. ve Koyejo, S. Are Emergent Abilities of Large Language Models a Mirage? arXiv:2304.15004 (2023). Discontinuous, all-or-nothing metric’lerin pürüzsüz underlying improvements’tan görünürde sıçramalar ürettiği argümanı; Bölüm 10’da anılan BIG-Bench audit’iyle birlikte. Kendi uyarıları tekrar etmeye değer: makaledeki hiçbir şey büyük modellerin emergent abilities sergileyemeyeceğini iddia etmez. ↩
-
Kalai, A. T., Nachum, O., Vempala, S. S. ve Zhang, E. Why Language Models Hallucinate. arXiv:2509.04664 (2025). Doğru-yanlış puanlanan benchmark’lerin abstention yerine tahmini ödüllendirdiği argümanı ve "ek hallucination evaluation’ları tanıtmak yerine, hizalanmamış ama leaderboard’ları domine eden mevcut benchmark’lerin scoring’ini değiştirme" önerisi. Bölüm 19 bunu retrieval tarafından cite eder; bu, aynı iddianın evaluation tarafıdır. ↩
-
Yao, S., Shinn, N., Razavi, P. ve Narasimhan, K. τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains. arXiv:2406.12045 (2024). Yukarıda alıntılandığı gibi tanımlanan
pass^k’in kaynağı; iki estimator da makalede yan yana basılmıştır. Abstract’ın manşeti, state-of-the-art function-calling agents’ın "görevlerin <%50’sinde başarılı olduğu ve oldukça inconsistent olduğu (retail’de pass^8 <%25)"dir; bölüm 1 τ-retail üzerinde ≈%61pass^1ve ≈%25pass^8gpt-4o rakamlarını verir. Karşılaştırdığıpass@kestimator’ı Chen, M. vd., Evaluating Large Language Models Trained on Code, arXiv:2107.03374 (2021) çalışmasından gelir. ↩ ↩2 ↩3 -
Zheng, L. vd. Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. arXiv:2306.05685 (2023). Üç adı konmuş bias’ın, yukarıda kullanılan consistency tanımının ("bir judge’ın iki assistant’ın sırası değiştirildiğinde tutarlı sonuç verdiği vakaların yüzdesi"), "yalnızca GPT-4’ün vakaların %60’tan fazlasında tutarlı sonuç ürettiği" bulgusunun (%65,0’dan few-shot ile %77,5’e yükselir) ve kelimesi kelimesine alıntılanan swap-and-require-agreement mitigation’ın kaynağı. Pozitif sonucu da önemlidir: GPT-4 judge’ları human evaluation’larla "%80’i aşan agreement rate"e, yani "human-human agreement ile aynı seviyeye" ulaşır — judge kullanmanın nedeni de budur, kendi judge’ını ölçmenin nedeni de. ↩ ↩2 ↩3
-
EleutherAI, Language Model Evaluation Harness, proje README’si 7 Eylül 2026’da okundu: "LLM’ler için 60’tan fazla standart akademik benchmark, yüzlerce alt görev ve varyant implement edilmiş hâlde" ve "Hugging Face’in popüler Open LLM Leaderboard’unun backend’i". Yukarıda alıntılanan
lm_evalinvocation, README’nin kendi örneğidir. Liang, P. vd., Holistic Evaluation of Language Models, arXiv:2211.09110 (2022), diğer standart runner’dır ve evaluation design konusunda daha iyi okumadır. ↩ -
Hendrycks, D., Burns, C., Basart, S., Zou, A., Mazeika, M., Song, D. ve Steinhardt, J. Measuring Massive Multitask Language Understanding. arXiv:2009.03300 (2020). 57 görev; abstract’ın en büyük GPT-3 modelinin "random chance’i ortalama neredeyse 20 percentage point geçtiği" iddiası, bu benchmark’ün saturation’ının ne kadar yeni olduğunu hatırlatır. ↩
-
Liang, P. vd. Holistic Evaluation of Language Models. arXiv:2211.09110 (2022). 16 core scenario ve 30 model üzerinde yedi metric — accuracy, calibration, robustness, fairness, bias, toxicity ve efficiency — ve yukarıda alıntılanan coverage rakamları. Okuma nedeni framing’dir: yedisinden hangisini raporladığın da başlı başına bir seçimdir. ↩ ↩2
-
Chiang, W.-L. vd. Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132 (2024). Yazı anında 240K’dan fazla oy, crowdsourced pairwise preference ve "crowdsourced human votes are in good agreement with those of expert raters" iddiası. ↩
-
Jimenez, C. E., Yang, J., Wettig, A., Yao, S., Pei, K., Press, O. ve Narasimhan, K. SWE-bench: Can Language Models Resolve Real-World GitHub Issues? arXiv:2310.06770 (2023). 12 Python repository’den 2.294 problem, repository’lerin kendi testleriyle graded; dönemin en iyi modeli "sadece %1,96" çözdü. Bölüm 23, "harness" kelimesinin diğer anlamı için bunu kullanır. ↩
-
Zhou, S. vd. WebArena: A Realistic Web Environment for Building Autonomous Agents. arXiv:2307.13854 (2023). Dört domain genelinde çalışan web siteleri; en iyi GPT-4 agent %14,41, insanlar %78,24. ↩
-
Xie, T. vd. OSWorld: Benchmarking Multimodal Agents for Open-Ended Tasks in Real Computer Environments. arXiv:2404.07972 (2024). Gerçek operating system’lerde 369 görev; insanlar %72,36’nın üzerinde, en iyi model %12,24; ana gap olarak GUI grounding adlandırılır. ↩
-
Mialon, G., Fourrier, C., Swift, C., Wolf, T., LeCun, Y. ve Scialom, T. GAIA: A Benchmark for General AI Assistants. arXiv:2311.12983 (2023). 466 soru; insanlar %92, plugin’li GPT-4 %15 — bir kişi için kolay olan ile bir assistant için kolay olan arasındaki gap’in en temiz yayımlanmış ifadesi. ↩
-
Liu, X. vd. AgentBench: Evaluating LLMs as Agents. arXiv:2308.03688 (2023). Sekiz ayrı environment ve üst commercial modeller ile benzer boyuttaki open-source modeller arasında önemli disparity. ↩
-
Andriushchenko, M. vd. AgentHarm: A Benchmark for Measuring Harmfulness of LLM Agents. arXiv:2410.09024 (2024). 11 harm category üzerinde 110 açıkça malicious agent görevi (augmentations ile 440); leading modellerin "jailbreaking olmadan malicious agent requests karşısında şaşırtıcı biçimde compliant" olduğu ve basit universal jailbreak template’lerinin capabilities’i korurken agent’lara transfer olduğu bulgusu. Bölüm 30’a köprüdür: capability benchmark ve harm benchmark aynı sistemi ölçer ve hazır olup olmadığı konusunda anlaşamaz. ↩
-
Anthropic, Is my data used for model training?,
privacy.claude.com, 7 Eylül 2026’da okundu. Feedback istisnası ve gönderilen feedback için beş yıllık saklama penceresi dahil olmak üzere yukarıda kelimesi kelimesine alıntılanmıştır. ↩ -
OpenAI, Your data (API data controls documentation),
developers.openai.com, 7 Eylül 2026’da okundu. Default no-training statement’ın, otuz günlük abuse-monitoring retention’ın, Zero Data Retention açıklamasının ve eligible endpoints listesinin, ayrıca data residency bölgelerinin kaynağı. ↩