Bakit hindi na sinusukat ng SWE-bench Verified ang mga frontier sa kakayahan sa pag-code
Ang SWE-bench Verified ay lalong nagiging kontaminado. Inirerekomenda namin ang SWE-bench Pro.
Mula nang una naming inilathala ang SWE-bench Verified noong Agosto 2024, malawak na itong ginagamit ng industriya upang sukatin ang pag-usad ng mga modelo sa mga awtonomong gawain sa software engineering. Pagkatapos nitong ilabas, nagbigay ang SWE-bench Verified ng matatag na senyales ng pag-usad sa kakayahan at naging pamantayang sukatan na iniuulat sa mga paglabas ng mga frontier na modelo. Ang pagsubaybay at pagtataya ng pag-unlad ng mga kakayahang ito ay isa ring mahalagang bahagi ng Preparedness Framework ng OpenAI. Noong una naming ginawa ang Verified benchmark, sinubukan naming lutasin ang mga isyu sa orihinal na pagsusuri kaya naging imposebleng matapos ang ilang gawain sa SWE-bench dataset(magbubukas sa bagong window).
Pagkatapos ng mga unang pagsubok, bumagal ang state-of-the-art na pag-usad ng SWE-bench Verified, bumuti(magbubukas sa bagong window) mula 74.9% hanggang 80.9% sa nakalipas na anim na buwan. Itinataas nito ang tanong: Ang mga natitirang pagkabigo ba ay sumasalamin sa mga limitasyon ng modelo o sa mga katangian ng dataset mismo?
Sa isang bagong pagsusuri, nakakita kami ng dalawang pangunahing isyu sa Verified set na nagpapahiwatig na hindi na angkop ang benchmark para sukatin ang pag-usad sa mga kakayahan sa awtonomong software engineering para sa paglulunsad ng mga frontier sa mga antas ng pagganap ngayon:
- Tinatanggihan ng mga test ang mga tamang solusyon: In-audit namin ang 27.6% na subset ng dataset na madalas hindi masolusyunan ng mga modelo at natuklasan namin na hindi bababa sa 59.4% ng mga na-audit na problema ay may mga depektibong test case na tumatanggi sa mga submission na gumagana nang tama, sa kabila ng aming pinakamahusay na pagsisikap na pagbutihin ito sa paunang paglikha ng SWE-bench Verified.
- Pagsasanay sa mga solusyon: Dahil ang malalaking frontier na mga modelo ay maaaring makaalam ng impormasyon mula sa kanilang pagsasanay, mahalaga na hindi sila kailanman sinasanay sa mga problema at solusyon kung saan sila sinusuri. Ito ay katulad ng pagbabahagi ng mga problema at solusyon para sa paparating na pagsusulit sa mga estudyante bago ang pagsusulit - maaaring hindi nila kabisaduhin ang sagot pero ang mga estudyanteng nakakita na ng mga sagot dati ay tiyak na mas gagaling kaysa sa mga wala. Ang mga problema sa SWE-bench ay kinukuha mula sa mga open-source repository na ginagamit ng maraming provider ng modelo para sa mga layunin ng pagsasanay. Sa aming pagsusuri, nalaman namin na ang lahat ng frontier na modelo na sinubukan namin ay nagawang muling buuin ang orihinal, isinulat ng tao na bug fix na ginamit bilang pinakawastong reperensya, na kilala bilang gold patch, o ang mga letra por letrang detalye ng pahayag ng problema para sa ilang gawain, na nagpapahiwatig na nakita na ng lahat ng ito ang hindi bababa sa ilan sa mga problema at solusyon habang nagsasanay.
Nakakalap din kami ng ebidensya na ang mga modelong nakakita ng mga problema habang nagsasanay ay ang mga mas magtatgumpay, dahil mayroon silang karagdagang impormasyong kailangan upang makapasa sa mga underspecified na test.
Ibig sabihin nito, ang mga pagpapabuti sa SWE-bench Verified ay hindi na sumasalamin sa makabuluhang pagpapabuti sa mga kakayahan ng mga modelo sa tunay na mundo sa pagbuo ng software. Sa halip, lalo nilang sinasalamin kung gaano kalaki ang pagkakalantad ng modelo sa benchmark noong panahon ng pagsasanay. Ito ang dahilan kung bakit tumigil na kami sa pag-uulat ng mga score ng SWE-bench Verified, at inirerekomenda naming gawin din ito ng iba pang mga developer ng modelo.
Bumubuo kami ng mga bagong, hindi kontaminadong pagsusuri para mas mahusay na masubaybayan ang mga kakayahan sa pagko-code, at sa tingin namin ay mahalagang pagtuunan ito ng mas malawak na komunidad ng pananaliksik. Hanggang sa makuha namin ang mga iyon, inirerekomenda ng OpenAI ang pag-uulat ng mga resulta para sa SWE-bench Pro.
Ang orihinal na SWE-bench(magbubukas sa bagong window) na pagsusuri ay inilabas noong 2023. Ang bawat problema ay nagmula sa isang nalutas na GitHub issue sa isa sa 12 open-source Python repository at ipinares sa kaukulang pull request (PR). Upang matukoy kung tama ang isang pagbabago sa code na binuo ng modelo, ang bawat problema ay may kasamang dalawang set ng mga test:
- Mga test na pumpapalya sa hindi binagong codebase ngunit pumapasa kapag tama ang pagkakaayos sa isyu
- Mga regression test na pumapasa bago at pagkatapos ng pag-aayos upang matiyak na nananatiling buo ang hindi kaugnay na functionality.
Hindi nakikita ng modelo ang mga pagsusuri. Kailangan nitong makabuo ng pagbabago sa code gamit lamang ang orihinal na teksto ng isyu at ang estado ng repository bago ang pag-aayos. Pumapasa lang ito sa problema kung pumapasa ang lahat ng pagsubok pagkatapos mailapat ang pagbabago sa code.
Nakakita kami ng maraming isyu sa pagsusuring iyon na maaaring humantong sa hindi sapat na pag-uulat ng kakayahan ng mga modelo.
- Ang ilang pagsubok sa yunit ay masyadong tiyak o hindi nakaayon sa gawain kaya maaaring tanggihan ang mga tamang pag-aayos.
- Maraming pahayag ng gawain ang hindi gaanong tinukoy, na maaaring humantong sa maraming wastong interpretasyon - habang isang partikular na interpretasyon lang ang sinaklaw ng mga test.
- Depende sa setup ng environment (halimbawa Linux vs Windows, o ang python na bersyon), maaaring pumalya nang hindi sinasadya ang ilang test
Ginawa namin ang SWE-bench Verified noong 2024 para tugunan ang mga isyung ito. Nakipagtulungan kami sa mga ekspertong software engineer para suriin ang 1,699 na SWE-bench na problema at salain ang mga problemang may ganitong mga isyu. Ang bawat problema ay magkakahiwalay na sinuri ng tatlong eksperto. Ang prosesong ito ng pagrepaso ay nagresulta sa SWE-bench Verified, isang piniling hanay mula sa 500 problema.
Bagama’t malaking pagbuti ang SWE-bench Verified kumpara sa unang bersyon, may natitira pang mga isyu. Nagsagawa kami ng audit sa 138 SWE-bench Verified na problema na hindi palaging nalulutas ng OpenAI o3 sa loob ng 64 na magkakahiwalay na pag-run. Ang bawat kaso ay independiyenteng sinuri nang hindi bababa sa anim na bihasang software engineer. Kung may na-flag na isyu ang isang eksperto, muli itong binerepika ng karagdagang team.
Natuklasan namin na 59.4% ng 138 problema ay naglalaman ng mahahalagang isyu sa in test na disenyo at/o paglalarawan ng problema, na nagiging dahilan upang maging napakahirap o imposibleng lutasin ang mga ito kahit para sa pinaka-may kakayahang modelo o tao.
- 35.5% sa mga na-audit na gawain ay may mahihigpit na test case na nagpapatupad ng mga partikular na detalye ng implementasyon, na nagpapawalang-bisa sa maraming pagsusumiteng tama naman ang paggana, na tinatawag naming mga kaso sa makitid na test.
- 18.8% sa mga na-audit na gawain ay may mga test na nagsusuri ng karagdagang pungsyonalidad na hindi tinukoy sa paglalarawan ng problema, na tinatawag naming mga kaso sa malapad na test.
- Ang natitirang 5.1% ng mga gawain ay may sari-saring isyu na hindi maayos na naipangkat sa taksonomiyang ito.
Isang ilustratibong halimbawa ng unang mode ng pagpalya ay ang pylint-dev__pylint-4551(magbubukas sa bagong window), kung saan ipinapakilala ng PR ang isang bagong kakayahan na `get_annotation` bilang bahagi ng pangkalahatang solusyon. Ang pangalan ng function na ito ay hindi nabanggit sa paglalarawan ng problema, pero direktang ini-import ng mga test. Bagama’t maaaring mahinuha ng ilang mga modelo na gumawa ng ganitong kakayahan, hindi mahigpit ang pangangailangan sa pagpapatupad ng kakayahan na may ganitong partikular na pangalan upang maayos na matugunan ang problema. Maraming wastong solusyon ang pumapalya sa mga test dahil sa mga error sa pag-import.
Paglalarawan ng problema
Snippet ng PR test
Mga pagkabigo sa pagsubok sa PR (pinutol para sa mas madaling pagbabasa)
Isang halimbawa ng masyadong malalawak na kaso ng test ay ang sympy__sympy-18199(magbubukas sa bagong window). Ang gawaing ito ay nagmula sa isang PR na tumugon sa tatlong magkakahiwalay na isyu sa kakayahan na `nthroot_mod`, partikular #17373(magbubukas sa bagong window), #17377(magbubukas sa bagong window), at #18212(magbubukas sa bagong window). Gayunpaman, ang paglalarawan para sa SWE-bench Verified na task ay sumasaklaw lamang sa huling isyu #18212(magbubukas sa bagong window). Lumilikha ito ng hindi pagtutugma: sinasaklaw ng mga pagsusulit sa PR ang lahat ng tatlong isyu, habang ang paglalarawan ay nagdedetalye lang ng isa. Sa aming mga pag-run, madalas na tama na naipapatupad ng mga modelo ang inilarawang pag-aayos at pagkatapos ay pumapalya sa mga pagsubok na sumasaklaw sa pagpapatupad para natitirang dalawang isyu.
Orihinal na paglalarawan ng PR (mula sa GitHub PR)
Paglalarawan ng Problema para sa #18212
Paglalarawan ng Problema para sa SWE-bench Verified na gawain (kinuha lamang mula sa #18212):
Ang SWE-bench Verified at ang mga repository (mga code base at release note) ay parehong open-source at malawakang ginagamit at tinatalakay, na nagpapahirap sa pag-iwas sa kontaminasyon para sa mga developer ng modelo.
Una naming nasagupa ang mga senyales ng kontaminasyon sa sarili naming mga modelo. Halimbawa, nang nalutas ng GPT‑5.2 ang 31 gawain na natukoy naming halos imposibleng malutas. Sa django__django-14725(magbubukas sa bagong window) nangangailangan ang mga test ng partikular na bagong parameter na `edit_only` na hindi hayagang kinailangan ng pahayag ng problema. Habang nilulutas ang problema, ipinapakita ng GPT‑5.2 sa chain-of-thought nito na mayroon itong impormasyon tungkol sa mga release note na nagdedetalye ng mga pagbabago sa codebase, at tama nitong natutukoy na ang `edit_only` na parameter ay ipinakilala sa Django 4.1.
GPT‑5.2 CoT
Para masuri kung gaano kalawak ang epekto ng kontaminasyon, gumawa kami ng naka-automate na setup para sa red-teaming. Para sa bawat tanong sa SWE-bench Verified, inatasan namin ang GPT‑5 na magsagawa ng pagsusuri sa GPT‑5.2‑Chat, Claude Opus 4.5 at Gemini 3 Flash Preview para sa kontaminasyon. Pinili ang mga modelong ito upang ibukod ang mga nangangatuwirang modelo, ngunit kinikilala namin na malamang na may hindi maliit na agwat sa kakayahan sa pagitan nila.
Upang magsiyasat para sa kontaminasyon, natanggap ng GPT‑5 ang: ID, paglalarawan, gold patch, at mga PR test ng SWE-bench Verified task. Sa mahigit 15 pag-ikot, pinayagan naming baguhin ng GPT‑5 ang prompt ng system/developer, prompt ng user, at assistant prefill at iba’t ibang estratehiya ng pag-elicit. Pagkatapos ng bawat pag-ikot, nilagyan ng label ng isang judge na modelo kung gaano karaming bagong impormasyong partikular sa gawain ang lumitaw at ang bawat tugon ay nilagyan ng label para sa tindi ng kontaminasyon mula “wala” hanggang “matindi.” Pinayagan ang GPT‑5 na iakma ang diskarte nito batay sa mga naunang pag-ikot upang paulit-ulit na mabawi ang mga detalyeng partikular sa gawain. Para sa bawat halimbawa ng matinding kontaminasyon, binerepika namin kasama ng isa pang hukom na hindi nag-leak ang GPT‑5 ng masyadong maraming impormasyon sa target na modelo. Sa wakas, mano-mano naming sinuri ang mga “matinding” halimbawa na bumubuo sa mga transcript sa post na ito.
Narito ang mga halimbawa ng matinding kontaminasyon sa iba't ibang provider ng modelo.
Kapag binigyan ng maikling snippet mula sa paglalarawan ng gawain, inilalabas ng GPT‑5.2 ang eksaktong gold patch. Sa partikular, alam nito ang eksaktong pangalan ng uri at paraan, at ang bagong early return condition `if username is None or password is None` na ipinakilala.
ID ng gawain: django__django-11451(magbubukas sa bagong window)
Pagkuha ng kontaminasyon
Gold patch
Hindi lang naaalala ng Opus ang eksaktong 4 na linyang pungsyonal na pagbabago na ipinakilala ng PR, kasama ang partikular na filename at paraan na nadaanan nito, kundi binabanggit din nito letra por letra ang inline na komento na bahagi ng diff.
ID ng gawain: astropy__astropy-13236(magbubukas sa bagong window)
Pagkuha ng kontaminasyon
Gold patch
Kapag walang binigay na karagdagang impormasyon tungkol sa gawain bukod sa ID, nagagawang maglabas ng Gemini 3 Flash ng letra por letrang detalye mula sa paglalarawan ng gawain at sa gold patch. Kabilang dito ang bagong regex na pormula para sa pagpapatunay ng username at ang eksaktong mga numero ng linya para sa pagbabago.
ID ng gawain: django__django-11099(magbubukas sa bagong window)
Pagkuha ng kontaminasyon
Gold patch
Mula sa audit na ito ng SWE-bench Verified, nakikita natin ang dalawang mas malawak na aral para sa disenyo ng pagsusuri. Una, ang mga benchmark na nagmula sa mga materyal na available sa publiko ay may panganib ng kontaminasyon, kung saan ang pagkakalantad sa data ng pagsasanay ay maaaring tahimik na magpalobo ng mga score. Kung gagamitin ang data na na-crawl sa publiko sa pagbuo ng benchmark, dapat magsagawa ang mga developer ng modelo ng mga karagdagang pagsusuri para sa kontaminasyon. Ang mga benchmark, at maging ang mga solusyon nito, na nai-post sa publiko ay maaaring mapunta sa data ng pagsasanay. Dapat mag-ingat nang husto kapwa sa kung paano ipinopost ang mga dataset (ibig sabihin, (protektado ng password) at pag-filter sa data ng pagsasanay (ibig sabihin. mahigpit na pagsunod sa canary strings).
Pangalawa, mahirap gawing tama ang awtomatikong pagmamarka; dapat ganap na beripikahin ng mga perpektong test case ang tamang pagganap, na parehong hindi nakadepende sa mga tiyak na hindi mahalagang detalye ng implementasyon at matatag din laban sa mga shortcut na solusyon. Ang mga problemang ito ay likas na kumplikado at mahirap lutasin. Ang pagtukoy sa mga problemang ito ay nangangailangan ng maraming malalawak na kampanya ng pagla-label ng tao.
Isinama namin ang mga natuklasang ito sa aming mga kamakailang pagsisikap sa pagsusuri. Sa mga nakalipas na buwan, pinili naming iulat ang mga resulta mula sa pampublikong split ng SWE-Bench Pro. Inirerekomenda naming gawin din ito ng iba pang mga developer ng modelo. Hindi perpekto ang SWE-bench Pro, pero batay sa empirikal na ebidensya, tila mas kaunti ang problema nito sa kontaminasyon. Nakakita ang aming pipeline ng kontaminasyon ng ilang kaso ng kontaminasyon, ngunit ang mga kasong ito ay mas bihira at hindi gaanong malubha kung ihahambing sa SWE-bench Verified, at walang modelo ang nakapaglabas ng kumpleto at letra por letrang gold patch.
Patuloy kaming mamumuhunan sa mga orihinal, pribadong inakdang benchmark at hihingi ng tulong mula sa industriya at akademya upang gawin din ang ganito. Sa GDPVal, ang mga gawain ay pribadong isinulat ng mga dalubhasa sa larangan, na nagpapababa ng panganib ng pagkakalantad, at ang mga solusyon ay sinusuri nang holistiko ng mga sinanay na tagasuri. Ang pamamaraang ito ay nangangailangan ng maraming mapagkukunan, ngunit lalong kinakailangan upang sukatin ang mga tunay na pagpapahusay sa mga kakayahan.


