Razdvajanje signala od šuma u evaluacijama kodiranja
Detaljnom revizijom nalazimo raširene probleme sa zadacima u SWE-Bench Pro i procjenjujemo da je oko 30 % zadataka neispravno.
Točno mjerenje sposobnosti naših modela važno je za donošenje utemeljenih odluka o uvođenju i sigurnosti, uključujući odluke prema OpenAI-jevu Okviru pripravnosti(otvara se u novom prozoru). Sa svakim izdanjem modela izvješćujemo o rezultatima na različitim vanjskim i internim referentnim testovima kako bismo pratili napredak modela. Kada evaluacije imaju manjkavosti koje utječu na rezultate, mogu stvoriti pogrešnu predodžbu o sposobnostima modela, iskriviti sigurnosne argumente i utjecati na istraživačke prioritete.
Nedavno smo istražili temeljne probleme u dizajnu i kontaminaciji jednog od najčešće korištenih referentnih testova za programiranje, SWE-bench Verified, te utvrdili da ta evaluacija više ne pruža smislen signal o sposobnostima razvoja softvera. Tada smo potaknuli širu zajednicu da prijeđe na SWE-Bench Pro.
SWE-Bench Pro(otvara se u novom prozoru) osmišljen je kao poboljšanje u odnosu na SWE-bench Verified tako što modele testira na duljim vremenskim horizontima i realističnijim programerskim zadacima kako bi se bolje pratile sposobnosti agentskog programiranja. Kao i u SWE-bench Verified, zadaci se programski izvode iz povijesti promjena značajki u skupu javnih i privatnih repozitorija. Modeli moraju implementirati rješenje koje prolazi nove testove za određenu značajku, a da pritom ne naruše postojeću funkcionalnost. Na javnom podskupu od 731 zadatka stopa prolaznosti graničnih modela porasla je s 23,3 % na 80,3 % u osam mjeseci.
Otad smo proveli sličnu reviziju SWE-Bench Proa, pregledavši skup podataka pomoću cjevovoda za analizu podatkovnih točaka. Cjevovod je pregledao pokušaje modela da riješe zadatke, metapodatke zadataka i tragove neuspjeha kako bi označio vjerojatne manjkavosti evaluacije. Svaki označeni zadatak zatim je prošao više neovisnih pregleda istraživačkih agenata, a zasebno ga je pregledalo pet iskusnih softverskih inženjera. Slučajevi neslaganja upućeni su na dodatnu istragu.
Pronalazimo dokaze o neispravnostima u znatnom dijelu skupa podataka. Naš cjevovod za analizu podatkovnih točaka označio je 200 (27,4 %) neispravnih zadataka, dok ih je kampanja ljudskog označavanja identificirala 249 (34,1 %).
Problemi su uglavnom spadali u četiri kategorije:
- Prestrog testovi1 nameću određene implementacijske pojedinosti koje nisu navedene u upitu, zbog čega mnoga funkcionalno ispravna rješenja ne prolaze.
- Nedovoljno specificirani upiti2 izostavljaju zahtjeve koje skriveni testovi zahtijevaju, a nije ih moguće razumno zaključiti.
- Testovi niske pokrivenosti nedovoljno provjeravaju traženu značajku, pa nepotpuna rješenja mogu proći.
- Obmanjujući upit usmjerava modele prema pogrešnom ponašanju ili proturječi onome što testovi zahtijevaju.
Naši nalazi pokazuju koliko je teško sastaviti zahtjevne, ali pravedne referentne testove te koliko agenti postaju korisni za opsežne provjere kvalitete podataka. S obzirom na te rezultate, procjenjujemo da je oko 30 % zadataka u SWE-bench Pro neispravno te savjetujemo razvojnim timovima koji rade na modelima da pažljivo analiziraju rezultate.
Cilj nam je osigurati da neuspjesi na zadacima odražavaju stvarna ograničenja modela, a uspješno riješeni zadaci potpuna i valjana rješenja svih zahtjeva iz upita. Kako bismo provjerili kvalitetu podataka korištenih u evaluaciji, izradili smo cjevovod za osiguravanje kvalitete kojim procjenjujemo odražava li svaka podatkovna točka točno sposobnosti modela.
Početni cjevovod za provjeru kvalitete podataka označava probleme za daljnji pregled. Nalaze potvrđujemo detaljnijom revizijom označenih zadataka uz pomoć agenta te kampanjom ljudskog označavanja u kojoj sudjeluju iskusni inženjeri.
Početni automatizirani filtar pregledava upute dane modelu, njegove pokušaje rješavanja zadatka i testove kojima se ti pokušaji ocjenjuju kako bi označio vjerojatno neispravne ili problematične primjere. Filtar je označio 286 potencijalno neispravnih zadataka. Zatim smo taj podskup detaljnije pregledali na dva načina: pregledom uz pomoć agenata pod ljudskim nadzorom, koji obuhvaća opsežne provjere istraživačkih agenata i konačnu ljudsku prosudbu, te kampanjom ljudskog označavanja u kojoj su sudjelovali iskusni softverski programeri.
Svaki označeni problem revidiraju istraživački agenti temeljeni na Codexu, kojima je omogućen pristup repozitoriju i okruženju zadatka. To im pomaže razlikovati opravdanu dvosmislenost zadatka, koja se često može razriješiti proučavanjem okolnog koda i konvencija repozitorija, od stvarne nedovoljne specificiranosti. Agent može pokretati testove, pregledavati datoteke u repozitoriju te analizirati pokušaje modela i njihove uobičajene obrasce neuspjeha pri rješavanju zadatka. Nakon nekoliko neovisnih ponavljanja tih detaljnijih revizija istraživač je pregledao sažetke, donio konačnu prosudbu i označio vjerojatne probleme.
Paralelno smo proveli kampanju ljudskog označavanja za označeni podskup. Surađivali smo s iskusnim softverskim inženjerima koji su prije pregleda zadataka prošli obuku o ciljevima referentnog testa, taksonomiji problema i rubnim slučajevima. Svaki zadatak pregledalo je pet inženjera.
Recenzenti su najprije donijeli neovisnu prosudbu na temelju vidljivog opisa problema, testnih slučajeva i referentnog rješenja koje se smatra točnim, poznatog kao gold patch. Tek su zatim analizu cjevovoda ili zapis koristili kao dodatni kontekst. Na temelju konkretnih dokaza dodijelili su oznaku i ocjenu ozbiljnosti te slučajeve neslaganja ili niske sigurnosti u procjenu uputili na daljnji pregled.
Ljudski recenzenti češće su od istraživačkih agenata označavali zadatke kao neispravne. Između dvaju postupaka pregleda bilo je i određenih neslaganja u pogledu kategorija, ali ni za jedan označeni zadatak „ispravan” nije bio najčešći odabir ljudskih recenzenata. Procjene recenzenata podudarale su se s kategorijama koje je označio cjevovod s agentima u 74 % slučajeva.
U usporedbi s cjevovodom s agentima, ljudski recenzenti češće su jednom zadatku dodjeljivali više oznaka, što znači da su utvrdili više vrsta neispravnosti ili da zadatak nije jasno pripadao samo jednoj kategoriji. To upućuje na to da je cjevovod koji objedinjuje agente i recenzente primjenjivao konzervativan pristup označavanju: obuhvatio je iste opće obrasce neuspjeha koje su utvrdili ljudi, ali nije zabilježio sve slučajeve u kojima su recenzenti pronašli dodatne ili preklapajuće probleme. Najveća razlika odnosila se na testove niske pokrivenosti, koje su ljudi odabrali kao najčešći problem u 9,4 % referentnog testa, u usporedbi s 4,1 % prema cjevovodu s agentima.
Obrasci neuspjeha
U nekoliko je slučajeva upit za zadatak propisivao određenu implementaciju, ali su skriveni testni slučajevi očekivali drukčije ponašanje.
Problemi koje smo identificirali, zajedno sa sličnim slučajevima u SWE-bench Verified, naglašavaju važnost rigorozne provjere referentnih testova. Prijave problema i pull requestovi iz repozitorija otvorenog koda izvorno su namijenjeni ljudskoj suradnji, koja često uključuje dugotrajnu komunikaciju između održavatelja i doprinositelja. Zbog toga opisi problema, integrirani kôd i jedinični testovi nisu uvijek usklađeni tako da tvore jasno izdvojene zadatke prikladne za pouzdanu evaluaciju modela. Testovi uključeni u pull requestove mogu biti osobito prestrogi jer su napisani radi provjere određene promjene, a ne radi definiranja standarda za rješavanje zadatka koji ne ovisi o implementaciji
Istodobno, manjkavosti evaluacije danas je lakše otkriti nego što bi to bilo još donedavno. Kako se sposobnosti modela poboljšavaju, te modele možemo koristiti za mnogo detaljniji i dosljedniji pregled upita, testova, zakrpa, tragova i rubnih slučajeva, čime se lakše otkrivaju problemi u referentnim testovima koje je prije bilo skupo ili nepraktično pronalaziti u velikom mjerilu.
Nadamo se da će šira evaluacijska zajednica razviti nove referentne testove koje će iskusni softverski programeri izraditi posebno za testiranje sposobnosti modela. Takav pristup može zadržati željenu razinu zahtjevnosti i realističnosti pri mjerenju sposobnosti modela te omogućiti bolji ljudski nadzor tijekom cijelog procesa. S obzirom na probleme otkrivene ovom analizom, povlačimo svoju raniju preporuku za upotrebu SWE-Bench Proa.
U konačnici, evaluacija bi trebala pružati smislen signal putem referentnih testova koje je teško izigrati, koji ulijevaju povjerenje i koji doista odražavaju sposobnosti ili usklađenost modela. Budući da ti rezultati služe kao temelj za OpenAI-jeve odluke o uvođenju i sigurnosti, evaluacije koje pratimo moraju biti valjane i informativne.
Autor
Bilješke
- 1
Prethodno smo tu kategoriju nazivali uskim testovima.
- 2
Prethodno smo tu kategoriju nazivali širokim testovima.


