Jäta vahele ja mine põhisisu juurde
OpenAI

Signaali ja müra eristamine kodeerimise hindamistes

Üksikasjaliku auditi käigus leiame SWE-Bench Pros laialdasi ülesandeprobleeme ja hindame, et umbes 30% ülesannetest on katki.

Laadimine…

Meie mudelite võimekuse täpne mõõtmine on oluline põhjendatud kasutuselevõtu- ja ohutusotsuste tegemiseks, sealhulgas OpenAI Valmisoleku raamistiku(avaneb uues aknas) alusel tehtavate otsuste jaoks. Iga mudeli väljalaskega avaldame tulemusi mitmesugustel välistel ja sisestel võrdlusalustel, et jälgida mudelite arengut. Kui hindamistes on tulemusi mõjutavaid vigu, võivad need anda võimekusest väärpildi, moonutada ohutusjuhtumeid ja mõjutada uurimistöö prioriteete.

Me uurisime hiljuti, kuidas ühel enim kasutatud kodeerimise võrdlusalusel SWE-bench Verified olid põhimõttelised disaini- ja saastumisprobleemid, ning leidsime, et see hindamine ei andnud enam tarkvaraarenduse võimekuse kohta sisukat signaali. Tol ajal julgustasime laiemat kogukonda üle minema SWE-Bench Pro-le.

SWE-Bench Pro(avaneb uues aknas) loodi SWE-bench Verifiedi täiustamiseks, testides mudeleid pikematel ajahorisontidel ja realistlikumate kodeerimisülesannetega, et paremini jälgida agentse kodeerimise võimekust. Nagu SWE-bench Verifiedis, võetakse ülesanded programmiliselt avalike ja privaatsete varamute kogumi funktsioonimuudatuste ajaloost. Mudelid peavad teostama lahenduse, mis läbib funktsiooni uued testid, rikkumata olemasolevat funktsionaalsust. 731 ülesandega avalikul jaotusel paranes tipptasemel mudelite läbimismäär kaheksa kuuga 23,3%-lt 80,3%-le.

Oleme sellest ajast teinud SWE-Bench Pro-le sarnase auditi, vaadates andmestiku läbi andmepunktide analüüsikonveieriga. Konveier vaatas läbi mudeli katsed ülesannet lahendada, ülesande metaandmed ja tõrkejäljed, et märkida tõenäolised hindamisvead. Seejärel hinnati iga märgitud ülesannet mitme uurija-agendi läbimise kaudu ja viis kogenud tarkvarainseneri vaatasid selle sõltumatult üle; erimeelsused suunati edasiseks uurimiseks.

Leiame tõendeid tõsiste probleemide kohta märkimisväärses osas andmestikust. Meie andmepunktide analüüsikonveier märkis katkiseks 200 (27,4%) ülesannet, samas kui inimannotatsioonide kampaania tuvastas 249 (34,1%).

Probleemid jagunesid peamiselt nelja kategooriasse:

  • Liiga ranged testid1 nõuavad konkreetseid teostusüksikasju, mida viibas pole määratud, muutes paljud funktsionaalselt õiged esitused kehtetuks.
  • Ebapiisavalt täpsustatud viibad2 jätavad välja nõuded, mida peidetud testid jõustavad ja mida ei saa mõistlikult järeldada.
  • Vähese katvusega testid kontrollivad taotletud funktsiooni ebapiisavalt, nii et puudulikud parandused võivad läbi minna.
  • Eksitav viip suunab mudeleid vale käitumise poole või on vastuolus sellega, mida testid nõuavad.

Meie leiud osutavad raskusele koostada võrdlusaluseid, mis on keerulised, kuid õiglased, ning agentide kasvavale kasulikkusele skaleeritavates andmekvaliteedi kontrollides. Nende tulemuste põhjal hindame, et umbes 30% SWE-bench Pro ülesannetest on katki, ning soovitame mudelite arendajatel tulemusi hoolikalt uurida.

Metoodika

Meie eesmärk on tagada, et ülesannete ebaõnnestumised peegeldaksid mudeli tegelikke piiranguid ning ülesannete õnnestumised täielikke ja kehtivaid lahendusi viiba nõuetele. Hindamises kasutatud andmete kvaliteedi kontrollimiseks lõime kvaliteedikontrolli konveieri, et hinnata, kas iga andmepunkt peegeldab täpselt mudeli võimekust.

Kvaliteedikontrolli töövoog, mis ühendab automatiseeritud eelkontrolli ja inimläbivaatuse ülesannete kvaliteedi hindamiseks.

Esmane andmekvaliteedi konveier märgib probleemid läbivaatuseks. Valideerime tulemused põhjalikuma, agentide abiga tehtud märgitud ülesannete auditi ning kogenud inseneridega läbiviidava inimannotatsioonide kampaania abil.

Esmane automatiseeritud filter vaatab läbi mudelile antud juhised, mudeli katsed ülesannet lahendada ja nende katsete hindamiseks kasutatud testid, et märkida tõenäoliselt katkised või probleemsed näited. See filter märkis 286 potentsiaalselt katkist ülesannet. Seejärel tegime selle alamhulga põhjalikuma läbivaatuse kahel viisil: inimese juhendatud agendiläbivaatusega, mis teeb uurija-agentidega ulatuslikke kontrolle ja lõpeb inimese lõpliku otsusega; ning inimannotatsioonide kampaaniaga, kus töötati koos kogenud tarkvaraarendajatega.

