Блог

AI кодтау бенчмарктерін қалай оқып, қағаз жүзіндегі жеңімпазды таңдаудан қалай сақтануға болады

Markdown

HumanEval және SWE-bench нені өлшейді, сондай-ақ AI кодтау рейтингтерін оқығанда агент қабықшасын, шарттарды, тапсырмалардың жаңалығын, ауытқуды және шығынды қалай ескеру керек.

Мақаланы толық оқу

Қысқасы: «тапсырмалардың 76 пайызы орындалды» деген көрсеткіш өздігінен ештеңе дерлік айтпайды. Қай тапсырмалар жиыны қолданылғаны, қандай модель мен агент қабықшасы бірге есептелгені, тапсырмалардың жаңа не ескі екені және оның қаншаға түскені маңызды. Бұл шарттарсыз пайыз жарнамалық баннерге жарайды, бірақ құрал таңдауға жарамайды.

Әрі қарай екі негізгі кодтау бенчмаркі нені өлшейтінін, кестелерде қандай қулық жасырынатынын және кез келген рейтингке сүйенбес бұрын оны бір минутта қалай тексеруге болатынын қарапайым тілмен түсіндіремін. Төменде тарихи бенчмарк анықтамалары талқыланады. Мұнда тірі рейтингтің жұп өлшемі келтірілмеген; қазіргі ұпай не құн салыстыруына өз сілтелген кестесі, күні және конфигурациясы қажет.

Модельдермен жұмыс істеу туралы толығырақ Ailoot құжаттамасынан оқыңыз.

Бенчмарк пайызы нақты нені көрсетеді?

Негізгі түйін

Бенчмарк пайызы — белгілі бір жиындағы тапсырмалардың нақты шарттарда құралдың жұмыс істейтін нәтижемен аяқтаған үлесі. Тапсырмалар автоматтандырылған тесттермен тексеріледі: код тесттен өтеді немесе өтпейді; бағалау адал, мұнда «шамамен» деген жоқ. Бірақ тапсырмалар жиыны әрдайым шектеулі әрі алдын ала белгілі болады, ал өлшеу шарттары әркімде әртүрлі. Сондықтан бұл көрсеткіш «Бұл құрал осы тапсырмалардың қаншасын осылай орындады?» деген сұраққа жауап береді. «Ол менің жұмысымды атқара ала ма?» деген сұраққа жауап бермейді.

Бенчмарк қарапайым жұмыс істейді. Бағдарламалау тапсырмаларының дайын тізімі болады. Құралға әр тапсырма беріледі, ол кодты қайтарады, ал жүйе шешімнің жұмыс істейтінін тексеру үшін автоматтандырылған тесттерді іске қосады. Тесттен өткен тапсырмалардың үлесі кестедегі пайыз болып көрсетіледі.

Мұндағы артықшылық — бағалаудың объективті болуы. Тест не жасыл, не қызыл болады; ешкім «көз мөлшерімен» баға бермейді. Осы жағынан алғанда, бенчмарктер кез келген шолу немесе пікірден адалырақ.

Әлсіз тұсы да дәл осы. Тапсырмалар жиыны шектеулі әрі модельдерді үйрететіндерді қоса алғанда, бәріне алдын ала белгілі. Әр өлшеудің өз шарттары бар. Жиындағы тапсырмалар сіз істейтін жұмысқа ұқсамауы әбден мүмкін. Төменде талқылайтын барлық тұзақ осыдан шығады. Пайыз құралдың басқа біреудің жабық тапсырмалар тізіміндегі әрекетін сипаттайды, оны сіздің жобаңызға тікелей көшіруге болмайды.

HumanEval нені өлшейді және неліктен енді оны негізге алып таңдай алмайсыз?

Негізгі түйін

HumanEval — Python тіліндегі шағын 164 ескі тапсырмалар жиыны: модельдерге функцияның сипаттамасы беріледі, олар кодын жазады, ал тапсырманы автоматтандырылған тесттер тексереді. Ол 2021 жылы шыққанда, алғашқы Codex бір әрекетте тапсырмалардың 28,8 пайызын орындады. Қазір мықты модельдер оның барлығына жуығын орындайды, сондықтан бұл жиын оларды бір-бірінен ажырата алмайды. Оның үстіне тапсырмалар ойыншық есептер сияқты: сипаттамадан бір функция жазу үлкен, қолданыстағы жобамен жұмыс істеуден алыс. 2026 жылы HumanEval-ден жоғары ұпай алу ештеңе дерлік білдірмейді.

