Langkau ke kandungan utama
OpenAI

Memisahkan isyarat daripada hingar dalam penilaian pengekodan

Melalui audit terperinci, kami menemukan isu tugasan yang meluas dalam SWE-Bench Pro dan menganggarkan bahawa ~30% tugasan adalah rosak.

Memuat…

Mengukur keupayaan model kami dengan tepat adalah penting untuk keputusan pelaksanaan dan keselamatan yang kukuh, termasuk keputusan di bawah Rangka Kerja Kesediaan(dibuka dalam tetingkap baru) OpenAI. Bagi setiap keluaran model, kami melaporkan keputusan untuk pelbagai penanda aras luaran dan dalaman bagi menjejak kemajuan model. Apabila penilaian mempunyai kecacatan yang menjejaskan keputusan, ia boleh memberi gambaran palsu tentang keupayaan, menyalahgambarkan kes keselamatan dan mempengaruhi keutamaan penyelidikan.

Kami baru-baru ini menyiasat bagaimana salah satu penanda aras pengekodan yang paling meluas digunakan, SWE-bench Verified, mempunyai isu reka bentuk asas dan pencemaran, dan mendapati penilaian itu tidak lagi memberikan isyarat bermakna tentang keupayaan pembangunan perisian. Pada masa itu, kami menggalakkan komuniti yang lebih luas beralih kepada SWE-Bench Pro.

SWE-Bench Pro(dibuka dalam tetingkap baru) direka untuk menambah baik SWE-bench Verified dengan menguji model pada horizon yang lebih panjang dan tugasan pengekodan yang lebih realistik, agar keupayaan pengekodan agentic dapat dijejaki dengan lebih baik. Seperti dalam SWE-bench Verified, tugasan diperoleh secara program daripada sejarah perubahan ciri dalam satu set repositori awam dan peribadi. Model dikehendaki melaksanakan penyelesaian yang lulus ujian baharu untuk sesuatu ciri, tanpa merosakkan fungsi sedia ada. Pada pecahan awam 731 tugasan, model perbatasan meningkat daripada kadar lulus 23.3% kepada 80.3% dalam lapan bulan.

Sejak itu, kami telah menjalankan audit serupa terhadap SWE-Bench Pro, dengan menyemak set data menggunakan saluran analisis titik data. Saluran itu menyemak percubaan model pada tugasan, metadata tugasan dan jejak kegagalan untuk menandakan kemungkinan kecacatan penilaian. Setiap tugasan yang ditanda kemudian dinilai melalui berbilang pusingan penyiasat-ejen dan disemak secara bebas oleh lima jurutera perisian berpengalaman, dengan sebarang percanggahan dinaikkan untuk siasatan lanjut.

Kami menemukan bukti isu yang merosakkan dalam sebahagian besar set data. Saluran analisis titik data kami menandakan 200 (27.4%) tugasan rosak, manakala kempen anotasi manusia mengenal pasti 249 (34.1%).

Isu-isu tersebut terbahagi terutamanya kepada empat kategori:

  • Ujian terlalu ketat1 menguatkuasakan butiran pelaksanaan tertentu yang tidak dinyatakan dalam prom, lalu membatalkan banyak penyerahan yang betul dari segi fungsi.
  • Prom yang kurang ditentukan2 meninggalkan keperluan yang dikuatkuasakan oleh ujian tersembunyi dan yang tidak dapat disimpulkan secara munasabah.
  • Ujian liputan rendah tidak memeriksa ciri yang diminta dengan secukupnya, jadi pembaikan yang tidak lengkap boleh lulus.
  • Satu prom mengelirukan menghalakan model kepada kelakuan yang salah atau bercanggah dengan kehendak ujian.

Dapatan kami menunjukkan sukarnya menyusun penanda aras yang sukar tetapi adil, serta semakin bergunanya ejen untuk pemeriksaan kualiti data pada skala besar. Berdasarkan keputusan ini, kami menganggarkan bahawa ~30% tugasan SWE-bench Pro adalah rosak, dan menasihatkan pembangun model agar meneliti keputusan dengan cermat.

