Неліктен SWE-bench Verified енді озық кодтау қабілеттерін өлшемейді
SWE-bench Verified барған сайын ластанып барады. Біз SWE-bench Pro-ны ұсынамыз.
Біз SWE-bench Verified-ті 2024 жылғы тамызда алғаш жариялағаннан бері, сала оны автономды бағдарламалық инженерия тапсырмаларындағы модельдердің ілгерілеуін өлшеу үшін кеңінен қолданып келеді. Шығарылғаннан кейін SWE-bench Verified қабілет ілгерілеуінің мықты сигналы болды және озық модельдердің релиздерінде хабарланатын стандартты метрикаға айналды. Бұл қабілеттердің ілгерілеуін бақылау мен болжау OpenAI-дың Preparedness Framework шеңберінің де маңызды бөлігі. Біз Verified бенчмаркін алғаш жасағанда, бастапқы бағалаудағы кейбір тапсырмаларды SWE-bench деректер жиынтығында(жаңа терезеде ашылады) орындауды мүмкін емес еткен мәселелерді шешуге тырыстық.
Алғашқы серпілістерден кейін SWE-bench Verified-тегі үздік нәтиже соңғы 6 айда(жаңа терезеде ашылады) 74.9%-дан 80.9%-ға ғана өсіп, баяулады. Бұл сұрақ туғызады: қалған сәтсіздіктер модель шектеулерін көрсете ме, әлде деректер жиынтығының өз қасиеттерін бе?
Жаңа талдауымызда Verified жиынтығында екі ірі мәселе барын анықтадық. Олар бүгінгі өнімділік деңгейлерінде озық релиздер үшін автономды бағдарламалық инженерия қабілеттерінің ілгерілеуін өлшеуге бұл бенчмарктің енді жарамайтынын көрсетеді:
- Тесттер дұрыс шешімдерді қабылдамайды: Біз модельдер жиі шеше алмаған деректер жиынтығының 27.6% бөлігін аудиттен өткізіп, тексерілген мәселелердің кемінде 59.4%-ында функционалдық тұрғыдан дұрыс жіберілімдерді қабылдамайтын ақаулы тест жағдайлары бар екенін анықтадық, бұны SWE-bench Verified-ті алғаш жасағанда жақсартуға барынша тырысқанымызға қарамастан.
- Шешімдер бойынша оқыту: Ірі озық модельдер оқытудан ақпаратты меңгере алатындықтан, оларды бағалайтын мәселелер мен шешімдер бойынша ешқашан оқытпау маңызды. Бұл тестке дейін студенттерге алдағы сынақтың сұрақтары мен жауаптарын берумен ұқсас — олар жауапты жаттап алмауы мүмкін, бірақ жауаптарды бұрын көрген студенттер көрмегендерге қарағанда анық жақсырақ орындайды. SWE-bench мәселелері көптеген модель жеткізушілері оқыту мақсатында пайдаланатын ашық кодты репозиторийлерден алынады. Біздің талдауымызда сынаған барлық озық модельдер эталондық сілтеме ретінде қолданылатын адам жазған бастапқы қате түзетуін, яғни gold patch-ті, не кейбір тапсырмалар үшін мәселе сипаттамасының нақты тұжырымдарын қайта шығара алғанын байқадық. Бұл олардың барлығы оқыту кезінде кемінде кейбір мәселелер мен шешімдерді көргенін көрсетеді.
Сондай-ақ, оқыту кезінде осы мәселелерді көрген модельдердің жетістікке жету ықтималдығы жоғары болатынына дәлел таптық, өйткені оларда толық нақтыланбаған тесттерден өтуге қажет қосымша ақпарат бар.
Бұл SWE-bench Verified-тегі жақсарулар енді модельдердің шынайы әлемдегі бағдарламалық әзірлеу қабілеттерінің мәнді жақсаруларын көрсетпейтінін білдіреді. Оның орнына, олар барған сайын модельдің оқыту кезінде бенчмаркпен қаншалықты таныс болғанын көрсетеді. Сондықтан біз SWE-bench Verified ұпайларын хабарлауды тоқтаттық және басқа модель әзірлеушілеріне де солай істеуді ұсынамыз.
Біз кодтау қабілеттерін жақсырақ бақылау үшін жаңа, ластанбаған бағалаулар жасап жатырмыз және мұны кеңірек зерттеу қауымдастығы үшін маңызды бағыт деп санаймыз. Ондай бағалаулар дайын болғанша, OpenAI SWE-bench Pro нәтижелерін жариялауды ұсынады.
Бастапқы SWE-bench(жаңа терезеде ашылады) бағалауы 2023 жылы шығарылды. Әр мәселе 12 ашық кодты Python репозиторийінің біріндегі шешілген GitHub issue-ден алынып, соған сәйкес pull request-пен (PR) жұптастырылған. Модель жасаған код өзгерісінің дұрыстығын анықтау үшін әр мәселе екі тест жиынтығымен келеді:
- Өзгертілмеген код базасында сәтсіз өтетін, бірақ мәселе дұрыс түзетілсе өтетін тесттер
- Қатысы жоқ функционалдың бұзылмағанын тексеру үшін түзетуге дейін де, кейін де өтетін регрессия тесттері.
Модель тесттерді көрмейді. Ол тек бастапқы issue мәтіні мен түзетуге дейінгі репозиторий күйіне сүйеніп код өзгерісін ұсынуы керек. Код өзгерісі қолданылғаннан кейін барлық тесттер өткенде ғана ол мәселені шешті деп саналады.
Біз бұл бағалауда модельдердің қабілетін төмен көрсетіп жіберуі мүмкін көптеген мәселелер барын таптық.
- Кейбір бірлік тесттері тым нақты болды немесе тапсырмамен сәйкес келмеді, сондықтан дұрыс түзетулер қабылданбай қалуы мүмкін еді.
- Көптеген тапсырма тұжырымдары толық нақтыланбаған болды, бұл бірнеше дұрыс түсіндіруге әкелуі мүмкін еді, ал тесттер олардың тек бір нақты нұсқасын ғана қамтыды.
- Орта параметрлеріне қарай (мысалы Linux пен Windows айырмасы немесе python нұсқасы) кейбір тесттер жалған түрде сәтсіз аяқталуы мүмкін еді
Біз бұл мәселелерді шешу үшін 2024 жылы SWE-bench Verified-ті жасадық. Біз сарапшы бағдарламалық инженерлермен бірге 1,699 SWE-bench мәселесін қарап шығып, осындай ақаулары барларын сүзгіден өткіздік. Әр мәселені үш сарапшы бір-бірінен тәуелсіз қарап шықты. Осы шолу процесінің нәтижесінде 500 мәселеден тұратын іріктелген SWE-bench Verified жиынтығы жасалды.
SWE-bench Verified бастапқы нұсқамен салыстырғанда үлкен жақсарту болғанымен, қалдық мәселелер әлі де бар. Біз OpenAI o3 64 тәуелсіз іске қосудың барысында тұрақты шеше алмаған 138 SWE-bench Verified мәселесіне аудит жүргіздік. Әр жағдайды кемінде алты тәжірибелі бағдарламалық инженер тәуелсіз қарап шықты. Егер сарапшы мәселе барын белгілеcе, оны қосымша топ қайта тексерді.
138 мәселенің 59.4%-ында тест дизайнында және/немесе мәселе сипаттамасында елеулі ақаулар барын анықтадық. Бұл оларды тіпті ең қабілетті модель не адам үшін де аса қиын немесе мүмкін емес етеді.
- Тексерілген тапсырмалардың 35.5%-ында нақты іске асыру бөлшектерін міндеттейтін қатаң тест жағдайлары бар, бұл функционалдық тұрғыдан дұрыс көптеген жіберілімдерді жарамсыз етеді; біз мұны тар тест жағдайлары деп атаймыз.
- Тексерілген тапсырмалардың 18.8%-ында мәселе сипаттамасында көрсетілмеген қосымша функционалды тексеретін тесттер бар; біз мұны кең тест жағдайлары деп атаймыз.
- Қалған 5.1% тапсырмада осы жіктеуге жақсы сыймайтын әртүрлі басқа мәселелер болды.
Бірінші сәтсіздік режимінің көрнекі мысалы — pylint-dev__pylint-4551(жаңа терезеде ашылады). Мұнда PR жалпы шешімнің бөлігі ретінде жаңа `get_annotation` функциясын енгізеді. Бұл функция атауы мәселе сипаттамасында аталмайды, бірақ тесттер оны тікелей импорттайды. Кейбір модельдер мұндай функция құру керек екенін болжауы мүмкін, бірақ мәселені дұрыс шешу үшін дәл осындай атаумен функция жазу қатаң түрде міндетті емес. Көптеген жарамды шешімдер импорт қателеріне байланысты тесттен өте алмайды.
Мәселе сипаттамасы
PR тест үзіндісі
PR тест қателері (ықшамдалған)
Тым кең тест жағдайларының мысалы — sympy__sympy-18199(жаңа терезеде ашылады). Бұл тапсырма `nthroot_mod` функциясындағы үш бөлек мәселені түзеткен PR-ден алынған, атап айтқанда #17373(жаңа терезеде ашылады), #17377(жаңа терезеде ашылады) және #18212(жаңа терезеде ашылады). Алайда SWE-bench Verified тапсырмасының сипаттамасы тек соңғы #18212(жаңа терезеде ашылады) мәселесін ғана қамтиды. Бұл сәйкессіздік тудырады: PR тесттері үш мәселенің бәрін қамтиды, ал сипаттама тек біреуін егжей-тегжейлейді. Біздің іске қосуларымызда модельдер жиі сипатталған түзетуді дұрыс енгізіп, кейін қалған екі мәселені қамтитын тесттерден өте алмай қалады.
PR-дің бастапқы сипаттамасы (GitHub PR-ден)
#18212 үшін мәселе сипаттамасы
SWE-bench Verified тапсырмасына арналған мәселе сипаттамасы (тек #18212-ден алынған):
SWE-bench Verified те, репозиторийлер де (код базалары мен релиз жазбалары) ашық кодты, кең қолданылатын және талқыланатын болғандықтан, модель әзірлеушілері үшін ластануды болдырмау қиын.
Біз ластану белгілерін алдымен өз модельдерімізден байқадық. Мысалы, GPT‑5.2 біз шешу мүмкін емеске жуық деп анықтаған 31 тапсырманы шешкенде. django__django-14725(жаңа терезеде ашылады) жағдайында тесттер проблема тұжырымында анық талап етілмейтін нақты жаңа `edit_only` параметрін қажет етеді. Мәселені шешу барысында GPT‑5.2 өзінің chain of thought мәтінінде код базасындағы өзгерістерді сипаттайтын релиз жазбалары туралы ақпараты барын көрсетіп, `edit_only` параметрінің Django 4.1 нұсқасында енгізілгенін дұрыс анықтайды.
GPT‑5.2 CoT
Ластанудың ауқымын кеңірек бағалау үшін біз автоматтандырылған red-teaming жүйесін құрдық. Әр SWE-bench Verified сұрағы үшін GPT‑5‑ке GPT‑5.2‑Chat, Claude Opus 4.5 және Gemini 3 Flash Preview модельдерін ластануға тексеру міндеті берілді. Бұл модельдер ойлайтын модельдерді қоспау үшін таңдалды, бірақ олардың арасында елеулі қабілет айырмасы болуы мүмкін екенін мойындаймыз.
Ластануды тексеру үшін GPT‑5 мына ақпаратты алды: SWE-bench Verified тапсырмасының ID-і, сипаттамасы, gold patch-і және PR тесттері. 15 айналым бойы GPT‑5‑ке system/developer көмексөзін, user prompt-ты, assistant prefill-ді және түрлі айқындау стратегияларын өзгертуге мүмкіндік бердік. Әр айналымнан кейін judge моделі жаңа, тапсырмаға тән ақпараттың қаншалықты пайда болғанын белгілеп отырды, ал әр жауап ластану ауырлығы бойынша «жоқтан» «күштіге» дейін таңбаланды. GPT‑5‑ке тапсырмаға тән бөлшектерді біртіндеп қалпына келтіру үшін алдыңғы айналымдарға қарай стратегиясын бейімдеуге рұқсат етілді. Күшті ластану байқалған әр мысал бойынша GPT‑5 мақсатты модельге тым көп ақпарат бермегенін басқа judge арқылы тексердік. Соңында осы жазбадағы транскрипттерді құрайтын «күшті» мысалдарды қолмен қарап шықтық.
Төменде әртүрлі модель жеткізушілеріндегі күшті ластану мысалдары берілген.
Тапсырма сипаттамасынан қысқа үзінді берілгенде, GPT‑5.2 дәл gold patch-ті шығарады. Атап айтқанда, ол нақты класс пен әдіс атауын, сондай-ақ енгізілген жаңа ерте қайту шартын `if username is None or password is None` біледі.
Тапсырма ID-і: django__django-11451(жаңа терезеде ашылады)
Ластануды айқындау
Эталондық патч
Opus PR енгізген дәл 4 жолдық функционалдық өзгерісті, оған қоса өзгерген нақты файл атауы мен әдісті еске түсіріп қана қоймай, diff құрамындағы жолма-жол түсіндірмені де сөзбе-сөз келтіреді.
Тапсырма ID-і: astropy__astropy-13236(жаңа терезеде ашылады)
Ластануды айқындау
Эталондық патч
Gemini 3 Flash-қа ID-ден басқа тапсырма туралы ешқандай қосымша ақпарат берілмесе де, ол тапсырма сипаттамасы мен gold patch-тегі мәліметтерді сөзбе-сөз шығара алады. Бұған пайдаланушы атын тексеруге арналған жаңа regex формуласы және өзгерістің нақты жол нөмірлері кіреді.
Тапсырма ID-і: django__django-11099(жаңа терезеде ашылады)
Ластануды айқындау
Эталондық патч
SWE-bench Verified аудитінен біз бағалау дизайнына қатысты екі кеңірек сабақты көреміз. Біріншіден, көпшілікке ашық материалдардан алынған бенчмарктерде ластану қаупі бар: оқыту деректеріне ұшырау ұпайларды үнсіз түрде көтеріп жіберуі мүмкін. Егер бенчмарк құрастыруда көпшілікке ашық түрде жиналған деректер қолданылса, модель әзірлеушілері ластануға қосымша тексерулер жүргізуі керек. Бенчмарктер, тіпті олардың шешімдері де, ашық жарияланса, оқыту деректеріне еніп кетуі мүмкін. Деректер жиынтықтарын жариялау тәсіліне де (мысалы, құпиясөзбен қорғау), оқыту деректерін сүзуге де (мысалы, canary string-терді қатаң сақтау) ерекше мұқият қарау қажет.
Екіншіден, автоматтандырылған бағалауды дұрыс жасау қиын; мінсіз тест жағдайлары дұрыс функционалды толық тексеруі, нақты маңызды емес іске асыру бөлшектеріне тәуелсіз болуы және оңай айналып өтетін шешімдерге де төзімді болуы керек. Бұл мәселелер табиғатынан күрделі және шешуі қиын. Оларды анықтау үшін адам тарапынан ауқымды бірнеше таңбалау науқаны қажет болды.
Біз бұл тұжырымдарды соңғы бағалау жұмыстарымызға енгіздік. Соңғы айларда біз SWE-Bench Pro-ның ашық бөлігі бойынша нәтижелерді жариялауды таңдадық. Басқа модель әзірлеушілеріне де соны ұсына-мыз. SWE-bench Pro мінсіз емес, бірақ тәжірибе жүзінде ластану мәселелерінен азырақ зардап шегетіндей көрінеді. Біздің ластануды анықтау құбырымыз кейбір ластану жағдайларын тапты, бірақ олар SWE-bench Verified-пен салыстырғанда әлдеқайда сирек әрі азырақ өрескел болды, әрі ешбір модель толық сөзбе-сөз gold patch шығара алмады.
Біз түпнұсқа, жеке авторлар жасаған бенчмарктерге инвестициялауды жалғастырамыз және мұны істеуге сала мен академиядан да көмек сұраймыз. GDPVal ішінде тапсырмаларды сала сарапшылары жеке түрде жазады, бұл экспозиция қаупін азайтады, ал шешімдер даярланған рецензенттер тарапынан тұтас бағаланады. Бұл тәсіл көп ресурс талап етеді, бірақ шынайы қабілет жақсаруларын өлшеу үшін барған сайын қажет болып келеді.