HumanEval-ді OpenAI жасап, Codex моделінің тұсаукесерімен бірге 2021 жылы жариялады. Ол Python тіліндегі шағын 164 тапсырмадан тұрады: модельдерге функцияның сөзбен сипаттамасы беріледі, олар оның денесін жазады, содан кейін автоматтандырылған тесттер жиыны дұрыс жұмыс істейтінін тексереді.

Ол кезде бұл жақсы ажыратқыш болған. Авторлар өз мақаласында мынадай көрсеткіш келтіреді: алғашқы Codex бір әрекетте тапсырмалардың 28,8 пайызын орындаған, ал кәдімгі GPT-3 бірде-бірін орындамаған.

HumanEval-де моделіміз есептердің 28,8 пайызын шешеді, ал GPT-3 0 пайызын, GPT-J болса 11,4 пайызын шешеді.

— OpenAI, «Evaluating Large Language Models Trained on Code» мақаласы

Содан бері модельдер жетілді, қазір мықтылары HumanEval-дің барлығына жуығын орындайды. Бәрінің ұпайы 100 пайызға жақындаса, кесте ештеңені ажыратпай қалады: құралдар арасындағы айырмашылықтар көрінбей кетеді. Бұл бенчмарктың қанығуы деп аталады, ал HumanEval көптен бері осындай күйде.

Екінші кемшілігі маңыздырақ. Тапсырмалар тым шағын: сипаттамадан бір функция жазу керек. Ал сіздің нақты жұмысыңыз басқаша — тарихы бар үлкен жобамен жұмыс істейсіз; онда басқа біреудің кодын түсініп, ақауды тауып, қатар тұрған кодты бұзбау қажет. «Функцияны нөлден жазу» мен «қолданыстағы жобадағы қатені түзетудің» арасында үлкен алшақтық бар. Сондықтан бүгін HumanEval-ден жоғары ұпай алу құрал таңдауға негіз бола алмайды; ол «негізгі дағдылар меңгерілген» деген белгідей ғана.

SWE-bench нені өлшейді және ол нақты жұмысқа қалай жақынырақ?

Негізгі түйін

SWE-bench танымал GitHub жобаларындағы нақты ақаулардан құрастырылған: 12 Python репозиторийінен алынған 2 294 тапсырма. Құралға мәселенің сипаттамасы беріледі, ол кодты өзгертеді, содан кейін жүйе өзгеріске дейін өтпеген және түзетуден кейін өтуі тиіс тесттерді іске қосады. Бұл HumanEval-ге қарағанда нақты жұмысқа әлдеқайда жақын, сондықтан байыпты құралдарды салыстыруға қолданылады. Оның қиын екені тарихынан көрінеді: алғашқы қарапайым тәсіл тапсырмалардың екі пайызынан азын орындады.

SWE-bench түбегейлі өзгеше, сондықтан қызығырақ. Ол танымал GitHub жобаларындағы нақты ақаулар мен pull request-тер негізінде жасалған. Авторларының айтуынша, онда Python тіліндегі 12 ірі репозиторийден алынған 2 294 тапсырма бар және ол 2023 жылғы қазанда жарияланған.

Бағалау тәсілі адал. Жобада нақты ақау болған нұсқаны және сол кезде өтпеген тесттер жиынын алады. Құралға мәселенің сипаттамасы беріледі де, ол кодты өзгертеді. Содан кейін сол тесттер қайта іске қосылады: жасыл түске өтсе, тапсырма шынымен орындалды деген сөз; мұнда ешкім ауызша уәдеге сенбейді.

Танымал 12 Python репозиторийіндегі pull request-тер мен issues-ті қарап, 2 294 тапсырма жинадық. Әр тапсырма issue-ге сілтеме жасайтын және тестке қатысты кемінде бір файлды өзгертетін pull request-ке негізделген.

— SWE-bench, бенчмарктің ресми сайты

