- Yapay zeka modellerinin kodlama becerisini değerlendirmek, dağıtım ve güvenlik kararlarıyla doğrudan bağlantılı; ancak OpenAI’nin denetiminde SWE-Bench Pro görevlerinin yaklaşık %30’unun bozuk durumda olduğu tahmin ediliyor
- SWE-Bench Pro daha uzun görev kapsamı ve daha gerçekçi problemleri hedefliyordu; ancak 731 herkese açık görevde başarı oranının 8 ayda %23,3’ten %80,3’e yükselmesi artık olduğu gibi güvenilir görünmüyor
- Kusurlar; aşırı katı testler, eksik belirtilmiş istemler, düşük kapsama sahip testler ve yanıltıcı istemler olarak ayrılıyor; doğru gönderimler başarısız olabilir veya eksik düzeltmeler geçebilir
- Denetim, model denemeleri, görev metaverileri ve hata takibine dayanarak 286 potansiyel sorunlu görevi işaretledikten sonra bir araştırma ajanı ve 5 deneyimli mühendisin bağımsız incelemesinden geçirdi
- OpenAI, SWE-Bench Pro’nun benimsenmesine yönelik tavsiyesini geri çekti; değerlendirme benchmark’ları, model becerisi ve güvenlik kararlarını çarpıtmayan anlamlı sinyaller sağlamalı
SWE-Bench Pro denetiminde ortaya çıkan sorunlar
- OpenAI, SWE-Bench Pro’yu denetlemesinin sonucunda tüm görevlerin yaklaşık %30’unun bozuk durumda olduğunu tahmin ediyor
- Model becerisini doğru ölçmek, Preparedness Framework kapsamındaki dağıtım ve güvenlik kararlarını da etkiliyor
- Kusurlu değerlendirmeler, model becerisinin olduğundan farklı anlaşılmasına yol açabilir ve güvenlik kararlarını ile araştırma önceliklerini sarsabilir
SWE-Bench Pro’nun amacı ve başarı oranındaki değişim
- OpenAI, daha önce yaygın kullanılan SWE-bench Verified’da tasarım ve kontaminasyon sorunları tespit etmiş ve bu değerlendirmenin yazılım geliştirme becerisine dair artık anlamlı bir sinyal vermediğine karar vermişti
- O dönemde OpenAI, topluluğa SWE-Bench Pro’ya geçmesini önermişti
- SWE-Bench Pro, SWE-bench Verified’ı geliştirerek daha uzun görev kapsamı ve daha gerçekçi kodlama problemleriyle ajan türü kodlama becerisini izlemek üzere tasarlandı
- Görevler, herkese açık ve özel depolardaki özellik değişikliği geçmişlerinden programatik olarak çıkarıldı
- Modelin, mevcut işlevleri bozmadan yeni özellik testlerini geçen bir çözüm uygulaması gerekiyor
- 731 görevlik herkese açık bölümde frontier modellerin başarı oranı 8 ay boyunca %23,3’ten %80,3’e yükseldi
Kalite güvence hattı
- OpenAI, her veri noktasının gerçek model becerisini yansıtıp yansıtmadığını doğrulamak için bir kalite güvence hattı oluşturdu
- İlk otomatik filtre; modele verilen talimatları, modelin çözüm denemelerini ve puanlama testlerini inceleyerek bozuk veya sorunlu olduğundan şüphelenilen örnekleri işaretledi
- Bu süreçte 286 potansiyel sorunlu görev işaretlendi
- İşaretlenen alt küme iki yoldan daha derinlemesine incelendi
- İnsan denetimli ajan incelemesi: Araştırma ajanı ayrıntılı doğrulama yaptı ve son insan kararından geçti
- İnsan anotasyon kampanyası: Deneyimli yazılım geliştiriciler görevleri doğrudan inceledi
Ajan incelemesi ve insan incelemesi yöntemi
- İşaretlenen sorunlar Codex tabanlı araştırma ajanı tarafından denetlendi
- Ajan, görev deposuna ve çalıştırma ortamına erişti
- Test çalıştırma, depo dosyalarını inceleme, model denemelerini ve yaygın hata modlarını araştırma yapabiliyordu
- Çevre kod ve depo gelenekleriyle çözülebilecek makul belirsizlikleri gerçek eksik belirtimden ayırmak için kullanıldı
- Birkaç tur bağımsız derin denetimin ardından araştırmacı özetleri inceledi ve nihai karar ile sorun etiketini belirledi
- Paralel yürütülen insan anotasyon kampanyasında deneyimli yazılım mühendisleri, benchmark hedefleri, sorun sınıflandırması ve sınır durumları konusunda eğitim aldıktan sonra görevleri inceledi
- Her görevi 5 mühendis inceledi
- İnceleyenler, görünen problem açıklamasına, test case’lerine ve doğru referans çözüm olan gold patch’e dayanarak önce bağımsız karar verdi
- Ardından hat analizi veya kayıtları yardımcı bağlam olarak kullandı
- Somut gerekçelere göre etiket ve önem derecesi atadı; görüş ayrılıkları veya düşük güvenli örnekler ek incelemeye yükseltildi
Dört hata türü
- Denetimde belirlenen sorunlar başlıca dört kategoriye ayrıldı
- Aşırı katı testler: İstemde yer almayan belirli uygulama ayrıntılarını zorunlu kılarak işlevsel olarak doğru gönderimleri geçersiz sayar
- Eksik belirtilmiş istemler: Gizli testlerin gerektirdiği ancak makul biçimde çıkarılması zor olan gereksinimleri atlar
- Düşük kapsama sahip testler: İstenen işlevi yeterince doğrulamaz; bu nedenle eksik düzeltmeler de geçebilir
- Yanıltıcı istemler: Modeli yanlış davranışa yönlendirir veya test gereksinimleriyle çelişir
- Bazı görevlerde istem belirli bir uygulama istediği halde gizli test case’leri farklı bir davranış bekliyordu
İnsan incelemesi ile ajan incelemesi arasındaki fark
- İnsan inceleyicilerin bir görevi bozuk olarak işaretleme olasılığı, araştırma ajanına göre daha yüksekti
- İki inceleme yolu arasında kategori kararı farkları vardı; ancak işaretlenen görevler içinde insan etiketlerinde “bozuk değil”in en çok verilen etiket olduğu bir durum yoktu
- Ajan hattının işaretlediği kategori ile insan inceleyicilerin kararı vakaların %74’ünde örtüştü
- İnsan inceleyiciler bir görev için birden fazla etiket seçmeye de daha yatkındı
- Bu, görevin birden fazla şekilde bozuk olduğuna veya tek bir kategoriye temiz biçimde uymadığına işaret ediyor
- Ajan ve inceleyicileri birlikte kullanan hat, insanların bulduğu geniş hata modlarını yakaladı; ancak ek ve örtüşen sorunları temkinli biçimde daha az saydı
- En büyük fark düşük kapsama sahip testlerde görüldü
- İnsanlar bunu benchmark’ın %9,4’ünde en yaygın sorun olarak seçti
- Ajan hattı ise %4,1 olarak işaretledi
Benchmark oluşturmanın zor olmasının nedenleri
- SWE-Bench Pro ve SWE-bench Verified örnekleri, benchmark’ların sıkı biçimde doğrulanması gerektiğini gösteriyor
- Açık kaynak depolardaki issue’lar ve pull request’ler aslında model değerlendirmesi için değil, insan iş birliği için oluşturulur
- Bakımcılar ve katkıda bulunanlar arasında uzun gidip gelmelerin olduğu ortamlarda problem açıklaması, birleştirilen kod ve birim testleri, model değerlendirmesi için her zaman temiz ve bağımsız görevler oluşturmaz
- Pull request’lerde yer alan testler belirli bir değişikliği doğrulamak için yazılabildiğinden, uygulama yönteminden bağımsız çözüm kriterlerinden ziyade belirli bir uygulamayı zorunlu kılabilir
Gelecekteki değerlendirme yönü
- Model becerileri geliştikçe değerlendirme kusurlarını bulmak da eskisine göre daha kolay hale geliyor
- Gelişmiş modeller; istemleri, testleri, yamaları, çalıştırma izlerini ve sınır durumlarını daha derin ve tutarlı biçimde inceleyerek, eskiden büyük ölçekte bulunması zor veya maliyetli olan benchmark sorunlarını ortaya çıkarabilir
- OpenAI, daha geniş değerlendirme topluluğunun, deneyimli yazılım geliştiriciler tarafından doğrudan model becerisini test etme amacıyla hazırlanan yeni benchmark’lar geliştirmesini bekliyor
- Bu yaklaşım, ölçülmek istenen yüksek zorluk ve gerçekçiliği korurken süreç boyunca daha iyi insan denetimini mümkün kılar
- OpenAI, bu analizde ortaya çıkan sorunlar nedeniyle SWE-Bench Pro’nun benimsenmesine yönelik önceki tavsiyesini geri çekiyor
- Değerlendirmeler manipüle edilmesi zor, güvenmesi kolay olmalı ve model becerisini ya da hizalanma durumunu gerçekten yansıtan anlamlı sinyaller sağlamalı
1 yorum
Hacker News görüşleri
Verimlilik ve zekayı birlikte ölçmek gerekir. Küçük modeller, bilgisayar kullanarak sonuçları test etme ya da sorunla daha uzun süre uğraşıp çıktıyı doğrulama gibi stratejiler kullanabilir; büyük modellerin ise kendi test bütçesi yetersiz kalabilir, bu da ilginç taktik farkları doğurabilir
https://artificialanalysis.ai/?cost=intelligence-vs-cost-per...
Toby Ord, kamuya açık verilerle yapılabilecek kadarını yapmış ama sonuç pek iyi görünmüyor
https://www.tobyord.com/writing/hourly-costs-for-ai-agents
Buna yürütme harness’i seviyesinde hile, modelin ödül hack’lemesi gibi şeyler de dahil. Aylar geçmesine rağmen aklımı kurcalayan şey gpt-5.5'in resmî gönderimi, özellikle de şu görev: https://www.tbench.ai/leaderboard/terminal-bench/2.0/codex/0...
Görevin süre sınırı https://github.com/harbor-framework/terminal-bench-2/blob/ma... uyarınca verifier için 1200 saniye, agent için 1200 saniye, environment build için 600 saniye; yani hiçbir agent 3000 saniyeyi aşmamalı. Ama yukarıdaki bağlantıdaki 5 denemenin 2'si 3000 saniyeyi çok aşıp sırasıyla 75 ve 80 dakika sürmüş. Başarısız olmuş olsalar bile bu kadar uzun çalışmaları şüpheli. Goodhart yasasının iş başında olduğu bir örnek
İnsanları benchmark’lamak da pek iyi işlemiyor. Kodlama yeteneği, biriyle doğrudan etkileşime girmeden düzgünce ölçülemiyor. Eğer model aslında bir insan simülatörüyse, simülasyon daha doğru hale geldikçe benchmark’ların hâlâ faydalı olmasını beklemek başlı başına tuhaf. Sonuçta bu, yukarıda söylenen “Goodhart yasası”nın daha uzun anlatılmış hali ve gerçekten de yasa gibi işliyor
O halde mantık şu mu: son teknoloji modeller, junior mühendis bile değil; hatta o seviyeyi aşma becerisi olmayan ilk ayındaki bir stajyer mi?
İlginç olan, LLM’lerin böyle benchmark’larda nasıl %70’in üstüne çıktığı ya da kötü kurgulanmış soruların bir kısmını nasıl doğru yaptığı. Test yazarlarının stilini örtük olarak mı öğrenmişler? Çözümler eğitim verisine sızmış olabilir mi?
Yine de Fable’ın bile, OpenAI'ın bu analizi çalıştırmadığı gizli sette yaklaşık %72'de kalması biraz iç rahatlatıcı. Benchmark’ın kendisini, çok dolaylı yollar dışında doğrudan öğrenmiş gibi görünmüyor
Küçük açık modeller bu tuhaf alışkanlıkları asla öğrenemeyeceğine göre, modelleri adil değerlendirecek iyi bir yöntemin gerçekten önemli olduğu açık. Ayrıca OpenAI biraz suyu bulandırıyor; agent’a haksızlık edecek biçimde bozuk problemler yalnızca yaklaşık %20, buna karşılık %4-10 kadarı agent lehine bozuk, dolayısıyla benchmark tavanı muhtemelen %80-85 civarında
Bu yüzden çok dar görev prompt’larını doğrulamak kolaydır ama meydan okuma olarak fazla basit kalabilirler. Tersine, daha gerçekçi görev prompt’larını doğrulamak çok daha zordur ve sağlam verifier’lar yazıp bunları düşük maliyetle çalıştırmak da zordur
Elbette bu, benchmark’ın iddia ettiğinden farklı bir şeyi test etmek anlamına geliyor; ama temiz bir benchmark’tan ziyade gerçeğe daha yakın bir şeyi kazara test ediyor olması da onu bir bakıma anlamlı kılıyor
Tabii bu, agent’ın başarısız testleri görüp yineleme yapabildiği durumda geçerli. Aksi halde bu sadece bir sorun. Bir de belirli bir çözümün uygulama ayrıntılarını testlerin içine gömüp tamamen keyfi bir iç yapı dayatmaları var; bu daha da kötü. Gerçek hayatta böyle bir durumla karşılaşmazsın
Bir yandan bunu gerçekten yapmış olmaları övgüye değer. Öte yandan, “garbage in, garbage out” sözünün tam karşılığı. Asıl yazarların bunu gerçekten doğrulamamış olması da biraz utanç verici, aşağı akıştaki hiç kimsenin doğrulamamış olması da utanç verici. Yazıya bakınca, LLM sorunları bulmuş olsa da profesyonel yazılım mühendislerinin bulduğu sorunları küçümseme eğilimi olduğu da görülüyor
Benchmark’lar içlerine bakınca genelde epey kötü çıkıyor
Arka plan olarak, Codex/Claude Code kullanırken gereken çeşitli zahmetli adımları yerine koymak için denetleyici ajanı yinelemeli olarak geliştiriyordum ve yakın zamanda bu ajanı Terminal Bench 2.1 üzerinde çalıştırdım
İlk başta sevinmiştim. Çünkü spesifikasyona dayalı denetleyici, birçok görevde temel Codex’ten daha iyi sonuç verdi. Ama daha yakından bakınca görevlerin kendisinde çok fazla sorun olduğu ortaya çıktı
Esas mesele, talimatların sık sık muğlak olmasına karşılık test vakalarının aşırı derecede spesifik olması. Örneğin
configure-git-webserver, “so that I can run” gibi bir ifade yüzünden ajanın neyi sağlaması, neyi kaldırması gerektiği sınırını belirsizleştiriyor. Fazla düşünen bir ajan, sunucuyu yapılandırdıktan sonra kullanıcının aynı komutu çalıştırması halinde çakışma olacağını varsayıp doğrulayıcının kontrol ettiği tam dosyaları siliyormake-mips-interpreter, “I will check that you booted doom correctly” ifadesi yüzünden denetleyicinin, kullanıcının Doom’un bağımsız olarak açıldığını kontrol ettiğini değil, ajanın başlattığı sonucu kontrol ettiğini yorumlamasına yol açıp oluşturulmuş/tmp/frame.bmpdosyasını bırakıyor. Doğrulayıcı mevcut bir/tmp/frame.bmpvarsa çıkıyor, bu yüzden Doom’u başlatamıyor ve önyükleme sürecinde dosyanın yeniden oluşturulup oluşturulmadığını da kontrol etmiyor[0]mcmc-sampling-staniçinde denetleyici ajan çoğu zaman doğru değere ulaşıyordu, ama basit ondalık yerine alana özgü sayısal çıktıyı bilimsel gösterimle veriyordu. Doğrulayıcı sonucu yanlış parse edip başarısız oluyordu[1]Bu tür uyuşmazlıklar sadece bunlarla sınırlı değil; bu yüzden Terminal Bench 2.1’in zaten doygunluğa ulaştığını ve GPT-5.6 ile Mythos sonuçlarının sırasıyla %88.8 ve %88 ile beklenebilir üst sınıra neredeyse dayandığını düşünüyorum. En büyük sorun, benchmark’ların çoğunun tek seferlik çalıştırma olması ve gerçek kullanıcıların araçları kullanırken başlıca biçimi olan uzun, yinelemeli çalışmalarda model+harness’ı neredeyse hiç test etmemesi
[0] https://github.com/harbor-framework/terminal-bench-2-1/issue...
[1] https://github.com/harbor-framework/terminal-bench-2-1/issue...
SWE-Bench’in tamamının baştan beri kusurlu olduğunu herkes zaten bilmiyor muydu? Yazarlar bile sınırlamaları kabul etti ve uzun zaman önce bir sonraki aşamaya geçti
Bunun neden kötü bir benchmark olabileceğini anlıyorum, ama eğer mesele; aşırı katı testlerin prompt’ta açıkça belirtilmeyen belirli uygulama ayrıntılarını dayatıp işlevsel olarak doğru gönderimleri geçersiz kılması, yetersiz prompt’ların gizli testlerin dayattığı ama makul biçimde çıkarılamayacak gereksinimleri atlaması, düşük kapsamlı testlerin istenen işlevi daha az doğrulayıp eksik düzeltmelerin geçmesine izin vermesi ve yanıltıcı prompt’ların modeli yanlış davranışa yönlendirmesi ya da test gereksinimleriyle çelişmesi ise, amaç gerçek yazılım mühendisleriyle modelleri karşılaştırmak olduğunda bu aslında oldukça gerçekçi bir durum
Bu, bir hemşirelik sınavı hazırlayıp sonra bazı soruları, çizelgede olmayan ek bilgilerin sorumlu doktordan istenmesi gerektiği ya da hastanın ailesinin yaşlı büyükannenin tıbbi geçmişini yeterince anlatmadığı gerekçesiyle işaretlemeye benziyor. Daha titiz bir benchmark isteyebilirsiniz, ama OpenAI modelleri gerçek çalışanların yerine geçebilecek araçlar olarak vaat ediyorsa bu iyi bir tablo değil. Hatta tam tersine, bunları test etmek istemeniz gerekir
“Benchmark’ı düzeltmek için gereken tüm işi yapıp sonunda benchmark’ı bırakmaya karar verdiler” gibi okunuyor. Temel veri gerçekten bu kadar kıt da yamalanamıyor mu? Sonunda benchmark üretiminde biraz daha seçici bir yaklaşım öneriyorlar ama gerçek dünyadan gelen dağınık ve kusurlu testleri adil biçimde yamama yöntemi de bence oldukça sağlam bir yol
“Bozuk instance listesi burada” ya da “bundan sonra kullanacağımız SWE Bench Pro alt kümesi şu” gibi bir şey de söylenebilirdi. Mükemmelin iyinin önünü kesmesine izin veriliyor
Gerçi OpenAI, SWE-Bench Verified’ı çıkarırken tam da bunu yaptı; dolayısıyla ben saçmalıyor olabilirim
Şu anda SWE benchmark’larında state of the art olarak neyi görmek gerekir?
Benim düşünceme ve kişisel değerlendirmeme göre, bir modelin potansiyel üst sınırı daha yüksek olsa bile o koda gerçekten onay vereceğimden emin değilsem değeri uzun zamandır sınırlı
[0] https://deepswe.datacurve.ai/
[1] https://cognition.com/blog/frontier-code-1.1
[0]: https://deepswe.datacurve.ai/
https://cognition.ai/blog/frontier-code var. Açık söylemek gerekirse ilgili ekipteydim, ama burada swebench pro/deepswe sorunları da ele alınmıştı
AGI'ye ulaşmak, tüm benchmark'ları geçmekten daha fazlası olmalı ve bilinmeyen problemleri de hesaba katmalı
Çözüm ya a) LLM'i benzer performansla daha küçük hale getirip ezber yapmasını veya benchmark'ı hedeflemesini engellemek, ya da b) gerçek dünya verisinin tamamını kapsayan bir benchmark oluşturmaktır; ancak ikincisi pratikte imkansızdır