Metodologi

Matlamat kami adalah memastikan kegagalan tugasan mencerminkan batasan model yang sebenar, dan kejayaan tugasan mencerminkan penyelesaian yang lengkap serta sah terhadap keperluan prom. Untuk memeriksa kualiti data yang digunakan dalam penilaian, kami membina saluran jaminan kualiti bagi menilai sama ada setiap titik data mencerminkan keupayaan model dengan tepat.

Aliran kerja jaminan kualiti yang menggabungkan saringan automatik dan semakan manusia untuk menilai kualiti tugasan.

Saluran kualiti data awal menandakan masalah untuk disemak. Kami mengesahkannya melalui audit lebih mendalam berbantukan ejen terhadap tugasan yang ditanda dan kempen anotasi manusia bersama jurutera berpengalaman.

Penapis automatik awal menyemak arahan yang diberikan kepada model, percubaan model untuk menyelesaikan tugasan, dan ujian yang digunakan untuk menilai percubaan ini bagi menandakan contoh yang berkemungkinan rosak atau bermasalah. Penapis ini menandakan 286 tugasan yang berpotensi rosak. Kami kemudian menjalankan semakan lebih mendalam terhadap subset itu melalui dua cara: semakan ejen diselia manusia, yang menjalankan pemeriksaan meluas dengan ejen penyiasat dan pertimbangan akhir manusia; serta kempen anotasi manusia bersama pembangun perisian berpengalaman.

Semakan ejen diselia manusia

Setiap masalah yang ditanda diaudit dengan ejen penyiasat berasaskan Codex yang diberikan akses kepada repositori dan persekitaran tugasan. Ini membantu mereka membezakan kekaburan tugasan yang munasabah, yang sering dapat diselesaikan dengan mengkaji kod berdekatan dan konvensyen repositori, daripada kekurangan spesifikasi yang sebenar. Ejen boleh menjalankan ujian, memeriksa fail dalam repositori, dan menyiasat percubaan model serta mod kegagalan lazimnya pada tugasan itu. Selepas audit lebih mendalam ini diulang secara bebas beberapa kali, seorang penyelidik menyemak ringkasan, membuat pertimbangan akhir dan melabelkan isu yang berkemungkinan.

Kempen anotasi manusia

Secara selari, kami menjalankan kempen anotasi manusia ke atas subset yang ditanda. Kami bekerjasama dengan jurutera perisian berpengalaman yang dilatih tentang matlamat penanda aras, taksonomi isu dan kes pinggir sebelum menyemak tugasan. Setiap tugasan disemak oleh lima jurutera.

Penyemak membentuk pertimbangan bebas berdasarkan pernyataan masalah yang kelihatan, kes ujian, dan penyelesaian rujukan sebenar (dikenali sebagai gold patch) sebelum menggunakan analisis saluran atau transkrip sebagai konteks sokongan. Penyemak kemudian memberikan label dan penarafan keterukan berdasarkan bukti konkrit, serta menaikkan percanggahan atau kes berkeyakinan rendah untuk semakan lanjut.

Penyemak manusia lebih cenderung daripada ejen penyiasat untuk menandakan tugasan sebagai rosak. Terdapat juga sedikit percanggahan kategori antara dua laluan semakan itu, tetapi bagi semua tugasan yang ditanda, “tidak rosak” bukan label manusia yang paling lazim. Bagi kategori yang ditanda oleh saluran ejen, pertimbangan penyemak bertindih dalam 74% kes.