Алғашқы көрсеткіштер мұның ойыншық тапсырмалардан қаншалық қиын екенін көрсетеді. Алғашқы базалық тәсіл SWE-bench-те небәрі 1,96 пайыз жинады, ал алғашқы агент 12,47 пайыз жинады. Басқаша айтқанда, нақты кодтау жұмысына жақындаудың өзі қиын болды; кейін пайыздар өсті, бірақ әуелде нөлге жуық еді.

Сондықтан бүгін AI кодтау агенттерінің рейтингінде үлкен сандарды көрсеңіз, олар көбіне SWE-bench-тен немесе SWE-bench Verified деп аталатын, адам тексерген 500 тапсырмалық ішкі жиынынан алынады. Бұл орынды бенчмарк. Бірақ мұнда да пайызды жаңылыстыратын шарттар бар, енді соны талқылаймын.

Кестедегі ең адал бенчмарктың өзі сіздің жобаңыздағы нәтиже бола алмайды. Нәтиже құралмен қалай жұмыс істейтініңізге байланысты, ал рейтингтің ең жоғарғы жолы өте аз нәрсені анықтайды. Сенімді жұмыс үшін мына үйлесім маңызды: AI клоны, Second Brain және контекст инженериясы. Таза контекст жеке табыс көрсеткішіңізді кестеден модель таңдағаннан әлдеқайда көбірек жақсартады.

Неліктен бір модель әртүрлі пайыз көрсетеді?

Негізгі түйін

Өйткені нәтиже модельге ғана байланысты емес. Кез келген өлшеуге кемінде үш нәрсе қатысады: модельдің өзі, оны қоршаған агент қабықшасы және қосылған ойлау деңгейі. Пайымдау баптауын өзгерту сол модель мен агент қабықшасына әртүрлі жол бере алады. Ортаның атауы, редакциясы, баптаулары және күні бар дереккөз болмай, ол жолдар сандық салыстыруды растамайды. Сондықтан толық үйлесімдерді салыстыру керек, модель бренді ғана көп нәрсені анықтамайды.

Міне, бенчмаркты оқығанда жиі жіберілетін қате осы жерде жасырынып тұр. Адамдар кестені модельдер рейтингі ретінде оқиды: мына модель ана модельден екі пайыз ақылдырақ. Бірақ пайызға үш нәрсе әсер етеді, ал модель — солардың біреуі ғана.

Біріншісі — модельдің өзі. Екіншісі — оны қоршаған агент қабықшасы: модельге файлдарды шолуға, командаларды орындауға, қателерді оқуға және кодты қайта жазуға мүмкіндік беретін бағдарлама. Ақылды қабықшадағы бір модель қарапайым қабықшадағыдан басқа нәтиже береді, өйткені модельдің жобамен қалай жұмыс істейтінін қабықша анықтайды. Үшіншісі — ойлау деңгейі, яғни модельдің әр қадамды қаншалық терең ойластыратыны. Ол неғұрлым ұзақ ойланса, пайыз әдетте соғұрлым жоғары, ал шығын да артады.

Қайталанатын салыстыру толық баптауды сақтауы керек. Мұны өлшенген рейтинг емес, есеп үлгісі ретінде қолданыңыз:

ӨрісA іске қосуыB іске қосуы
Модель және нақты нұсқаСыналған нұсқаны тіркеңізБақыланатын салыстыруға сол нұсқа
Агент ортасы және редакциясыРепозиторий мен коммитті тіркеңізСол орта және коммит
Тапсырмалар мен бағалауІшкі жиын мен бағалау редакциясын тіркеңізСол тапсырмалар мен бағалау
Пайымдау баптауыA баптауын тіркеңізB баптауын тіркеңіз
Нәтиже және дәлелШешілген сан, жалпы сан, журналдар, күнШешілген сан, жалпы сан, журналдар, күн

Бұл ненің өзгергенін және салыстыру шынымен пайымдау баптауын оқшаулайтынын көруге мүмкіндік береді. Бұрын сілтемесіз берілген сандық мысал өлшенген нәтиже ретінде қаралмайды.

Ереже мынадай: жақсы рейтингте қандай модель, қандай қабықша және қандай ойлау деңгейі қолданылғаны әрдайым көрсетіледі. Кестеде тек модель атауы мен пайыз беріліп, қабықша көрсетілмесе, оған сену қиын: нақты ненің өлшенгенін білмейсіз. «Модель мен қабықша» үйлесімін құрайтын нәрселер туралы толығырақ AI кодтау агенттерінің рейтингі туралы мақаладан оқуға болады.

