LLM'lerin gerçek GitHub issue'larını çözerek yazılım mühendisliği becerilerini ölçen değerlendirme çerçevesi.

SWE-bench, büyük dil modellerinin gerçek dünya yazılım mühendisliği görevlerini ne kadar başarılı biçimde gerçekleştirebileceğini ölçen kapsamlı bir değerlendirme çerçevesidir. 2023 yılında Princeton Üniversitesi araştırmacıları tarafından geliştirilen bu benchmark, popüler Python projelerinin GitHub depolarından toplanan gerçek issue'lar ve karşılık gelen pull request'lerden oluşur. Değerlendirme akışı şu şekilde işler: Modele bir Python deposunun belirli bir sürümü ve o sürümde açık olan bir GitHub issue verilir. Modelin görevi, bu issue'u gidermek için gereken kod değişikliklerini (patch) üretmektir. Üretilen yama, orijinal PR'ın test takımıyla otomatik olarak doğrulanır; geçen test oranı başarı metriği olarak kullanılır. SWE-bench Verified alt kümesi, yazılım mühendisleri tarafından gözden geçirilmiş 500 adet iyi kalibre edilmiş problemden oluşur. Belirsiz tanımlı issue'lar ve çözümsüz görevler bu alt kümeden elendi; sektör karşılaştırmaları çoğunlukla Verified üzerinden raporlanır. 2024 itibarıyla en iyi sistemler bu kümede yaklaşık %50–70 çözme oranına ulaşmaktadır. Maliyet açısından daha erişilebilir bir alternatif olan SWE-bench Lite ise 300 seçilmiş problemden oluşur ve hızlı prototipleme çalışmalarında tercih edilir. Liderlik tablosunda Claude 3.7 Sonnet (Anthropic), GPT-4o (OpenAI), Devin (Cognition) ve SWE-agent (Stanford) gibi model ve ajanlar yer almaktadır. Tam otonom kategorilerde başarı, asistli modlara göre belirgin şekilde düşüktür; bu durum, karmaşık yazılım görevlerinde insan rehberliğinin hâlâ kritik olduğunu ortaya koymaktadır. SWE-bench'in temel önemi, modellerin salt kod yazma becerilerinin ötesinde çok dosyalı, büyük gerçek projelerde bağımsız çalışıp çalışamadığını sınamasıdır. Başarılı bir ajan; ilgili dosyaları bulma, test anlambilimini kavrama ve depo genelinde tutarlı değişiklikler üretme gibi birleşik yetenekleri entegre etmelidir. Bu nedenle SWE-bench, AI destekli yazılım geliştirme, self-healing kod ve otonom ajan sistemleri araştırmalarında merkezi bir referans hâline gelmiştir. Dil çeşitliliği için SWE-bench Java ve çok dilli uzantılar da geliştirilmektedir.

SWE-bench Nasıl Çalışır?

Her SWE-bench örneği bir Python deposu, belirli bir commit hash ve o commit'te açık olan bir GitHub issue içermektedir. Modele bu bilgi verilir; modelin görevi, orijinal pull request'tekine denk gelen bir patch üretmektir. Başarı kriteri kesin sinyallidir: orijinal PR ile birlikte gelen unit veya entegrasyon testleri geçiyor mu? Bu bağlam bağımsız olarak belirlendiğinden her modeli aynı koşullarda test etmek mümkündür.

SWE-bench Verified

Orijinal SWE-bench veri seti iyi kalibre edilmemiş örnekler içerdiği için SWE-bench Verified, yazılım mühendisliği uzmanları tarafından gözden geçirilerek küratörlü 500 problem olarak sunuldu. Bu alt küme; net olmayan issue tanımları ve çözümsüz görevleri elemine etmiş, en az bir doğru çözümü bulunan problemlere odaklanmıştır. Karşılaştırma tabloları çoğunlukla Verified üzerinden raporlanır.

Liderlik Tablosu Durumu

SWE-bench'in değerlendirme tablosu, AI yazılım geliştirme alanının nabzını yansıtmaktadır. Devin (Cognition), SWE-agent (Stanford), OpenDevin ve Claude 3.7 Sonnet bu alanda rekabet etmektedir. Tam otonom çözüm yerine asistli kategoriler (modele ipucu veya adaylar önceden belirli), saf otonom yaklaşımdan çok daha yüksek başarı oranı sergiler. Bu da karmaşık yazılım görevlerinin hâlâ insan rehberliğinden yararlandığını göstermektedir.

Pratik Anlamı

SWE-bench başarısı doğrudan "model gerçek yazılım projelerinde bağımsız çalışabilir" anlamına gelmiyor; ancak güçlü bir korelasyon işaret ediyor. Model yalnızca tek dosyada değişiklik değil; çok büyük depolarda ilgili dosyayı bulup düzeltme, testlerin anlambilimini anlama ve tutarlılık denetimi gerçekleştirme yeteneklerini bir arada sergilemelidir.

SWE-bench ile AI Kodlama Yeteneklerini Değerlendirme

Gerçek Dünya Sorunları

GitHub'daki gerçek hata raporları ve çekme isteklerinden oluşur; yapay görevleri değil gerçek yazılım mühendisliği zorlukları test eder.

SWE-bench Verified

İnsan doğrulamasından geçmiş alt küme; ölçüm kalitesi için tercih edilen standart referans nokta.

Kısıtlı Araç Erişimi

Modelin dosya okuma, düzenleme ve test çalıştırma araçlarıyla çalışması; yalnızca metin üretimi değil.

Sürekli Değişen Çıta

Modeller %90+ çözme oranına yaklaştıkça veri seti güncellenir; kıyaslama yarışı sürmekte.

Sık Sorulan Sorular

SWE-bench ile HumanEval arasındaki fark nedir? HumanEval izole fonksiyon yazımını ölçer; SWE-bench büyük, gerçek depoda çok dosyalı değişiklik gerektiren gerçek hataları kapsar.

%50-70 çözme oranı ne anlama gelir? Gerçek GitHub issue'larının %50-70'ini tam bağımsız biçimde çözebiliyor demektir; 2024 itibarıyla en iyi sistemlerin ulaştığı düzeydir.

Kendi modelimi SWE-bench'te nasıl test ederim? swebench Python paketi veya resmi değerlendirme komut dosyaları ile Docker ortamında test yapılabilir.

SWE-bench yalnızca Python mu kapsıyor? Orijinal versiyon ağırlıkla Python tabanlıdır; dil çeşitliliği için SWE-bench Java ve çok dilli uzantılar geliştirilmektedir.

SWE-bench Lite nedir? 300 seçilmiş problemden oluşan daha küçük alt kümedir; hızlı prototipleme ve ablasyon çalışmaları için yaygın biçimde kullanılır.