Benchmark · agentic
SWE-rebench
SWE-rebench adalah varian yang terus diperbarui dari benchmark pemrograman SWE-bench yang mengambil tugas dari issue GitHub terbaru untuk mengurangi kemungkinan model sudah melihatnya saat pelatihan. Ia melaporkan persentase tugas rekayasa perangkat lunak yang berhasil diselesaikan model (% resolved).
Selengkapnya
- Contoh
- Sebuah item khas memberi model sebuah laporan bug atau permintaan fitur nyata dari repositori GitHub, dan model harus menyunting kode proyek untuk menyelesaikan masalah tersebut.
- Penilaian
- Metriknya adalah % resolved: jumlah tugas yang berhasil diperbaiki model dibagi jumlah total tugas, dinyatakan dalam persen.
- Verifikasi
- Sebuah solusi diterima secara otomatis ketika suite pengujian milik repositori itu sendiri lulus pada kode yang telah diperbaiki — perbaikan harus membuat pengujian yang gagal menjadi hijau tanpa merusak yang lain.
- Mengapa penting
- Karena tugasnya terus diperbarui dari issue terbaru, ia memberi gambaran yang lebih bersih tentang kemampuan pemrograman yang sebenarnya, yang lebih sulit digelembungkan dengan menghafal data benchmark lama yang sudah publik.
Contoh penyelesaian
Tugas
Instance SWE-rebench yang dibuat dari repositori Python nyata di GitHub (
python-slugify), dipatok pada sebuah commit basis. Masalah: slugify('Hello, World!') mengembalikan 'hello--world' — pemisah yang berurutan menghasilkan tanda hubung ganda alih-alih satu, padahal slug yang diharapkan adalah 'hello-world'. Yang harus diserahkan: patch git-diff terhadap snapshot repositori yang membuat tes FAIL_TO_PASS lulus sekaligus menjaga semua tes PASS_TO_PASS tetap hijau.Solusi
--- a/slugify/slugify.py
+++ b/slugify/slugify.py
@@ def slugify(text):
text = re.sub(r"[^\w\s-]", "", text).strip().lower()
- return re.sub(r"[\s]+", "-", text)
+ text = re.sub(r"[\s]+", "-", text)
+ return re.sub(r"-{2,}", "-", text)
Penjelasan
Pembuat slug meringkas spasi menjadi
- tetapi tidak pernah menghapus duplikat tanda hubung yang berulang, sehingga beberapa pemisah bocor; menambahkan re.sub(r'-{2,}', '-', text) menormalkannya menjadi satu -. SWE-rebench menilai berbasis eksekusi: patch diterapkan di kontainer repositori dan instance dianggap terselesaikan hanya jika tes FAIL_TO_PASS kini lulus dan semua tes PASS_TO_PASS tetap lulus (papan peringkat = % terselesaikan).