Бұл сондай-ақ ең жоғары ұпай жинаған құралдың неліктен сізге қиындық туғызатынын түсіндіреді. Бенчмарк модельді басқа біреудің жетілдірген қабықшасында, басқа біреудің тапсырмаларында өлшейді. Сіздің қабықшаңыз, жобаңыз және модельге беретін контекстіңіз басқа. Өз жобаңыздағы нәтиже контекстке байланысты; кестедегі жолдың маңызы екінші орында.

Тапсырмалар неліктен «ескіреді» және жаттығу деректерінің ағып кетуі деген не?

Негізгі түйін

Модельдер интернеттен алынған орасан көп мәтін мен код арқылы үйретіледі, ал танымал бенчмарктер көпшілікке қолжетімді. Егер тапсырмалар мен олардың шешімдері үйрету деректеріне енсе, модель оларды жаттап алып, бағалау кезінде есепті шешудің орнына жаттағанын қайталауы мүмкін. Бұл — тапсырмалардың үйрету деректеріне ағып кетуі. Жиын неғұрлым ескі әрі танымал болса, қауіп соғұрлым жоғары: ескі бенчмарк модельдің пайымдау қабілетінен гөрі жадын көрсетуі ықтимал. Жаңа әрі жабық тапсырмалар жиындары ескі әрі жария жиындарға қарағанда сенімдірек.

Міне, көрсеткіштің өзінен байқалмайтын, бірақ оны бәрінен қатты әлсірететін мәселе. Модельдер интернеттен жиналған орасан көп мәтін мен код арқылы үйретіледі. Кодтау бенчмарктерінің бәріне дерлік қол жеткізуге болады: тапсырмалар, тесттер және эталон шешімдер жарияланған.

Механизмі қарапайым. Егер тапсырма мен оның дұрыс шешімі үйрету деректеріне енсе, модель оларды жаттап алған болуы мүмкін. Бағалау кезінде ол тапсырманы шешкеннен гөрі таныс жауапты жадынан шығарып алуы ықтимал. Бұл шешім сияқты көрінеді, бірақ жай ғана жаттау. Мұны үйрету деректерінің ағып кетуі немесе деректердің ластануы деп атайды.

Тапсырмалар жиыны неғұрлым ескі әрі танымал болса, қауіп соғұрлым жоғары. HumanEval 2021 жылдан бері онлайн тұр; ол талай рет қайта жазылып, талданып, сансыз деректер жиынына енгізілді. Қазіргі модель оны «көрмеді» деп күту оғаш болар еді. Сондықтан тапсырмалардың жаңалығы бенчмарк сапасының бөлек көрсеткіші саналады. Жақсы жиын не үнемі жаңартылып тұрады, не кейбір тапсырмаларды алдын ала үйреніп алмас үшін жабық ұстайды.

Рейтингті оқығанда не істеу керек? Тапсырмалардың күнін және жиынның жаңартылып тұратынын тексеріңіз. Егер бенчмарк соңғы айлардағы жаңа ақаулардан құралса, оған көбірек сенуге болады. Ал бес жыл бұрынғы жиын болса, ондағы жоғары пайыз модельдің жаңа тапсырманы шешу қабілетінен гөрі жақсы жадын көбірек көрсетеді. Бұл әсер нақты мысалмен тапсырмалары әдейі жаңа етіп жасалған жаңа FrontierCode бенчмаркі туралы мақалада көрсетілген.

Неліктен бір-екі пайыздық айырмашылық көбіне ештеңе білдірмейді?

Негізгі түйін

Бенчмарктерде ауытқу болады: бір құрал бір тапсырмаларда әр іске қосылған сайын сәл өзгеше нәтиже береді, өйткені модель әрдайым бірдей жауап бермейді. Сондықтан рейтингтегі көршілес жолдардың бір-екі ұпай айырмасы көбіне кездейсоқ ауытқуға сіңіп кетеді және нақты басымдықты білдірмейді. Бағаны да бөлек тексеріңіз: ұқсас пайыздар бірнеше есе қымбатқа түсуі мүмкін. Құнды екі толық баптау, табыс үлестері, төлем жорамалдары және құнның есеп бөлімі көрсетілгенде ғана салыстырыңыз.