Berbanding saluran ejen, penyemak manusia juga lebih cenderung memilih berbilang label untuk sesuatu tugasan, menunjukkan bahawa mereka mendapati tugasan rosak dalam beberapa cara atau tidak sesuai dengan jelas dalam satu kategori sahaja. Ini menunjukkan saluran ejen-bersama-penyemak menghasilkan pelabelan yang konservatif: ia menangkap mod kegagalan luas yang sama seperti yang dikenal pasti manusia, sambil mengurangkan kiraan kes apabila penyemak melihat isu tambahan atau bertindih. Perbezaan terbesar adalah pada ujian liputan rendah, yang dipilih manusia sebagai isu paling lazim untuk 9.4% penanda aras berbanding 4.1% daripada saluran ejen.

Mod kegagalan

Dalam beberapa kes, prom tugasan menetapkan pelaksanaan tertentu, tetapi kes ujian tersembunyi mengharapkan kelakuan yang berbeza.

This task involves normalizing table-of-contents entries and rendering them back to Markdown via TocEntry.to_markdown(). The task prompt specifies serialization down to character-level spacing, describing how exact spacing and pipes are enforced, and gives examples such as " | Chapter 1 | 1" and "** | Chapter 1 | 1":

Tiada

1
"[space]| Chapter 1 | 1"
2
"**[space]| Chapter 1 | 1"
3
"[space]| Just title | "

The hidden test_to_markdown assertions instead require " | Chapter 1 | 1" and "** | Chapter 1 | 1":

Tiada

1
"[space][space]| Chapter 1 | 1"
2
"**[space][space]| Chapter 1 | 1"
3
"[space][space]| Just title | "

There are two leading spaces in the hidden tests, but the example given to the model only contains one leading space. If a model rightly follows the given prompt, that one-character difference would fail the hidden test cases and the task would be marked incorrect.

Perbincangan

Isu yang kami kenal pasti, bersama kes serupa dalam SWE-bench Verified, menekankan kepentingan memeriksa penanda aras dengan teliti. Isu dan permintaan tarik daripada repositori sumber terbuka pada asalnya diwujudkan untuk kerjasama manusia, sering melalui perbincangan panjang antara penyelenggara dan penyumbang. Akibatnya, huraian masalah, kod yang digabungkan dan ujian unit tidak semestinya sejajar untuk membentuk tugasan yang bersih dan terasing bagi menilai model dengan boleh dipercayai. Khususnya, ujian yang disertakan dalam permintaan tarik boleh menjadi terlalu ketat kerana ia ditulis untuk mengesahkan perubahan tertentu, bukan untuk mentakrifkan piawaian bebas pelaksanaan bagi menyelesaikan tugasan.

Pada masa yang sama, kecacatan penilaian kini lebih mudah dikesan berbanding walau hanya sebentar dahulu. Apabila keupayaan model bertambah baik, kita boleh menggunakan model tersebut untuk memeriksa prom, ujian, tampalan, jejak dan kes pinggir dengan kedalaman serta konsistensi yang jauh lebih tinggi, membantu menonjolkan isu penanda aras yang sebelum ini mahal atau tidak praktikal untuk dicari pada skala besar.

Kami berharap komuniti penilaian yang lebih luas akan membangunkan penanda aras baharu yang dibina oleh pembangun perisian berpengalaman khusus untuk menguji keupayaan model. Pendekatan itu dapat mengekalkan standard tinggi dan realisme yang ingin kita gunakan untuk mengukur keupayaan model, serta membolehkan pengawasan manusia yang lebih baik sepanjang proses. Memandangkan isu yang didedahkan dalam analisis ini, kami menarik balik cadangan awal kami untuk menggunakan SWE-Bench Pro.

Akhirnya, sesuatu penilaian harus memberikan isyarat bermakna melalui penanda aras yang sukar dimanipulasi, mudah dipercayai dan benar-benar mencerminkan keupayaan atau penjajaran model. Oleh kerana keputusan ini memaklumkan keputusan pelaksanaan dan keselamatan OpenAI, penilaian yang kami jejak perlu sah dan bermaklumat.

Penulis

OpenAI

Nota kaki

  1. 1

    Sebelum ini kami merujuk kategori ini sebagai ujian sempit.

  2. 2

    Sebelum ini kami merujuk kategori ini sebagai ujian luas.