Sejak kami pertama kali menerbitkan SWE-bench Verified pada Agustus 2024, industri telah banyak menggunakannya untuk mengukur kemajuan model dalam tugas rekayasa perangkat lunak otonom. Setelah dirilis, SWE-bench Verified memberikan sinyal kuat tentang kemajuan kapabilitas dan menjadi metrik standar yang dilaporkan dalam rilis model terdepan. Melacak dan memperkirakan kemajuan kemampuan ini juga merupakan bagian penting dari Kerangka Kerja Kesiapan OpenAI. Saat kami pertama kali membuat tolok ukur Verified, kami berupaya menyelesaikan masalah dalam evaluasi asli yang membuat tugas tertentu mustahil untuk diselesaikan dalam dataset SWE-bench(terbuka di jendela baru).
Setelah lonjakan awal, kemajuan mutakhir pada SWE-bench Verified telah melambat, meningkat(terbuka di jendela baru) dari 74,9% menjadi 80,9% dalam 6 bulan terakhir. Hal ini menimbulkan pertanyaan: apakah kegagalan yang tersisa mencerminkan keterbatasan model atau sifat dari kumpulan data itu sendiri?
Dalam analisis baru, kami menemukan dua masalah utama pada set Verified yang menunjukkan bahwa tolok ukur tersebut tidak lagi cocok untuk mengukur kemajuan kemampuan rekayasa perangkat lunak otonom untuk peluncuran terdepan pada tingkat kinerja saat ini:
- Tes menolak solusi yang benar: Kami mengaudit 27.6% subset dari dataset yang sering gagal diselesaikan oleh model dan menemukan bahwa setidaknya 59.4% dari masalah yang diaudit memiliki kasus uji yang cacat yang menolak pengajuan yang secara fungsional benar, meskipun kami telah berupaya sebaik mungkin untuk memperbaiki hal ini dalam pembuatan awal SWE-bench Verified.
- Pelatihan pada solusi: Karena model terdepan yang besar dapat mempelajari informasi dari pelatihannya, penting agar model tersebut tidak pernah dilatih pada masalah dan solusi yang dievaluasi. Ini mirip dengan membagikan soal dan solusi untuk tes yang akan datang kepada siswa sebelum tes - mereka mungkin tidak menghafal jawabannya, tetapi siswa yang sudah pernah melihat jawabannya tentu akan lebih baik daripada mereka yang belum. Masalah SWE-bench bersumber dari repositori sumber terbuka yang digunakan banyak penyedia model untuk tujuan pelatihan. Dalam analisis kami, kami menemukan bahwa semua model terdepan yang kami uji mampu mereproduksi perbaikan bug asli yang ditulis manusia dan digunakan sebagai referensi ground-truth, yang dikenal sebagai gold patch, atau secara verbatim spesifik pernyataan masalah untuk tugas tertentu, yang menunjukkan bahwa semuanya telah melihat setidaknya beberapa masalah dan solusi selama pelatihan.
Kami juga menemukan bukti bahwa model yang telah melihat masalah tersebut selama pelatihan lebih mungkin berhasil, karena mereka memiliki informasi tambahan yang diperlukan untuk lulus tes yang kurang terdefinisi.
Ini berarti bahwa peningkatan pada SWE-bench Verified tidak lagi mencerminkan peningkatan yang signifikan dalam kemampuan pengembangan perangkat lunak dunia nyata model. Sebaliknya, hal tersebut semakin mencerminkan seberapa banyak model terpapar pada tolok ukur saat pelatihan. Inilah alasan kami telah berhenti melaporkan skor SWE-bench Verified, dan kami merekomendasikan agar pengembang model lain juga melakukan hal yang sama.
Kami sedang membangun evaluasi baru yang tidak terkontaminasi untuk melacak kemampuan pengodean dengan lebih baik, dan kami menilai ini sebagai area penting untuk menjadi fokus bagi komunitas riset yang lebih luas. Sampai kami memilikinya, OpenAI merekomendasikan pelaporan hasil untuk SWE-bench Pro.
Evaluasi SWE-bench(terbuka di jendela baru) asli dirilis pada tahun 2023. Setiap masalah bersumber dari isu GitHub yang telah diselesaikan di salah satu dari 12 repositori Python sumber terbuka dan dipasangkan dengan pull request (PR) yang sesuai. Untuk menentukan apakah perubahan kode yang dihasilkan model sudah benar, setiap masalah dilengkapi dengan dua set pengujian:
- Pengujian yang gagal pada basis kode yang tidak dimodifikasi tetapi lulus jika masalahnya diperbaiki dengan benar
- Tes regresi yang lulus baik sebelum maupun setelah perbaikan untuk memastikan fungsionalitas yang tidak terkait tetap utuh.
Model tidak melihat tes. Model harus menghasilkan perubahan kode hanya berdasarkan teks masalah asli dan keadaan repositori sebelum perbaikan. Masalah hanya dianggap selesai jika semua uji lulus setelah perubahan kode diterapkan.
Kami menemukan banyak masalah dengan evaluasi tersebut yang dapat menyebabkan pelaporan yang kurang akurat atas kapabilitas model.
- Beberapa uji unit terlalu spesifik atau tidak selaras dengan tugas sehingga perbaikan yang benar dapat ditolak.
- Banyak pernyataan tugas yang kurang terperinci, yang dapat menyebabkan beberapa interpretasi yang sama-sama valid - sementara tes hanya mencakup interpretasi tertentu.
- Tergantung pada konfigurasi lingkungan (misalnya Linux vs Windows, atau versi Python), beberapa tes dapat gagal secara tidak terduga
Kami membuat SWE-bench Verified pada tahun 2024 untuk mengatasi masalah ini. Kami bekerja sama dengan insinyur perangkat lunak ahli untuk meninjau 1.699 masalah SWE-bench dan menyaring masalah yang memiliki isu-isu ini. Setiap masalah ditinjau oleh tiga pakar secara independen. Proses peninjauan ini menghasilkan SWE-bench Verified, sekumpulan 500 masalah yang dikurasi.
Meskipun SWE-bench Verified merupakan peningkatan besar dibandingkan versi awal, masalah yang tersisa tetap ada. Kami melakukan audit terhadap 138 masalah SWE-bench Verified yang tidak secara konsisten diselesaikan oleh OpenAI o3 selama 64 run independen. Setiap kasus ditinjau secara independen oleh setidaknya enam teknisi perangkat lunak berpengalaman. Jika seorang ahli menandai masalah, masalah tersebut diverifikasi ulang oleh tim tambahan.
Kami menemukan bahwa 59,4% dari 138 masalah mengandung isu material dalam desain pengujian dan/atau deskripsi masalah, sehingga membuatnya sangat sulit atau mustahil bahkan bagi model atau manusia yang paling mampu untuk menyelesaikannya.
- 35,5% dari tugas yang diaudit memiliki kasus uji yang ketat yang menegakkan detail implementasi tertentu, sehingga membatalkan banyak pengajuan yang secara fungsional benar, yang kami sebut kasus uji sempit.
- 18,8% dari tugas yang diaudit memiliki tes yang memeriksa fungsionalitas tambahan yang tidak disebutkan dalam deskripsi masalah, yang kami sebut kasus uji yang luas.
- 5.1% tugas lainnya memiliki masalah lain yang tidak terkelompok dengan baik dalam taksonomi ini.
Contoh ilustratif dari mode kegagalan pertama adalah pylint-dev__pylint-4551(terbuka di jendela baru), di mana PR memperkenalkan fungsi baru `get_annotation` sebagai bagian dari solusi keseluruhan. Nama fungsi ini tidak disebutkan dalam deskripsi masalah, tetapi diimpor langsung oleh pengujian. Meskipun beberapa model mungkin secara intuitif membuat fungsi semacam itu, tidak sepenuhnya diperlukan untuk menerapkan fungsi dengan nama spesifik ini agar dapat menangani masalah dengan benar. Banyak solusi yang valid gagal dalam pengujian karena kesalahan impor.
Deskripsi masalah
Cuplikan uji PR
Kegagalan uji PR (dipotong untuk keterbacaan)
Contoh kasus uji yang terlalu luas adalah sympy__sympy-18199(terbuka di jendela baru). Tugas ini bersumber dari sebuah PR yang menangani tiga masalah berbeda pada fungsi `nthroot_mod`, yaitu #17373(terbuka di jendela baru), #17377(terbuka di jendela baru), dan #18212(terbuka di jendela baru). Namun, deskripsi untuk tugas SWE-bench Verified hanya mencakup masalah terakhir #18212(terbuka di jendela baru). Ini menimbulkan ketidaksesuaian: tes PR mencakup ketiga masalah, sementara deskripsinya hanya merinci satu masalah. Dalam pengujian kami, model sering kali mengimplementasikan perbaikan yang dijelaskan dengan benar lalu gagal pada pengujian yang mencakup implementasi untuk dua masalah lainnya.
Deskripsi PR asli (dari PR GitHub)
Deskripsi Masalah untuk #18212
Deskripsi Masalah untuk tugas SWE-bench Verified (hanya diambil dari #18212):
SWE-bench Verified dan repositori (basis kode dan catatan rilis) keduanya bersifat sumber terbuka serta digunakan dan dibahas secara luas, yang membuat penghindaran kontaminasi menjadi sulit bagi pengembang model.
Kami pertama kali menemukan tanda-tanda kontaminasi dalam model kami sendiri. Sebagai contoh, ketika GPT‑5.2 menyelesaikan 31 tugas yang kami identifikasi sebagai hampir mustahil untuk diselesaikan. Dalam django__django-14725(terbuka di jendela baru) pengujian memerlukan parameter baru tertentu `edit_only` yang tidak secara eksplisit diwajibkan oleh pernyataan masalah. Saat menyelesaikan masalah, GPT‑5.2 menunjukkan dalam rantai pemikiran bahwa ia memiliki informasi tentang catatan rilis yang merinci perubahan pada basis kode, dan dengan benar mengidentifikasi bahwa parameter `edit_only` diperkenalkan di Django 4.1.
GPT‑5.2 CoT
Untuk menilai seberapa signifikan kontaminasi secara lebih luas, kami membuat pengaturan red-teaming otomatis. Untuk setiap pertanyaan SWE-bench Verified, kami menugaskan GPT‑5 untuk menguji sebuah GPT‑5.2‑Chat, Claude Opus 4.5 dan Gemini 3 Flash Preview untuk kontaminasi. Model-model ini dipilih untuk mengecualikan model penalaran, tetapi kami mengakui bahwa kemungkinan ada kesenjangan kemampuan yang tidak sepele di antara keduanya.
Untuk memeriksa kontaminasi, GPT‑5 menerima: ID, deskripsi, patch gold, dan pengujian PR dari tugas SWE-bench Verified. Selama lebih dari 15 putaran, kami membiarkan GPT‑5 untuk mengubah prompt sistem/pengembang, prompt pengguna, dan pengisian awal asisten, serta strategi penggalian informasi yang berbeda. Setelah setiap putaran, model juri memberi label seberapa banyak informasi tugas-spesifik yang baru muncul, dan setiap respons diberi label tingkat kontaminasi dari “tidak ada” hingga “kuat.” GPT‑5 diizinkan untuk menyesuaikan strateginya berdasarkan giliran sebelumnya untuk secara iteratif memulihkan detail spesifik tugas. Untuk setiap contoh kontaminasi yang kuat, kami memverifikasi dengan juri lain bahwa GPT‑5 tidak membocorkan terlalu banyak informasi ke model target. Terakhir, kami kemudian meninjau secara manual contoh “strong” yang membentuk transkrip dalam postingan ini.
Di bawah ini adalah contoh kontaminasi yang signifikan di berbagai penyedia model.
Diberikan cuplikan singkat dari deskripsi tugas, GPT‑5.2 menghasilkan patch emas yang persis sama. Secara khusus, ini mengetahui nama class dan method yang tepat, serta kondisi early return baru `if username is None or password is None` yang diperkenalkan.
Pemeriksaan kontaminasi
Patch unggulan
Opus tidak hanya mampu mengingat perubahan fungsional 4 baris yang tepat yang diperkenalkan PR, beserta nama file dan metode spesifik yang disentuhnya, tetapi juga mengutip secara verbatim komentar inline yang merupakan bagian dari diff.
Pemeriksaan kontaminasi
Patch unggulan
Gemini 3 Flash, ketika tidak diberi informasi lebih lanjut mengenai tugas selain ID, mampu mengeluarkan detail verbatim dari deskripsi tugas dan patch gold. Ini mencakup formula regex baru untuk validasi nama pengguna dan nomor baris yang tepat untuk perubahan tersebut.
Pemeriksaan kontaminasi
Patch unggulan
Dari audit SWE-bench Verified ini, kita melihat dua pelajaran yang lebih luas untuk desain evaluasi. Pertama, tolok ukur yang bersumber dari materi yang tersedia untuk umum membawa risiko kontaminasi, di mana paparan data pelatihan dapat secara diam-diam menggelembungkan skor. Jika data yang dikumpulkan secara publik digunakan dalam pembuatan tolok ukur, pengembang model harus melakukan uji tambahan untuk mendeteksi kontaminasi. Tolok ukur, dan bahkan solusinya, yang diposting secara publik dapat berakhir dalam data pelatihan. Perlu kehati-hatian ekstra baik dalam cara dataset diposting (i.e. dilindungi kata sandi) dan pemfilteran data pelatihan (i.e. kepatuhan ketat terhadap canary strings).
Kedua, pemberian skor otomatis sulit untuk dilakukan dengan benar; kasus uji yang sempurna harus sepenuhnya memverifikasi fungsionalitas yang benar, baik agnostik terhadap detail implementasi spesifik yang tidak penting maupun juga tangguh terhadap solusi pintas. Masalah-masalah ini pada dasarnya kompleks dan sulit diselesaikan. Menemukan masalah-masalah ini memerlukan beberapa kampanye pelabelan manusia yang ekstensif.
Kami telah menggabungkan temuan-temuan ini ke dalam upaya evaluasi terbaru kami. Dalam beberapa bulan terakhir, kami memilih untuk melaporkan hasil dari split publik SWE-Bench Pro. Kami merekomendasikan agar pengembang model lainnya melakukan hal yang sama. SWE-bench Pro tidak sempurna, tetapi secara empiris tampaknya lebih sedikit mengalami masalah kontaminasi. Pipeline kontaminasi kami menemukan beberapa kasus kontaminasi, tetapi kasus-kasus ini secara signifikan lebih jarang dan kurang parah dibandingkan SWE-bench Verified, dan tidak ada model yang mampu menghasilkan patch gold verbatim yang lengkap.
Kami akan terus berinvestasi dalam tolok ukur orisinal yang ditulis secara privat dan meminta bantuan dari industri dan akademisi untuk melakukan hal yang sama. Di GDPVal, tugas ditulis secara privat oleh pakar domain, sehingga mengurangi risiko paparan, dan solusi dinilai secara holistik oleh penilai terlatih. Pendekatan ini memerlukan banyak sumber daya, tetapi semakin diperlukan untuk mengukur peningkatan kemampuan yang sesungguhnya.