Кестедегі алғашқы орынды жаңылыстыратын тағы бір жайт: модель әр жолы бірдей жауап бермейді. Бір сұрауға ол сәл өзгеше пайымдау жолын таңдауы мүмкін. Сондықтан бір құралды бір тапсырмалар жиынтығында бірнеше рет іске қоссаңыз, нәтиже пайызы әр жолы аздап ауытқиды. Бұл құбылыс дисперсия деп аталады.

Практикалық қорытынды қарапайым. Рейтингтегі екі жол бір-екі пайызға ғана ерекшеленсе, ол оңай-ақ кездейсоқ ауытқу болуы мүмкін. «Екі пайыз жоғары» құралды қуалау бекер: келесі іске қосқанда орындарын оңай ауыстыруы мүмкін. Айырмашылықты үлкен тапсырмалар жиынында байқалып, тұрақты сақталғанда ғана маңызды деуге болады; бір-екі ұпай бұл талапқа сай емес.

Ал соңғысы, көбіне пайыздың өзінен де маңыздысы — баға. Ұқсас нәтижелердің құны қатты ерекшеленуі мүмкін. Құн салыстыруына екі модель-орта конфигурациясы және сәтсіз әрекеттерді қоса бағаланған тапсырма жиынының толық шығыны қажет. Бір әрекет құнына барлық сыналған тапсырмаға, бір шешілген тапсырма құнына шешілгендерге бөліп, қайсысын қолданатыныңызды атаңыз. Бұл мақала дереккөзі бар жұп құн өлшемін бермейді. Сондықтан рейтинг жолын әрдайым бағасымен бірге оқыңыз, өйткені пайыз жеке тұрғанда көп нәрсе айтпайды. Бір шешілген тапсырманың құны туралы мақалада құралдардың бағасын әділ салыстыру жолы түсіндіріледі.

Кез келген бенчмарк кестесін бір минутта қалай оқуға болады?

Негізгі түйін

Рейтингке сенбес бұрын, оған жеті сұрақ қойыңыз: Қандай тапсырмалар жиыны? Тапсырмалар жаңа ма, ескі ме? Қай модель? Қай агент қабықшасы? Қай ойлау деңгейі? Бір тапсырма қанша тұрады? Ауытқу қаншалық үлкен? Егер кесте осы сұрақтардың кемінде жартысына жауап бермесе, оған сенуге болмайды: бұл жарнама болуы ықтимал. Бұған қоса, жиындағы тапсырмалар нақты жұмысыңызға ұқсай ма, соны тексеріңіз; басқа біреудің тапсырмаларындағы адал пайыздың өзі жобаңызға ауыспайды.

Енді бәрін қысқа тексеру тізіміне жинақтайын. Кез келген рейтинг кестесін ашып, мына жеті тармақты ретімен қараңыз.

  1. Қандай тапсырмалар жиыны? Қазір HumanEval әлсіз, ал SWE-bench нақты жұмысқа жақынырақ. Жиын мүлде аталмаса, әрі қарай оқудың қажеті жоқ.
  2. Тапсырмалар жаңа ма, ескі ме? Жаңа немесе ішінара жабық жиын модель үйреніп алған болуы мүмкін ескі жария жиыннан сенімдірек.
  3. Қай модель өлшенген? Жалпылама «AI» немесе модель тобының атауы емес, нақты атауы мен нұсқасы керек.
  4. Қай агент қабықшасы қолданылған? Пайыз «модель мен қабықша» үйлесіміне қатысты. Қабықша көрсетілмесе, ненің өлшенгенін білмейсіз.
  5. Қай ойлау деңгейі қолданылған? Бір модель әртүрлі деңгейде әр пайыз бен әр шығын көрсетеді.
  6. Бір тапсырма қанша тұрады? Ұқсас нәтижелердің бағасы бірнеше есе ерекшеленуі мүмкін. Пайызды құнымен бірге қараңыз.
  7. Ауытқу қаншалық үлкен? Жолдар арасындағы бір-екі ұпай айырмасы көбіне жай кездейсоқ ауытқу.