Inimese juhendatud agendiläbivaatus

Iga märgitud probleemi auditeeritakse Codexil põhinevate uurija-agentidega, kellele anti juurdepääs ülesande varamule ja keskkonnale. See aitab neil eristada mõistlikku ülesande ebaselgust, mida saab sageli lahendada lähedalasuva koodi ja varamu tavade uurimisega, tegelikust alaspetsifitseeritusest. Agent saab käivitada teste, vaadata varamus olevaid faile ning uurida mudeli katseid ja nende levinud tõrkeviise selle ülesande puhul. Pärast nende põhjalikumate auditite mitut sõltumatut kordust vaatas teadlane kokkuvõtted läbi, tegi lõpliku otsuse ja märgistas tõenäolised probleemid.

Inimannotatsioonide kampaania

Paralleelselt korraldasime märgitud alamhulga kohta inimannotatsioonide kampaania. Töötasime kogenud tarkvarainseneridega, keda koolitati enne ülesannete läbivaatamist võrdlusaluse eesmärkide, probleemide taksonoomia ja piirjuhtumite osas. Iga ülesande vaatas läbi viis inseneri.

Läbivaatajad kujundasid nähtava probleemikirjelduse, testjuhtumite ja tegeliku etalonlahenduse (nn gold patch) põhjal sõltumatu hinnangu, enne kui kasutasid konveieri analüüsi või transkripti toetava kontekstina. Seejärel määrasid läbivaatajad konkreetsete tõendite põhjal sildi ja tõsidusastme ning suunasid erimeelsused või madala kindlusega juhtumid edasiseks läbivaatuseks.

Inimläbivaatajad märkisid ülesandeid katkiseks tõenäolisemalt kui uurija-agendid. Kahe läbivaatusteekonna vahel oli kategooriates ka mõningaid erimeelsusi, kuid üheski märgitud ülesandes ei olnud „pole katki“ kõige levinum inimmärgend. Agendikonveieri märgitud kategooriatest kattusid läbivaatajate hinnangud 74% juhtudest.

Agendikonveieriga võrreldes valisid inimläbivaatajad ülesandele ka tõenäolisemalt mitu märgendit, mis näitab, et nende hinnangul olid ülesanded katki mitmel viisil või ei sobitunud puhtalt ühte kategooriasse. See viitab, et agentide ja läbivaatajate konveier andis konservatiivse märgistuse: see tabas samu laiu tõrkeviise, mida inimesed tuvastasid, kuid alaloendas juhtumeid, kus läbivaatajad nägid täiendavaid või kattuvaid probleeme. Suurim erinevus ilmnes vähese katvusega testides, mille inimesed valisid kõige levinumaks probleemiks 9,4% võrdlusaluse puhul, võrreldes agendikonveieri 4,1%-ga.

Tõrkeviisid

Mitmel juhul nägi ülesande viip ette konkreetse teostuse, kuid peidetud testjuhtumid ootasid teistsugust käitumist.

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":

Puudub

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":

Puudub

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.

Arutelu

Meie tuvastatud probleemid koos sarnaste juhtumitega SWE-bench Verifiedis rõhutavad võrdlusaluste range kontrollimise tähtsust. Avatud lähtekoodiga varamute probleemid ja pull request’id loodi algselt inimeste koostööks, sageli haldajate ja kaastöötajate pikkade edasi-tagasi arutelude kaudu. Seetõttu ei moodusta probleemikirjeldused, liidetud kood ja üksustestid alati puhtaid, eraldiseisvaid ülesandeid mudelite usaldusväärseks hindamiseks. Eelkõige võivad pull request’ides sisalduvad testid olla liiga ranged, sest need on kirjutatud konkreetse muudatuse valideerimiseks, mitte teostusest sõltumatu standardi määratlemiseks ülesande lahendamisel.

Samal ajal on hindamisvigu praegu lihtsam tuvastada, kui see oleks olnud isegi üsna hiljuti. Mudelite võimekuse paranedes saame kasutada neid mudeleid viipade, testide, paikade, jälgede ja piirjuhtumite palju põhjalikumaks ja järjepidevamaks kontrollimiseks, aidates esile tuua võrdlusaluste probleeme, mille suuremahuline leidmine oli varem kulukas või ebapraktiline.

Loodame, et laiem hindamiskogukond arendab uusi võrdlusaluseid, mille kogenud tarkvaraarendajad on loonud spetsiaalselt mudelite võimekuse testimiseks. Selline lähenemine võib säilitada kõrge lati ja realismi, mida tahame mudelite võimekuse mõõtmisel näha, ning võimaldab kogu protsessi vältel paremat inimjärelevalvet. Selles analüüsis ilmnenud probleemide tõttu võtame tagasi oma varasema soovituse SWE-Bench Pro kasutusele võtta.

Lõppkokkuvõttes peaks hindamine andma sisuka signaali võrdlusaluste kaudu, mida on raske ära kasutada, mida on lihtne usaldada ja mis peegeldavad tõepoolest mudeli võimekust või joondumist. Kuna need tulemused mõjutavad OpenAI kasutuselevõtu- ja ohutusotsuseid, peavad meie jälgitavad hindamised olema kehtivad ja informatiivsed.

Autor

OpenAI

Joonealused märkused

  1. 1

    Varem nimetasime seda kategooriat kitsasteks testideks.

  2. 2

    Varem nimetasime seda kategooriat laiadeks testideks.