Бид SWE-bench Verified-ийг 2024 оны 8-р сард анх нийтэлснээс хойш салбарынхан үүнийг автоном програм хангамжийн инженерчлэлийн даалгаврууд дээрх загваруудын ахицыг хэмжихэд өргөн ашиглаж ирсэн. Гарсны дараа SWE-bench Verified нь чадамжийн ахицын хүчтэй дохио өгч, хил хязгаар загварын нээлтүүдэд тайлагнадаг стандарт хэмжүүр болсон. Эдгээр чадамжийн ахицыг хянах, таамаглах нь мөн OpenAI-ийн Preparedness Framework-ийн чухал хэсэг юм. Бид Verified жишиг үзүүлэлтийг анх бүтээхдээ эх үнэлгээнд байсан, SWE-bench dataset(шинэ цонхонд нээгдэнэ) дэх зарим даалгаврыг биелүүлэх боломжгүй болгодог асуудлуудыг шийдэхийг оролдсон.
Эхний үсрэнгүй ахицын дараа SWE-bench Verified дээрх хамгийн шилдэг гүйцэтгэлийн ахиц саарч, сүүлийн 6 сард 74.9%-аас 80.9% хүртэл сайжирсан(шинэ цонхонд нээгдэнэ). Энэ нь дараах асуултыг гаргаж байна: үлдсэн бүтэлгүйтлүүд нь загварын хязгаарлалтыг тусгаж байна уу, эсвэл өгөгдлийн багцын өөрийн шинж чанарыг уу?
Шинэ шинжилгээгээр бид Verified багцад хоёр том асуудал байгааг олсон бөгөөд эдгээр нь өнөөгийн гүйцэтгэлийн түвшинд хил хязгаар нээлтүүдийн автоном програм хангамжийн инженерчлэлийн чадамжийн ахицыг хэмжихэд энэ жишиг үзүүлэлт тохирохоо больсныг харуулж байна:
- Тестүүд зөв шийдлийг буцаадаг: Бид загварууд ихэвчлэн шийдэж чадаагүй өгөгдлийн багцын 27.6%-ийн дэд хэсгийг аудит хийж, аудитлагдсан асуудлуудын дор хаяж 59.4%-д нь функциональ хувьд зөв илгээмжийг буцаадаг алдаатай тестийн тохиолдлууд байгааг олсон. Энэ нь SWE-bench Verified-ийг анх бүтээхдээ үүнийг сайжруулахын тулд хамгийн их хичээсэн ч гэсэн хэвээр байв.
- Шийдлүүд дээр сургалт хийсэн: Том хил хязгаар загварууд сургалтаасаа мэдээлэл сурч чаддаг тул тэднийг үнэлж буй асуудал, шийдлүүд дээр нь хэзээ ч сургаагүй байх нь чухал. Энэ нь шалгалтын өмнө сурагчдад удахгүй болох шалгалтын бодлого, шийдлийг өгч байгаатай адил — тэд хариуг цээжлэхгүй байж болох ч өмнө нь хариуг харсан сурагчид хараагүйгээсээ илүү сайн хийх нь гарцаагүй. SWE-bench-ийн асуудлууд нь олон загвар нийлүүлэгч сургалтын зорилгоор ашигладаг нээлттэй эхийн репозитороос авсан. Бидний шинжилгээнд туршсан бүх хил хязгаар загварууд ground-truth лавлагаа болгон ашигласан, gold patch гэж нэрлэдэг хүний бичсэн анхны алдааны засварыг, эсвэл зарим даалгаврын хувьд асуудлын тайлбарын үгчлэн нарийн мэдээллийг сэргээж чадсан нь тэд бүгд сургалтын явцад дор хаяж зарим асуудал, шийдлийг харсан гэдгийг харуулж байна.
Мөн сургалтын явцад асуудлуудыг харсан загварууд дутуу тодорхойлогдсон тестүүдийг давахад хэрэгтэй нэмэлт мэдээлэлтэй байдаг тул амжилттай байх магадлал өндөр гэдгийг нотлох баримт бид олсон.
Энэ нь SWE-bench Verified дээрх сайжруулалтууд загваруудын бодит ертөнцийн програм хангамж хөгжүүлэх чадварын утга учиртай сайжруулалтыг дахин тусгахаа больсон гэсэн үг. Харин тэдгээр нь сургалтын үед загвар жишиг үзүүлэлтэд хэр их өртсөнийг улам бүр тусгаж байна. Тиймээс бид SWE-bench Verified оноог тайлагнахаа больсон бөгөөд бусад загвар хөгжүүлэгчдэд ч мөн адил хийхийг зөвлөж байна.
Бид кодчиллын чадамжийг илүү сайн хянахын тулд бохирдоогүй шинэ үнэлгээнүүдийг бүтээж байгаа бөгөөд үүнийг өргөн судалгааны нийгэмлэг анхаарах ёстой чухал чиглэл гэж үзэж байна. Тэдгээрийг бэлэн болтол OpenAI нь SWE-bench Pro-ийн үр дүнг тайлагнахыг зөвлөж байна.
Анхны SWE-bench(шинэ цонхонд нээгдэнэ) үнэлгээ 2023 онд гарсан. Асуудал бүр нь 12 нээлттэй эхийн Python репозиторын аль нэг дэх шийдэгдсэн GitHub issue-оос авсан бөгөөд түүнд харгалзах pull request (PR)-тай хослуулсан. Загвараас үүсгэсэн кодын өөрчлөлт зөв эсэхийг тодорхойлохын тулд асуудал бүр хоёр багц тесттэй:
- Өөрчлөгдөөгүй кодын суурь дээр бүтэлгүйтдэг боловч асуудлыг зөв засвал амжилттай болдог тестүүд
- Хамааралгүй функц хэвээр үлдсэнийг баталгаажуулахын тулд засварын өмнө болон дараа хоёуланд нь амжилттай болдог регрессийн тестүүд.
Загвар тестүүдийг хардаггүй. Түүнд зөвхөн issue-ийн анхны текст болон засварын өмнөх репозиторын төлөв өгөгдөх ба үүн дээр үндэслэн кодын өөрчлөлт гаргах ёстой. Кодын өөрчлөлтийг хэрэгжүүлсний дараа бүх тест амжилттай болсон тохиолдолд л тухайн асуудлыг давсанд тооцно.
Бид энэ үнэлгээнд загваруудын чадамжийг дутуу тайлагнахад хүргэж болох олон асуудал байгааг олсон.
- Зарим unit test хэт нарийн эсвэл даалгавартай нийцээгүй байсан тул зөв засварууд ч буцаагдаж болох байв.
- Олон даалгаврын тайлбар дутуу тодорхойлогдсон байсан нь олон зөв тайлбарлалтад хүргэж болох ч тестүүд зөвхөн нэг тодорхой хувилбарыг хамарч байсан.
- Орчны тохиргооноос (жишээлбэл Linux vs Windows, эсвэл python хувилбар) хамааран зарим тестүүд худал бүтэлгүйтэж болох байв
Бид эдгээр асуудлыг шийдэхийн тулд 2024 онд SWE-bench Verified-ийг бүтээсэн. Бид мэргэжлийн програм хангамжийн инженерүүдтэй хамтран SWE-bench-ийн 1,699 асуудлыг хянаж, дээрх асуудлуудтай бодлогуудыг шүүж хассан. Асуудал бүрийг гурван шинжээч бие даан хянасан. Энэ хяналтын үйл явцын үр дүнд 500 асуудлаас бүрдсэн сонгомол багц болох SWE-bench Verified бий болсон.
SWE-bench Verified нь анхны хувилбараасаа ихээхэн сайжирсан ч үлдэгдэл асуудлууд хэвээр байна. OpenAI o3 64 бие даасан ажиллуулалтын турш тогтмол шийдэж чадаагүй 138 SWE-bench Verified асуудалд бид аудит хийсэн. Тохиолдол бүрийг дор хаяж зургаан туршлагатай програм хангамжийн инженер бие даан хянасан. Хэрэв шинжээч асуудал тэмдэглэвэл нэмэлт баг дахин баталгаажуулсан.
Бид 138 асуудлын 59.4%-д нь тестийн загварчлал болон/эсвэл асуудлын тайлбарт ноцтой асуудал байгааг олсон бөгөөд энэ нь хамгийн чадварлаг загвар эсвэл хүнд ч тэдгээрийг шийдэхийг туйлын хэцүү эсвэл боломжгүй болгож байв.
- Аудитлагдсан даалгаврын 35.5%-д нь тодорхой хэрэгжүүлэлтийн нарийн ширийнийг шаардаж, функциональ хувьд зөв олон илгээмжийг хүчингүй болгодог хатуу тестийн тохиолдлууд байсан бөгөөд үүнийг бид нарийн тестийн тохиолдол гэж нэрлэдэг.
- Аудитлагдсан даалгаврын 18.8%-д нь асуудлын тайлбарт заагаагүй нэмэлт функцийг шалгадаг тестүүд байсан бөгөөд үүнийг бид өргөн тестийн тохиолдол гэж нэрлэдэг.
- Үлдсэн 5.1% даалгаварт энэ ангилалд сайн багтаагүй бусад төрлийн асуудлууд байсан.
Эхний алдааны горимын нэг тод жишээ нь pylint-dev__pylint-4551(шинэ цонхонд нээгдэнэ) бөгөөд энд PR нь ерөнхий шийдлийн нэг хэсэг болгон `get_annotation` нэртэй шинэ функц нэвтрүүлдэг. Энэ функцийн нэр асуудлын тайлбарт дурдаагүй боловч тестүүд үүнийг шууд import хийдэг. Зарим загварууд ийм функц үүсгэхийг зөнгөөрөө тааж болох ч асуудлыг зөв шийдэхийн тулд заавал энэ нэртэй функц хэрэгжүүлэх шаардлагагүй. Олон хүчинтэй шийдэл import алдаанаас болж тестийг унадаг.
Асуудлын тайлбар
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 дотор кодын санд орсон өөрчлөлтийг тайлбарласан release notes-ийн талаар мэдээлэлтэйгээ харуулж, `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 өгөгдөл, assistant prefill, мөн өөр өөр илрүүлэх стратегийг өөрчлөх боломж олгосон. Ээлж бүрийн дараа шүүгч загвар даалгаварт өвөрмөц шинэ мэдээлэл хэр их гарсныг тэмдэглэж, хариулт бүрийг “байхгүй”-гээс “хүчтэй” хүртэл бохирдлын түвшнээр шошголсон. GPT‑5‑д өмнөх ээлжүүдэд тулгуурлан стратегиа өөрчилж, даалгаварт өвөрмөц нарийн мэдээллийг давтан сэргээх боломж олгосон. Хүчтэй бохирдлын жишээ бүрийн хувьд GPT‑5 зорилтот загварт хэт их мэдээлэл алдаагүй эсэхийг өөр шүүгчээр баталгаажуулсан. Эцэст нь энэ нийтлэл дэх бичвэрүүдийг бүрдүүлж буй “хүчтэй” жишээнүүдийг бид гараар хянасан.
Доор өөр өөр загвар нийлүүлэгчдийн хүчтэй бохирдлын жишээнүүдийг үзүүлэв.
Даалгаврын тайлбараас авсан богино хэсгийг өгөхөд GPT‑5.2 яг gold patch-ийг гаргаж байна. Тэр дундаа яг class болон method-ийн нэрийг, мөн шинээр нэмэгдсэн `if username is None or password is None` гэсэн эрт буцах нөхцөлийг мэдэж байна.
Даалгаврын ID: django__django-11451(шинэ цонхонд нээгдэнэ)
Бохирдлыг илрүүлэх
Gold patch
Opus нь PR-ээр нэвтрүүлсэн яг 4 мөрийн функциональ өөрчлөлт, хүрсэн тодорхой файлын нэр болон method-ийг санахаас гадна diff-ийн нэг хэсэг байсан inline comment-ийг хүртэл үгчлэн иш татаж чаддаг.
Даалгаврын ID: astropy__astropy-13236(шинэ цонхонд нээгдэнэ)
Бохирдлыг илрүүлэх
Gold patch
Gemini 3 Flash нь даалгаврын талаар ID-гаас өөр мэдээлэл өгөөгүй байхад даалгаврын тайлбар болон gold patch-ээс үгчлэн дэлгэрэнгүй мэдээлэл гаргаж чаддаг. Үүнд хэрэглэгчийн нэр баталгаажуулах шинэ regex томьёо болон өөрчлөлтийн яг мөрийн дугаарууд орно.
Даалгаврын ID: django__django-11099(шинэ цонхонд нээгдэнэ)
Бохирдлыг илрүүлэх
Gold patch
SWE-bench Verified-ийн энэ аудитээс үнэлгээний загварт хамаарах хоёр өргөн сургамж харагдаж байна. Нэгдүгээрт, нийтэд нээлттэй материалаас бүрдүүлсэн жишиг үзүүлэлтүүд бохирдох эрсдэлтэй байдаг бөгөөд сургалтын өгөгдөлд өртөлт нь оноог чимээгүйхэн хөөрөгдөж болзошгүй. Хэрэв нийтэд мөлхөж цуглуулсан өгөгдлийг жишиг үзүүлэлт бүтээхэд ашиглаж байгаа бол загвар хөгжүүлэгчид бохирдлын нэмэлт шалгалт хийх ёстой. Жишиг үзүүлэлтүүд, тэр байтугай тэдгээрийн шийдлүүд ч нийтэд тавигдсанаар сургалтын өгөгдөлд орж болзошгүй. Өгөгдлийн багцыг хэрхэн нийтлэх (ж.нь. нууц үгээр хамгаалах) болон сургалтын өгөгдлийг хэрхэн шүүхэд (ж.нь. canary string-ийг хатуу мөрдөх) аль алинд нь нэмэлт анхаарал хандуулах хэрэгтэй.
Хоёрдугаарт, автомат оноолт зөв хийхэд төвөгтэй; төгс тестийн тохиолдлууд зөв функцийг бүрэн баталгаажуулахын зэрэгцээ ач холбогдолгүй тодорхой хэрэгжүүлэлтийн нарийн ширийнээс ангид, мөн товчилсон шийдлүүдэд тэсвэртэй байх ёстой. Эдгээр асуудал угаасаа нарийн төвөгтэй бөгөөд шийдэхэд хэцүү. Эдгээрийг илрүүлэхэд хүний өргөн хүрээтэй олон шошгололтын кампанит ажил шаардсан.
Бид эдгээр олдворыг сүүлийн үеийн үнэлгээний ажилдаа тусгасан. Сүүлийн саруудад бид SWE-Bench Pro-ийн нийтийн split-ийн үр дүнг тайлагнахаар сонгосон. Бусад загвар хөгжүүлэгчдэд ч мөн адил хийхийг зөвлөж байна. SWE-bench Pro төгс биш ч туршлагаар бохирдлын асуудлаас бага өртдөг бололтой. Манай бохирдлын pipeline зарим бохирдлын тохиолдол олсон ч эдгээр нь SWE-bench Verified-тай харьцуулахад мэдэгдэхүйц ховор, бага ноцтой байсан бөгөөд ямар ч загвар бүрэн үгчлэн gold patch гаргаж чадаагүй.
Бид анхнаасаа зохиогдсон, хувийн жишиг үзүүлэлтүүдэд хөрөнгө оруулсаар байх бөгөөд үүнийг мөн хийхэд салбар болон академийн тусламжийг хүсэж байна. GDPVal-д даалгавруудыг тухайн салбарын мэргэжилтнүүд хувиараа зохиодог тул өртөлтийн эрсдэл буурч, шийдлүүдийг бэлтгэгдсэн хянагчид цогцоор нь үнэлдэг. Энэ арга нь их нөөц шаарддаг ч жинхэнэ чадамжийн сайжруулалтыг хэмжихэд улам бүр зайлшгүй болж байна.