Сегізінші сұрақ бар, ол сізге қатысты: Жиындағы тапсырмалар сіздің жұмысыңызға ұқсай ма? Python тапсырмалары бенчмаркі басқа құралдар жиынымен веб-сайт немесе бот жасап жүрген адамға көп нәрсе айтпайды. Басқа біреудің тапсырмаларындағы адал көрсеткіштің өзі жобаңызда нәтиже болатынына кепіл емес. Мұны тексерудің сенімді бір жолы бар: әдеттегі тапсырмаларыңыздың бірнешеуін құралға беріп, нәтижесін өзіңіз қараңыз. Бағдарламаламасаңыз, кодтың жұмыс істейтінін қалай тексеруге болатыны AI жасаған кодты тексеру туралы мақалада түсіндіріледі.

Соңында нені қарау керек?

Негізгі түйін

Тек ең жоғарғы жолдың өзін емес, оның астындағы шарттарды қараңыз: тапсырмалар жиыны және оның қаншалық жаңа екені, «модель мен қабықша» үйлесімі, ойлау деңгейі, бір тапсырманың құны және ауытқу мөлшері. Бұл шарттарсыз берілген жалаң көрсеткіш ештеңені дәлелдемейді. Басқа біреудің тапсырмаларындағы адал пайыз да жобаңызға ауыспайтынын есте сақтаңыз: соңғы сөзді әрдайым өзіңіздің нақты тапсырмаларыңызбен сынау айтады, ал олардағы нәтижеңіз рейтингтегі орнына қарағанда құралмен қалай жұмыс істейтініңізге көбірек байланысты.

Бүкіл мақаланың негізгі ойы қысқа: рейтингтегі орын құралға мұқият қарауға себеп болады, бірақ әрі қарай өзіңіз зерттеуіңіз керек. Үлкен көрсеткіш құралдың нақты шарттарда тапсырмалардың белгілі бір жабық тізімін жақсы орындағанын ғана айтады. Пайыз бұл шарттардың сіздікіне сәйкес келетін-келмейтінін көрсетпейді.

Сондықтан рейтинг жолының астындағыны оқыңыз: қандай тапсырмалар, олар қаншалық жаңа, қай модель мен қабықша үйлесімі, қай ойлау деңгейі, қанша тұрады және айырмашылық кездейсоқ ауытқуға сіңіп кете ме. Бұл сұрақтарға жауап бермейтін кестенің орны — жарнамалық баннер. 2026 жылы код жазуға қай құралды таңдау керек шолуында тапсырмаларыңызға қай құралды таңдауға болатыны түсіндіріледі.

Ал кез келген бенчмарктен маңыздысы мынау. Рейтингтегі ең жақсы құрал да ретсіз контексте қиналады, ал таза контексте жақсы жұмыс істейді. Жеке табыс көрсеткішіңіз модельге не беретініңізге және тапсырманы қалай тұжырымдайтыныңызға байланысты; кестедегі жолдың маңызы екінші орында. Рейтинг анық әлсіз нұсқаларды алып тастауға көмектеседі, ал нәтижені сіз жасайсыз.

Дереккөздер

Рейтингтегі орын әлсіз нұсқаларды алып тастайды, ал жобаңыздағы нәтиже тәсілге байланысты: AI клоны және Second Brain пен контекст инженериясы.

Әрі қарай жұмыс істеу үшін — Ailoot.

Толығырақ

Жиі қойылатын сұрақтар

Екі бенчмарк жолын салыстырмас бұрын нені тіркеу керек?

Нақты модельді, агент сынақ ортасы мен редакциясын, пайымдау баптауларын, тапсырма ішкі жиынын, бағалау әдісін, күнді және тікелей нәтиже дереккөзін тіркеңіз. Бұл өрістерсіз ұпай айырмасын бір өзгерген баптауға телуге болмайды.

Әр сыналған тапсырма құны мен әр шешілген тапсырма құны бірдей ме?

Жоқ. Бірінші өлшемге жалпы бағалау шығынын барлық сыналған тапсырмаға, екіншісіне шешілген тапсырмаға бөліңіз. Сәтсіз әрекеттер шығынын қосып, бағаларды салыстырмас бұрын бөлімнің нені санайтынын көрсетіңіз.

Барлық мақалалар