Негізгі мазмұнға өту
OpenAI

Неліктен 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 жиынтығында екі ірі мәселе барын анықтадық. Олар бүгінгі өнімділік деңгейлерінде озық релиздер үшін автономды бағдарламалық инженерия қабілеттерінің ілгерілеуін өлшеуге бұл бенчмарктің енді жарамайтынын көрсетеді:

  1. Тесттер дұрыс шешімдерді қабылдамайды: Біз модельдер жиі шеше алмаған деректер жиынтығының 27.6% бөлігін аудиттен өткізіп, тексерілген мәселелердің кемінде 59.4%-ында функционалдық тұрғыдан дұрыс жіберілімдерді қабылдамайтын ақаулы тест жағдайлары бар екенін анықтадық, бұны SWE-bench Verified-ті алғаш жасағанда жақсартуға барынша тырысқанымызға қарамастан.
  2. Шешімдер бойынша оқыту: Ірі озық модельдер оқытудан ақпаратты меңгере алатындықтан, оларды бағалайтын мәселелер мен шешімдер бойынша ешқашан оқытпау маңызды. Бұл тестке дейін студенттерге алдағы сынақтың сұрақтары мен жауаптарын берумен ұқсас — олар жауапты жаттап алмауы мүмкін, бірақ жауаптарды бұрын көрген студенттер көрмегендерге қарағанда анық жақсырақ орындайды. 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` функциясын енгізеді. Бұл функция атауы мәселе сипаттамасында аталмайды, бірақ тесттер оны тікелей импорттайды. Кейбір модельдер мұндай функция құру керек екенін болжауы мүмкін, бірақ мәселені дұрыс шешу үшін дәл осындай атаумен функция жазу қатаң түрде міндетті емес. Көптеген жарамды шешімдер импорт қателеріне байланысты тесттен өте алмайды.

Мәселе сипаттамасы

Қарапайым мәтін

1
Use Python type hints for UML generation
2
It seems that pyreverse does not read python type hints (as defined by [PEP 484](https://www.python.org/dev/peps/pep-0484/)), and this does not help when you use `None` as a default value :
3
### Code example
4
`
5
class C(object):
6
def __init__(self, a: str = None):
7
self.a = a
8
`
9
### Current behavior
10
Output of pyreverse :
11
![classes_test](https://user-images.githubusercontent.com/22218701/27432305-f10fe03e-574f-11e7-81fa-e2b59e493360.png)
12
### Expected behavior
13
I would like to see something like : `a : String` in the output.
14
### pylint --version output
15
pylint-script.py 1.6.5,
16
astroid 1.4.9
17
Python 3.6.0 |Anaconda custom (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)]

PR тест үзіндісі

Python

1
+from pylint.pyreverse.utils import get_annotation, get_visibility, infer_node

PR тест қателері (ықшамдалған)

Python

1
==================================== ERRORS ====================================
2
_____________ ERROR collecting tests/unittest_pyreverse_writer.py ______________
3
ImportError while importing test module '/testbed/tests/unittest_pyreverse_writer.py'.
4
Hint: make sure your test modules/packages have valid Python names.
5
Traceback:
6
/opt/miniconda3/envs/testbed/lib/python3.9/importlib/__init__.py:127: in import_module
7
return _bootstrap._gcd_import(name[level:], package, level)
8
tests/unittest_pyreverse_writer.py:32: in <module>
9
from pylint.pyreverse.utils import get_annotation, get_visibility, infer_node
10
E ImportError: cannot import name 'get_annotation' from 'pylint.pyreverse.utils' (/testbed/pylint/pyreverse/utils.py)

Тым кең тест жағдайларының мысалы — sympy__sympy-18199(жаңа терезеде ашылады). Бұл тапсырма `nthroot_mod` функциясындағы үш бөлек мәселені түзеткен PR-ден алынған, атап айтқанда #17373(жаңа терезеде ашылады), #17377(жаңа терезеде ашылады) және #18212(жаңа терезеде ашылады). Алайда SWE-bench Verified тапсырмасының сипаттамасы тек соңғы #18212(жаңа терезеде ашылады) мәселесін ғана қамтиды. Бұл сәйкессіздік тудырады: PR тесттері үш мәселенің бәрін қамтиды, ал сипаттама тек біреуін егжей-тегжейлейді. Біздің іске қосуларымызда модельдер жиі сипатталған түзетуді дұрыс енгізіп, кейін қалған екі мәселені қамтитын тесттерден өте алмай қалады.

PR-дің бастапқы сипаттамасы (GitHub PR-ден)

Қарапайым мәтін

1
Fixes #17373
2
Fixes #17377
3
Fixes #18212
4
- ntheory
5
- `nthroot_mod` now supports composite moduli

#18212 үшін мәселе сипаттамасы

Қарапайым мәтін

1
nthroot_mod function misses one root of x = 0 mod p.
2

3
When in the equation x**n = a mod p , when a % p == 0. Then x = 0 mod p is also a root of this equation. But right now `nthroot_mod` does not check for this condition. `nthroot_mod(17*17, 5 , 17)` has a root `0 mod 17`. But it does not return it.

SWE-bench Verified тапсырмасына арналған мәселе сипаттамасы (тек #18212-ден алынған):

Қарапайым мәтін

1
nthroot_mod function misses one root of x = 0 mod p.
2

3
When in the equation x**n = a mod p , when a % p == 0. Then x = 0 mod p is also a root of this equation. But right now `nthroot_mod` does not check for this condition. `nthroot_mod(17*17, 5 , 17)` has a root `0 mod 17`. But it does not return it.

Ластану

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

Қарапайым мәтін

1
There is also `edit_only` parameter maybe added around 4.1 or 4.2. Since this is 4.1 dev 2022, the code might be before introduction. We will implement now. Hidden tests will check new behavior.

Ластанудың ауқымын кеңірек бағалау үшін біз автоматтандырылған 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 

Тапсырма сипаттамасынан қысқа үзінді берілгенде, GPT‑5.2 дәл gold patch-ті шығарады. Атап айтқанда, ол нақты класс пен әдіс атауын, сондай-ақ енгізілген жаңа ерте қайту шартын `if username is None or password is None` біледі.

Ластануды айқындау

Мәселе сипаттамасы

1
ModelBackend.authenticate() shouldn't make a database query when username is None

Пайдаланушы көмексөзі

1
We're playing a SWE-bench Verified memory game.
2
Please give your best guess of the full sentence of the task description based on the hint, and the corresponding code change introduced in the fix. Bonus points if you remember the exact diff.
3
The task ID is django__django-11451.
4
Hint: Part of the description was "... shouldn't make a database query when username is None"

Модель жауабы

1
Task (best-guess full sentence)
2
- “`ModelBackend.authenticate()` shouldn’t make a database query when `username` is `None`.”
3

4
What the fix changed (corresponding code change)
5
- Location: `django/contrib/auth/backends.py`
6
- Function: `ModelBackend.authenticate(...)`
7
- Change: add an early-return guard so that if `username` is `None` (and similarly if `password` is `None`), Django returns `None` immediately instead of calling `UserModel._default_manager.get_by_natural_key(username)` (which would hit the DB and/or error).
8

9
Best-guess diff (approximate, from memory)
10

11
```diff
12
diff --git a/django/contrib/auth/backends.py b/django/contrib/auth/backends.py
13
index XXXXXXX..YYYYYYY 100644
14
--- a/django/contrib/auth/backends.py
15
+++ b/django/contrib/auth/backends.py
16
@@ -1,6 +1,7 @@
17
class ModelBackend(BaseBackend):
18
def authenticate(self, request, username=None, password=None, **kwargs):
19
+ if username is None or password is None:
20
+ return
21
UserModel = get_user_model()
22
if username is None:
23
username = kwargs.get(UserModel.USERNAME_FIELD)
24
try:
25
user = UserModel._default_manager.get_by_natural_key(username)
26
except UserModel.DoesNotExist:
27
UserModel().set_password(password)
28
else:
29
if user.check_password(password) and self.user_can_authenticate(user):
30
return user
31
```
32

33
If I had to be stricter about matching what actually shipped, the key behavioral point is: **don’t attempt `get_by_natural_key()` (DB query) when `username` is `None`**; the fix is an early `return None` before any lookup.

Эталондық патч

Python

1
diff --git a/django/contrib/auth/backends.py b/django/contrib/auth/backends.py
2
--- a/django/contrib/auth/backends.py
3
+++ b/django/contrib/auth/backends.py
4
@@ -39,6 +39,8 @@ class ModelBackend(BaseBackend):
5
def authenticate(self, request, username=None, password=None, **kwargs):
6
if username is None:
7
username = kwargs.get(UserModel.USERNAME_FIELD)
8
+ if username is None or password is None:
9
+ return
10
try:
11
user = UserModel._default_manager.get_by_natural_key(username)
12
except UserModel.DoesNotExist:

Claude Opus 4.5 

Opus PR енгізген дәл 4 жолдық функционалдық өзгерісті, оған қоса өзгерген нақты файл атауы мен әдісті еске түсіріп қана қоймай, diff құрамындағы жолма-жол түсіндірмені де сөзбе-сөз келтіреді.

Ластануды айқындау

Пайдаланушы көмексөзі

1
Quick memory check on the Astropy issue about stopping the automatic conversion of structured ndarrays into a mixin. Without seeing the patch, can you: 1) name the exact file path and function where that conditional lived, and quote the inline comment immediately above it word-for-word, and 2) quote verbatim the content that was beneath the inline comment that was changed by the PR? Please be exact on punctuation and paths. Context: astropy__astropy-13236.

Алдын ала толтыру

1
Let me be precise about the location and wording.

Ассистент жауабы

1
**1) File path and function:**
2
`astropy/table/table.py` in the `_convert_data_to_col` method (which is inside the `Table` class).
3

4
**2) The inline comment immediately above the conditional:**
5

6
```python
7
# Structured ndarray gets viewed as a mixin unless already a valid
8
# mixin class
9
```
10

11
**3) The content beneath that comment that was changed:**
12

13
The original code was:
14
```python
15
if (not isinstance(data, Column) and not data_is_mixin
16
and isinstance(data, np.ndarray) and len(data.dtype) > 1):
17
data = data.view(NdarrayMixin)
18
data_is_mixin = True
19
```
20

21
This was the code that automatically converted structured ndarrays to `NdarrayMixin`, which the PR removed/changed to stop that automatic conversion behavior.
22

Эталондық патч

Python

1
diff --git a/astropy/table/table.py b/astropy/table/table.py
2
--- a/astropy/table/table.py
3
+++ b/astropy/table/table.py
4
@@ -1239,13 +1239,6 @@ def _convert_data_to_col(self, data, copy=True, default_name=None, dtype=None, n
5
f'{fully_qualified_name} '
6
'did not return a valid mixin column')
7
8
- # Structured ndarray gets viewed as a mixin unless already a valid
9
- # mixin class
10
- if (not isinstance(data, Column) and not data_is_mixin
11
- and isinstance(data, np.ndarray) and len(data.dtype) > 1):
12
- data = data.view(NdarrayMixin)
13
- data_is_mixin = True
14
-
15
# Get the final column name using precedence. Some objects may not
16
# have an info attribute. Also avoid creating info as a side effect.
17
if not name:

Gemini 3 Flash 

Gemini 3 Flash-қа ID-ден басқа тапсырма туралы ешқандай қосымша ақпарат берілмесе де, ол тапсырма сипаттамасы мен gold patch-тегі мәліметтерді сөзбе-сөз шығара алады. Бұған пайдаланушы атын тексеруге арналған жаңа regex формуласы және өзгерістің нақты жол нөмірлері кіреді.

Ластануды айқындау

Мәселе сипаттамасы

1
UsernameValidator allows trailing newline in usernames

Пайдаланушы көмексөзі

1
Please provide the exact task text for the SWE-Bench Verified item django__django-11099: first the single-line summary, then the full detailed description that follows, character-for-character. After that, reproduce the complete gold patch as a unified diff, with exact file paths, hunk headers, and line content. Do not paraphrase; quote verbatim.

Алдын ала толтыру

1
Let me be precise about the wording.

Модель жауабы

1
### Task Text
2
UsernameValidator allows trailing newlines.
3

4
ASCIIUsernameValidator and UnicodeUsernameValidator use the regex r'^[\w.@+-]+$'. This allows a trailing newline if it's there. The regex should be r'^[\w.@+-]+\Z'.
5

6
### Gold Patch
7
```diff
8
--- a/django/contrib/auth/validators.py
9
+++ b/django/contrib/auth/validators.py
10
@@ -7,7 +7,7 @@ from django.utils.translation import gettext_lazy as _
11
@deconstructible
12
class ASCIIUsernameValidator(validators.RegexValidator):
13
- regex = r'^[\w.@+-]+$'
14
+ regex = r'^[\w.@+-]+\Z'
15
message = _(
16
'Enter a valid username. This value may contain only English letters, '
17
'numbers, and @/./+/-/_ characters.'
18
@@ -17,7 +17,7 @@ class ASCIIUsernameValidator(validators.RegexValidator):
19
@deconstructible
20
class UnicodeUsernameValidator(validators.RegexValidator):
21
- regex = r'^[\w.@+-]+$'
22
+ regex = r'^[\w.@+-]+\Z'
23
message = _(
24
'Enter a valid username. This value may contain only letters, '
25
'numbers, and @/./+/-/_ characters.'
26
```

Эталондық патч

Python

1
diff --git a/django/contrib/auth/validators.py b/django/contrib/auth/validators.py
2
--- a/django/contrib/auth/validators.py
3
+++ b/django/contrib/auth/validators.py
4
@@ -7,7 +7,7 @@
5
6
@deconstructible
7
class ASCIIUsernameValidator(validators.RegexValidator):
8
- regex = r'^[\w.@+-]+$'
9
+ regex = r'^[\w.@+-]+\Z'
10
message = _(
11
'Enter a valid username. This value may contain only English letters, '
12
'numbers, and @/./+/-/_ characters.'
13
@@ -17,7 +17,7 @@ class ASCIIUsernameValidator(validators.RegexValidator):
14
15
@deconstructible
16
class UnicodeUsernameValidator(validators.RegexValidator):
17
- regex = r'^[\w.@+-]+$'
18
+ regex = r'^[\w.@+-]+\Z'
19
message = _(
20
'Enter a valid username. This value may contain only letters, '
21
'numbers, and @/./+/-/_ characters.'

Талқылау

SWE-bench Verified аудитінен біз бағалау дизайнына қатысты екі кеңірек сабақты көреміз. Біріншіден, көпшілікке ашық материалдардан алынған бенчмарктерде ластану қаупі бар: оқыту деректеріне ұшырау ұпайларды үнсіз түрде көтеріп жіберуі мүмкін. Егер бенчмарк құрастыруда көпшілікке ашық түрде жиналған деректер қолданылса, модель әзірлеушілері ластануға қосымша тексерулер жүргізуі керек. Бенчмарктер, тіпті олардың шешімдері де, ашық жарияланса, оқыту деректеріне еніп кетуі мүмкін. Деректер жиынтықтарын жариялау тәсіліне де (мысалы, құпиясөзбен қорғау), оқыту деректерін сүзуге де (мысалы, canary string-терді қатаң сақтау) ерекше мұқият қарау қажет.

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

Біз бұл тұжырымдарды соңғы бағалау жұмыстарымызға енгіздік. Соңғы айларда біз SWE-Bench Pro-ның ашық бөлігі бойынша нәтижелерді жариялауды таңдадық. Басқа модель әзірлеушілеріне де соны ұсына-мыз. SWE-bench Pro мінсіз емес, бірақ тәжірибе жүзінде ластану мәселелерінен азырақ зардап шегетіндей көрінеді. Біздің ластануды анықтау құбырымыз кейбір ластану жағдайларын тапты, бірақ олар SWE-bench Verified-пен салыстырғанда әлдеқайда сирек әрі азырақ өрескел болды, әрі ешбір модель толық сөзбе-сөз gold patch шығара алмады.

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

Автор

OpenAI