Манай загваруудын чадавхыг үнэн зөв хэмжих нь OpenAI-ийн Preparedness Framework(шинэ цонхонд нээгдэнэ)-ийн хүрээний шийдвэрүүдийг оролцуулан нэвтрүүлэлт ба аюулгүй байдлын үндэслэлтэй шийдвэр гаргахад чухал. Загварын хувилбар бүрийг гаргахдаа бид загварын ахицыг хянахын тулд олон төрлийн гадаад ба дотоод бенчмаркийн үр дүнг мэдээлдэг. Үнэлгээнд үр дүнд нөлөөлөх алдаа байвал чадавхын талаар буруу ойлголт төрүүлж, аюулгүй байдлын үндэслэлийг гажуудуулан судалгааны тэргүүлэх чиглэлд нөлөөлж болно.
Бид саяхан хамгийн өргөн хэрэглэгддэг кодчиллын бенчмаркуудын нэг болох SWE-bench Verified-д суурь дизайны болон бохирдлын асуудал байсныг судалж, уг eval нь програм хангамж хөгжүүлэлтийн чадавхын талаар утгатай дохио өгөхөө больсныг тогтоосон. Тухайн үед бид өргөн хүрээний нийгэмлэгт SWE-Bench Pro руу шилжихийг зөвлөсөн.
SWE-Bench Pro(шинэ цонхонд нээгдэнэ) нь загваруудыг урт хугацааны, илүү бодитой кодчиллын даалгавраар тестэлж агент шинжтэй кодчилолын чадавхыг илүү сайн хянах замаар SWE-bench Verified-ийг сайжруулах зорилготой бүтээгдсэн. SWE-bench Verified-ийн адил даалгавруудыг олон нийтийн болон хувийн репозиторуудын багц дахь функцийн өөрчлөлтийн түүхээс программчилсан аргаар авдаг. Загварууд одоо байгаа ажиллагааг эвдэхгүйгээр тухайн функцийн шинэ тестүүдийг давах шийдэл хэрэгжүүлэх ёстой. 731 даалгавартай олон нийтийн хуваалт дээр хил хязгаар загваруудын давах хувь найман сарын дотор 23.3%-аас 80.3% болж өссөн.
Үүнээс хойш бид SWE-Bench Pro дээр ижил төстэй аудит хийж, өгөгдлийн цэгийн шинжилгээний пайплайнаар өгөгдлийн багцыг хянан үзсэн. Пайплайн нь үнэлгээний магадлалтай алдааг тэмдэглэхийн тулд загварын даалгавар дээрх оролдлогууд, даалгаврын мета өгөгдөл, бүтэлгүйтлийн мөрийг хянан үзсэн. Дараа нь тэмдэглэгдсэн даалгавар бүрийг мөрдөн шалгах агентын олон давталтаар үнэлж, туршлагатай таван програм хангамжийн инженер бие даан хянасан бөгөөд санал зөрөлдөөнийг нэмэлт судалгаанд шилжүүлсэн.
Өгөгдлийн багцын нэлээд хэсэгт эвдэрсэн даалгаврын шинж тэмдэг илэрлээ. Манай өгөгдлийн цэгийн шинжилгээний пайплайн 200 (27.4%) эвдэрсэн даалгаврыг тэмдэглэсэн бол хүний аннотацийн кампанит ажил 249 (34.1%)-ийг илрүүлсэн.
Асуудлууд голчлон дөрвөн ангилалд хуваагдсан:
- Хэт хатуу тестүүд1 нь өгөгдөлд заагаагүй тодорхой хэрэгжүүлэлтийн нарийн зүйлсийг албадан шаардаж, функцийн хувьд зөв олон илгээмжийг хүчингүй болгодог.
- Дутуу тодорхойлсон өгөгдлүүд2 нь далд тестүүд шаарддаг бөгөөд үндэслэлтэйгээр таамаглах боломжгүй шаардлагуудыг орхигдуулдаг.
- Хамрах хүрээ багатай тестүүд хүссэн функцийг дутуу шалгадаг тул бүрэн бус засвар ч тэнцэж болно.
- Төөрөгдүүлсэн өгөгдөл загваруудыг буруу зан төлөв рүү чиглүүлэх эсвэл тестийн шаардлагатай зөрчилдүүлдэг.
Бидний дүгнэлтүүд хүнд боловч шударга бенчмарк боловсруулахын төвөгтэйг, мөн өргөтгөх боломжтой өгөгдлийн чанарын шалгалтад агентууд улам ашигтай болж байгааг харуулж байна. Эдгээр үр дүнгээс үзэхэд SWE-bench Pro даалгаврын ~30% нь эвдэрсэн гэж бид тооцоолж, загвар хөгжүүлэгчдэд үр дүнг анхааралтай шалгахыг зөвлөж байна.
Бидний зорилго бол даалгаврын бүтэлгүйтэл нь загварын жинхэнэ хязгаарлалтыг, харин даалгаврын амжилт нь өгөгдлийн шаардлагад нийцсэн бүрэн, хүчинтэй шийдлийг илэрхийлж байгааг батлах явдал. Үнэлгээнд ашигласан өгөгдлийн чанарыг шалгахын тулд өгөгдлийн цэг бүр загварын чадавхыг үнэн зөв тусгаж байгаа эсэхийг үнэлэх чанарын баталгаажуулалтын пайплайн байгуулсан.
Өгөгдлийн чанарын эхний пайплайн асуудлыг шалгуулахаар тэмдэглэнэ. Бид тэмдэглэгдсэн даалгавруудыг агентын тусламжтай гүнзгий аудит, туршлагатай инженерүүдтэй хийсэн хүний аннотацийн кампанит ажлаар баталгаажуулдаг.
Эхний автомат шүүлтүүр нь загварт өгсөн заавар, даалгаврыг шийдэх загварын оролдлого, эдгээр оролдлогыг дүгнэхэд ашигласан тестүүдийг хянаж, эвдэрсэн эсвэл асуудалтай байх магадлалтай жишээг тэмдэглэдэг. Энэ шүүлтүүр эвдэрсэн байж болзошгүй 286 даалгаврыг тэмдэглэсэн. Дараа нь бид тэр дэд багцыг хоёр аргаар илүү гүнзгий хянасан: мөрдөн шалгах агентуудтай өргөн шалгалт хийж, хүний эцсийн дүгнэлт гаргадаг хүний хяналттай агентын тойм; мөн туршлагатай програм хангамж хөгжүүлэгчидтэй хийсэн хүний аннотацийн кампанит ажил.
Тэмдэглэгдсэн асуудал бүрийг даалгаврын репозитор болон орчинд хандах эрхтэй Codex-д суурилсан мөрдөн шалгах агентуудаар аудит хийлгэсэн. Ингэснээр ойролцоох код болон репозиторын хэвшлийг судлаад ихэвчлэн шийдэж болох үндэслэлтэй хоёрдмол байдлыг жинхэнэ дутуу тодорхойлолтоос ялгахад тэдэнд тусалдаг. Агент тест ажиллуулж, repo дахь файлуудыг шалгаж, загварын оролдлого болон тухайн даалгавар дээрх нийтлэг бүтэлгүйтлийн горимуудыг судалж чадна. Эдгээр гүнзгий аудитын хэд хэдэн бие даасан давталтын дараа судлаач хураангуйг хянаж, эцсийн дүгнэлт гарган, магадлалтай асуудлуудыг шошголсон.
Үүнтэй зэрэгцэн бид тэмдэглэгдсэн дэд багц дээр хүний аннотацийн кампанит ажил явуулсан. Даалгавруудыг хянахаас өмнө бенчмаркийн зорилго, асуудлын ангилал зүй, захын тохиолдлуудад сургасан туршлагатай програм хангамжийн инженерүүдтэй бид хамтран ажилласан. Даалгавар бүрийг таван инженер хянасан.
Хянагчид пайплайны шинжилгээ эсвэл бичлэгийг туслах контекст болгон ашиглахаасаа өмнө харагдах асуудлын тайлбар, тестийн тохиолдлууд, үнэн зөвийн лавлагаа шийдэл (gold patch гэж нэрлэдэг)-д үндэслэн бие даасан дүгнэлт гаргасан. Дараа нь хянагчид бодит нотолгоонд үндэслэн шошго, ноцтой байдлын үнэлгээ өгч, санал зөрсөн эсвэл итгэл багатай тохиолдлыг нэмэлт хяналтад шилжүүлсэн.
Хүний хянагчид даалгаврыг эвдэрсэн гэж тэмдэглэх магадлал мөрдөн шалгах агентуудаас өндөр байсан. Хоёр хяналтын замын хооронд ангиллын талаар зарим санал зөрсөн ч тэмдэглэгдсэн ямар ч даалгаварт “эвдрээгүй” нь хүний хамгийн түгээмэл шошго байгаагүй. Агентын пайплайны тэмдэглэсэн ангиллуудаас хянагчдын дүгнэлт 74% тохиолдолд давхацсан.
Агентын пайплайнтай харьцуулахад хүний хянагчид нэг даалгаварт олон шошго сонгох магадлал мөн өндөр байсан нь даалгаврууд олон талаар эвдэрсэн эсвэл нэг ангилалд цэвэр багтаагүй гэж тэд үзсэнийг харуулна. Энэ нь агент-нэмэх-хянагчийн пайплайн болгоомжтой шошгололт өгснийг харуулж байна: хүмүүсийн илрүүлсэн өргөн хүрээний ижил бүтэлгүйтлийн горимуудыг барьсан ч хянагчид нэмэлт эсвэл давхцсан асуудал харсан тохиолдлыг дутуу тоолсон. Хамгийн том ялгаа нь хамрах хүрээ багатай тестүүд дээр гарсан: хүмүүс үүнийг бенчмаркийн 9.4%-д хамгийн түгээмэл асуудал гэж сонгосон бол агентын пайплайнд 4.1% байсан.
Алдааны горимууд
Зарим тохиолдолд даалгаврын өгөгдөл тодорхой хэрэгжүүлэлтийг заасан боловч далд тестийн тохиолдлууд өөр зан төлөв хүлээж байсан.
Бидний илрүүлсэн асуудлууд SWE-bench Verified-ийн ижил төстэй тохиолдлуудтай нийлээд бенчмаркуудыг нягт нямбай шалгахын чухлыг онцолж байна. Нээлттэй эхийн репозиторуудын issue болон pull request-үүд анх хүний хамтын ажиллагаанд зориулагдаж, ихэвчлэн арчлагчид ба хувь нэмэр оруулагчдын урт харилцан яриагаар бий болсон. Иймээс асуудлын тайлбар, нэгтгэсэн код, unit test-үүд нь загваруудыг найдвартай үнэлэх цэвэр, тусгаар даалгавар болж үргэлж таардаггүй. Ялангуяа pull request-д орсон тестүүд даалгаврыг шийдэх хэрэгжүүлэлтээс үл хамаарах стандарт тодорхойлохын оронд тодорхой өөрчлөлтийг баталгаажуулах гэж бичигддэг тул хэт хатуу байж болно.
Үүний зэрэгцээ үнэлгээний алдааг илрүүлэх нь одоо богино хугацааны өмнөхтэй харьцуулахад ч илүү амар болсон. Загварын чадавх сайжрахын хэрээр бид тэдгээр загварыг ашиглан өгөгдөл, тест, patch, trace, захын тохиолдлыг илүү гүн, тогтвортой шалгаж, өмнө нь өргөн цар хүрээнд олоход өртөг өндөр эсвэл боломжгүй байсан бенчмаркийн асуудлыг ил гаргаж чадна.
Өргөн хүрээний үнэлгээний нийгэмлэг загварын чадавхыг тусгайлан тестлэх зорилгоор туршлагатай програм хангамж хөгжүүлэгчдийн бүтээсэн шинэ бенчмаркуудыг хөгжүүлнэ гэж найдаж байна. Тийм арга нь загварын чадавхыг хэмжихэд бидний хүсдэг өндөр босго, бодит байдлыг хадгалж, бүх үйл явцад хүний илүү сайн хяналт тавих боломж олгоно. Энэ шинжилгээгээр илэрсэн асуудлуудыг харгалзан бид SWE-Bench Pro-г нэвтрүүлэх тухай өмнөх зөвлөмжөө буцааж байна.
Эцэст нь eval нь тоглоход хэцүү, итгэхэд амар, загварын чадавх эсвэл нийцлийг үнэхээр тусгасан бенчмаркуудаар утгатай дохио өгөх ёстой. Эдгээр үр дүн OpenAI-ийн нэвтрүүлэлт ба аюулгүй байдлын шийдвэрт нөлөөлдөг тул бидний хянадаг eval-ууд хүчинтэй, мэдээлэлтэй байх шаардлагатай.
Зохиогч
Зүүлт тайлбарууд
- 1
Бид энэ ангиллыг өмнө нь narrow tests гэж нэрлэж байсан.
- 2
Бид өмнө нь энэ ангиллыг wide tests гэж нэрлэж байсан.


