Mengapa SWE-bench Verified tidak lagi mengukur keupayaan pengekodan perbatasan
SWE-bench Verified semakin tercemar. Kami mengesyorkan SWE-bench Pro.
Sejak kami mula-mula menerbitkan SWE-bench Verified pada Ogos 2024, industri telah menggunakannya secara meluas untuk mengukur kemajuan model dalam tugasan kejuruteraan perisian autonomi. Selepas pelancarannya, SWE-bench Verified memberikan isyarat yang kuat tentang kemajuan keupayaan dan menjadi metrik standard yang dilaporkan dalam pelancaran model perbatasan. Menjejak dan meramalkan kemajuan keupayaan ini juga merupakan bahagian penting dalam Rangka Kerja Kesediaan OpenAI. Apabila kami mula-mula mencipta penanda aras Verified, kami cuba menyelesaikan isu dalam penilaian asal yang menjadikan sesetengah tugasan mustahil untuk diselesaikan dalam set data SWE-bench(dibuka dalam tetingkap baru).
Selepas lonjakan awal, kemajuan terkini pada SWE-bench Verified telah perlahan, meningkat(dibuka dalam tetingkap baru) daripada 74.9% kepada 80.9% dalam 6 bulan yang lalu. Ini menimbulkan persoalan: adakah kegagalan yang selebihnya mencerminkan batasan model atau sifat set data itu sendiri?
Dalam analisis baharu, kami mendapati dua isu utama dengan set Verified yang menunjukkan bahawa penanda aras itu tidak lagi sesuai untuk mengukur kemajuan dalam keupayaan kejuruteraan perisian autonomi bagi pelancaran perbatasan pada tahap prestasi hari ini:
- Ujian menolak penyelesaian yang betul: Kami mengaudit subset 27.6% daripada set data yang sering gagal diselesaikan oleh model dan mendapati bahawa sekurang-kurangnya 59.4% daripada masalah yang diaudit mempunyai kes ujian yang cacat yang menolak penyerahan yang betul dari segi fungsi, walaupun kami telah berusaha sedaya upaya untuk menambah baik perkara ini dalam penciptaan awal SWE-bench Verified.
- Latihan mengenai penyelesaian: Oleh sebab model perbatasan yang besar boleh mempelajari maklumat daripada latihannya, adalah penting bahawa ia tidak pernah dilatih pada masalah dan penyelesaian yang dinilai ke atasnya. Ini seumpama berkongsi masalah dan penyelesaian untuk ujian yang akan datang dengan pelajar sebelum ujian - mereka mungkin tidak menghafal jawapannya tetapi pelajar yang pernah melihat jawapan sebelum ini pasti akan lebih baik daripada mereka yang tidak. Masalah SWE-bench diperoleh daripada repositori sumber terbuka yang digunakan oleh banyak penyedia model untuk tujuan latihan. Dalam analisis kami, kami mendapati bahawa semua model perbatasan yang kami uji dapat menghasilkan semula pembaikan pepijat asal yang ditulis oleh manusia yang digunakan sebagai rujukan kebenaran asas, yang dikenali sebagai tampalan emas, atau butiran pernyataan masalah verbatim untuk tugas tertentu, yang menunjukkan bahawa kesemuanya telah melihat sekurang-kurangnya sebahagian daripada masalah dan penyelesaian semasa latihan.
Kami juga menemui bukti bahawa model yang telah melihat masalah tersebut semasa latihan lebih berkemungkinan untuk berjaya, kerana ia mempunyai maklumat tambahan yang diperlukan untuk lulus ujian yang tidak ditentukan dengan jelas.
Ini bermakna bahawa penambahbaikan pada SWE-bench Verified tidak lagi mencerminkan penambahbaikan yang bermakna dalam keupayaan pembangunan perisian dunia sebenar model. Sebaliknya, ia semakin mencerminkan sejauh mana model terdedah kepada penanda aras pada masa latihan. Inilah sebabnya kami telah berhenti melaporkan skor SWE-bench Verified, dan kami mengesyorkan agar pembangun model lain turut berbuat demikian.
Kami sedang membina penilaian baharu yang tidak tercemar untuk menjejak keupayaan pengekodan dengan lebih baik, dan kami fikir ini merupakan bidang penting untuk diberi tumpuan bagi komuniti penyelidikan yang lebih luas. Sehingga kami mempunyai perkara tersebut, OpenAI mengesyorkan melaporkan keputusan untuk SWE-bench Pro.
Penilaian asal SWE-bench(dibuka dalam tetingkap baru) telah dikeluarkan pada tahun 2023. Setiap masalah diperoleh daripada isu GitHub yang telah diselesaikan dalam salah satu daripada 12 repositori Python sumber terbuka dan dipasangkan dengan pull request (PR) yang sepadan. Untuk menentukan sama ada perubahan kod yang dijana oleh model adalah betul, setiap masalah disertakan dengan dua set ujian:
- Ujian yang gagal pada pangkalan kod yang tidak diubah suai tetapi lulus jika isu itu dibetulkan dengan betul
- Ujian regresi yang lulus sebelum dan selepas pembaikan untuk memastikan fungsi yang tidak berkaitan kekal utuh.
Model tidak melihat ujian. Ia perlu menghasilkan perubahan kod dengan hanya teks isu asal dan keadaan repositori sebelum pembaikan. Ia hanya melepasi masalah jika semua ujian lulus selepas perubahan kod digunakan.
Kami mendapati banyak isu dengan penilaian itu yang boleh menyebabkan pelaporan yang kurang tepat tentang keupayaan model-model.
- Sesetengah ujian unit terlalu khusus atau tidak selaras dengan tugas, jadi pembetulan yang betul boleh ditolak.
- Banyak pernyataan tugas kurang ditentukan, yang boleh membawa kepada pelbagai tafsiran yang sah - sedangkan ujian hanya merangkumi satu tafsiran tertentu.
- Bergantung pada persediaan persekitaran (contohnya Linux berbanding Windows, atau versi python), sesetengah ujian mungkin gagal secara tersilap
Kami mencipta SWE-bench Verified pada tahun 2024 untuk menangani isu-isu ini. Kami bekerjasama dengan jurutera perisian pakar untuk menyemak 1,699 masalah SWE-bench dan menapis masalah yang mempunyai isu-isu ini. Setiap masalah telah disemak oleh tiga pakar secara bebas. Proses semakan ini menghasilkan SWE-bench Verified, satu set kumpulan 500 masalah.
Walaupun SWE-bench Verified merupakan penambahbaikan besar berbanding versi awal, isu-isu baki masih wujud. Kami menjalankan audit terhadap 138 masalah SWE-bench Verified yang OpenAI o3 tidak selesaikan secara konsisten merentasi 64 larian bebas. Setiap kes telah disemak secara bebas oleh sekurang-kurangnya enam jurutera perisian berpengalaman. Jika seorang pakar menandakan isu, ia disahkan semula oleh pasukan tambahan.
Kami mendapati bahawa 59.4% daripada 138 masalah mengandungi isu material dalam reka bentuk ujian dan/atau penerangan masalah, menjadikannya amat sukar atau mustahil walaupun untuk model atau manusia yang paling berkeupayaan untuk menyelesaikannya.
- 35.5% daripada tugasan yang diaudit mempunyai kes ujian yang ketat yang menguatkuasakan butiran pelaksanaan tertentu, sekali gus membatalkan banyak penyerahan yang betul dari segi fungsi, yang kami panggil kes ujian sempit.
- 18.8% daripada tugas yang diaudit mempunyai ujian yang memeriksa fungsi tambahan yang tidak dinyatakan dalam penerangan masalah, yang kami panggil kes ujian luas.
- Baki 5.1% tugas mempunyai isu pelbagai yang tidak dikelompokkan dengan baik mengikut taksonomi ini.
Satu contoh ilustratif bagi mod kegagalan pertama ialah pylint-dev__pylint-4551(dibuka dalam tetingkap baru), di mana PR memperkenalkan fungsi baharu `get_annotation` sebagai sebahagian daripada penyelesaian keseluruhan. Nama fungsi ini tidak disebut dalam penerangan masalah, tetapi diimport secara langsung oleh ujian. Walaupun sesetengah model mungkin secara intuitif mencipta fungsi sedemikian, ia tidak semestinya perlu untuk melaksanakan fungsi dengan nama khusus ini untuk menangani masalah dengan betul. Banyak penyelesaian yang sah gagal ujian disebabkan ralat import.
Keterangan masalah
Coretan ujian PR
Kegagalan ujian PR (dipendekkan untuk memudahkan pembacaan)
Satu contoh kes ujian yang terlalu luas ialah sympy__sympy-18199(dibuka dalam tetingkap baru). Tugas ini diperoleh daripada PR yang menangani tiga isu berbeza dengan fungsi `nthroot_mod`, khususnya #17373(dibuka dalam tetingkap baru), #17377(dibuka dalam tetingkap baru), dan #18212(dibuka dalam tetingkap baru). Walau bagaimanapun, perihalan untuk tugas SWE-bench Verified hanya meliputi isu akhir #18212(dibuka dalam tetingkap baru). Ini mewujudkan ketidakpadanan: ujian PR meliputi ketiga-tiga isu, manakala penerangan memperincikan hanya satu. Dalam percubaan kami, model sering melaksanakan pembetulan yang diterangkan dengan betul dan kemudian gagal ujian yang meliputi pelaksanaan untuk dua isu yang lain.
Penerangan PR asal (daripada PR GitHub)
Keterangan Masalah untuk #18212
Penerangan masalah untuk tugas SWE-bench Verified (hanya diambil daripada #18212):
SWE-bench Verified dan repositori (asas kod dan nota keluaran) kedua-duanya adalah sumber terbuka serta digunakan dan dibincangkan secara meluas, yang menjadikan pengelakan pencemaran sukar bagi pembangun model.
Kami mula-mula menemui tanda-tanda pencemaran dalam model kami sendiri. Sebagai contoh, apabila GPT‑5.2 menyelesaikan 31 tugas yang kami kenal pasti sebagai hampir mustahil untuk diselesaikan. Dalam django__django-14725(dibuka dalam tetingkap baru) ujian memerlukan parameter baharu khusus `edit_only` yang tidak diperlukan secara jelas oleh pernyataan masalah. Semasa menyelesaikan masalah, GPT‑5.2 menunjukkan dalam rentetan fikiran bahawa ia mempunyai maklumat tentang nota keluaran yang memperincikan perubahan pada pangkalan kod dan dengan betul mengenal pasti bahawa parameter `edit_only` telah diperkenalkan dalam Django 4.1.
GPT‑5.2 CoT
Untuk menilai sejauh mana pencemaran itu signifikan secara lebih meluas, kami mencipta persediaan proses penyerang automatik. Bagi setiap soalan SWE-bench yang Disahkan, kami menugaskan GPT‑5 untuk menyiasat GPT‑5.2‑Chat, Claude Opus 4.5 dan Gemini 3 Flash Pratonton untuk pencemaran. Model-model ini dipilih untuk mengecualikan model penaakulan, tetapi kami mengakui bahawa berkemungkinan terdapat jurang keupayaan yang bukan kecil antara model-model tersebut.
Untuk menyiasat pencemaran, GPT‑5 menerima: ID, penerangan, tampalan emas, dan ujian PR bagi tugasan SWE-bench Verified. Sepanjang lebih 15 giliran, kami membenarkan GPT‑5 untuk mempelbagaikan prom sistem/pembangun, prom pengguna, dan praisi pembantu serta strategi elisitasi yang berbeza. Selepas setiap giliran, sebuah model hakim melabelkan berapa banyak maklumat baharu khusus tugas yang muncul dan setiap respons dilabelkan untuk tahap pencemaran daripada “none” hingga “strong.” GPT‑5 dibenarkan menyesuaikan strateginya berdasarkan giliran sebelumnya untuk memulihkan butiran khusus tugas secara berulang. Bagi setiap contoh pencemaran yang kuat, kami mengesahkan dengan seorang hakim lain bahawa GPT‑5 tidak membocorkan terlalu banyak maklumat kepada model sasaran. Akhir sekali, kami kemudian menyemak secara manual contoh “kukuh” yang membentuk transkrip dalam siaran ini.
Berikut adalah contoh pencemaran yang kuat merentasi penyedia model yang berbeza.
Diberikan petikan ringkas daripada penerangan tugasan, GPT‑5.2 menghasilkan tampalan emas yang tepat. Terutamanya, ia mengetahui nama kelas dan kaedah yang tepat, serta syarat pulangan awal baharu `if username is None or password is None` yang diperkenalkan.
Elisitasi pencemaran
Tampalan emas
Opus bukan sahaja mampu mengingati perubahan fungsian 4 baris yang tepat yang diperkenalkan oleh PR, bersama-sama dengan nama fail dan kaedah khusus yang disentuhnya, tetapi juga memetik secara verbatim komen sebaris yang merupakan sebahagian daripada diff.
Elisitasi pencemaran
Tampalan emas
Gemini 3 Flash, apabila tidak diberikan sebarang maklumat lanjut mengenai tugas selain ID, mampu mengeluarkan butiran secara verbatim daripada penerangan tugas dan tampalan emas. Ini termasuk formula regex baharu untuk pengesahan nama pengguna dan nombor baris yang tepat bagi perubahan tersebut.
Elisitasi pencemaran
Tampalan emas
Daripada audit SWE-bench Verified ini, kita melihat dua pengajaran yang lebih luas untuk reka bentuk penilaian. Pertama, penanda aras yang bersumberkan daripada bahan yang tersedia secara umum membawa risiko pencemaran, di mana pendedahan data latihan boleh secara senyap-senyap meningkatkan skor. Jika data yang dirangkak secara umum digunakan dalam pembinaan penanda aras, pembangun model harus menjalankan ujian tambahan untuk pencemaran. Penanda aras, dan juga penyelesaiannya, yang disiarkan secara umum boleh berakhir dalam data latihan. Penjagaan tambahan harus diambil dalam cara set data disiarkan (iaitu dilindungi kata laluan) dan penapisan data latihan (i.e. pematuhan ketat terhadap canary strings).
Kedua, pemarkahan automatik sukar untuk dilakukan dengan betul; kes ujian yang sempurna sepatutnya mengesahkan sepenuhnya fungsi yang betul, dengan kedua-duanya tidak bergantung pada butiran pelaksanaan tertentu yang tidak penting dan juga teguh terhadap penyelesaian pintasan. Masalah-masalah ini sememangnya rumit dan sukar untuk diselesaikan. Mengesan masalah ini memerlukan pelbagai kempen pelabelan manusia yang meluas.
Kami telah menggabungkan penemuan ini ke dalam usaha penilaian terkini kami. Dalam beberapa bulan kebelakangan ini kami telah memilih untuk melaporkan keputusan daripada pecahan awam SWE-Bench Pro. Kami mengesyorkan pembangun model lain melakukan perkara yang sama. SWE-bench Pro tidak sempurna, tetapi secara empirikal nampaknya kurang mengalami isu pencemaran. Saluran pengesanan pencemaran kami menemui beberapa kes pencemaran, tetapi kes-kes ini jauh lebih jarang dan kurang teruk berbanding SWE-bench Verified, dan tiada model yang dapat menghasilkan tampalan emas verbatim yang lengkap.
Kami akan terus melabur dalam penanda aras asli yang ditulis secara persendirian dan meminta bantuan daripada industri dan para akademik untuk melakukan perkara yang sama. Dalam GDPVal, tugas ditulis secara peribadi oleh pakar domain, mengurangkan risiko pendedahan dan penyelesaian dinilai secara holistik oleh penyemak terlatih. Pendekatan ini memerlukan banyak sumber, tetapi semakin diperlukan untuk mengukur peningkatan keupayaan yang sebenar.


