Пређите на главни садржај
OpenAI

Унапређење програмирања у језицима са мало доступних ресурса

Учитавање…

Најновија унапређења наших модела доносе боље могућности за развој и миграцију софтвера у програмским језицима са мало доступних ресурса, као што су COBOL, Fortran и Visual Basic. За ове језике доступно је мање кода и документације из којих модели могу да уче него за језике попут Python и JavaScript, а ипак на њима почивају критична инфраструктура и основне услуге широм света. COBOL покреће⁠(отвара се у новом прозору) више од 40% система за онлајн банкарство, 80% трансакција кредитним картицама на физичким продајним местима и 95% трансакција на банкоматима, док се Fortran користи за временску прогнозу⁠(отвара се у новом прозору) и анализу безбедности нуклеарних реактора⁠(отвара се у новом прозору). Побољшање способности вештачке интелигенције да ради у овим језицима могло би да помогне тимовима да одржавају и модернизују софтвер од ког зависе основне услуге.

Овај рад усмеравају повратне информације програмера и пословних корисника, који су нам указали на то да модели за програмирање често имају потешкоћа са овим језицима. Одржавање и модернизација овог софтвера могу бити тешки: документација може бити непотпуна, програмери који су га написали можда су напустили компанију, а важна пословна правила можда постоје само у коду. Било да исправљају грешке или прелазе на други језик, тимови морају да очувају понашање софтвера од ког зависе њихови системи.

Да бисмо мерили напредак, развили смо две евалуације. MultiLangBench проверава да ли модел може од нуле да направи механизам базе података компатибилан са SQLite-ом у 20 различитих програмских језика. Наша евалуација миграције COBOL кода проверава да ли модел може да пренесе постојеће програме у други језик уз очување њиховог понашања. Заједно проверавају две вештине које се допуњују: развој новог софтвера и очување начина рада постојећег софтвера.

Наши најновији модели показују значајан напредак у обе евалуације, уз знатно већу тачност и ниже трошкове.

На евалуацији MultiLangBench, GPT‑6 Astra постиже просечну стопу пролазности тестова од 87,4% на 20 програмских језика, у односу на 26,8% за GPT‑5.6 Sol, уз побољшања у сваком тестираном језику. GPT‑6 Luna такође надмашује GPT‑5.6 Sol, достижући 40,3% уз приближно 78% нижи процењени трошак API-ја.

На нашој евалуацији миграције COBOL кода, GPT‑6.1 Sol постиже тачност од 86,6% при ниском нивоу резоновања, у поређењу са само 5,4% за GPT‑5.6 Sol, уз 39% нижи трошак. При вишем нивоу резоновања, тачност достиже 97,9%, што је близу максималног резултата на овој евалуацији.

Ови резултати заједно показују да наши модели постају знатно бољи у раду са широким спектром програмских језика, а истовремено и исплативији.

1. Израда SQLite-а од нуле (MultiLangBench)

MultiLangBench задаје моделу да направи механизам базе података компатибилан са SQLite-ом у одређеном програмском језику. Модел мора да организује базу кода, управља стањем, обрађује грешке и додаје нове функције уз очување постојећих.

Да бисмо упоредили имплементације у различитим језицима, користимо датотеке база података као заједнички интерфејс. Програм који се оцењује добија почетну базу података и SQL упит, а затим производи измењену базу података. Референтну имплементацију SQLite-а користимо да проверимо да ли добијена база података има очекивани садржај. То нам омогућава да применимо исте тестове без обзира на језик у ком је механизам направљен.

Овом формату смо прилагодили тестове из постојећег скупа тестова за SQLite. Евалуација мери колико исправно радећих функција модел може да изради током продужене сесије програмирања и приказује стопу пролазности тестова и трошак API-ја.

При максималном нивоу резоновања, GPT‑6 Astra постиже просечну стопу пролазности тестова од 87,4% на 20 језика, у односу на 26,8% за GPT‑5.6 Sol. Побољшања су остварена у сваком тестираном језику, укључујући COBOL (са 10,9% на 72,1%), OCaml (са 25,6% на 85,8%), Fortran (са 21,4% на 83,5%) и Visual Basic (са 27,5% на 89,4%). Astra постиже резултат изнад 83% у 19 од 20 језика, док COBOL остаје најтежи, са 72%.

GPT‑6 Luna је повољнија опција која такође надмашује GPT‑5.6 Sol у сваком тестираном језику. При максималном нивоу резоновања достиже просечну стопу пролазности тестова од 40,3%. Напредак је остварен и за COBOL (са 10,9% на 17,1%), OCaml (са 25,6% на 34,1%), Fortran (са 21,4% на 31,4%) и Visual Basic (са 27,5% на 41,6%). Ова побољшања постижу се уз процењени просечни трошак API-ја од 0,77 USD по узорку, у поређењу са 3,48 USD за GPT‑5.6 Sol, што је приближно 78% мање.

На платформи GitHub⁠(отвара се у новом прозору) објављујемо окружење за евалуацију MultiLangBench и скуп тестова, заједно са резултатима за сваки језик. Програмери могу да погледају шта евалуација проверава, прегледају резултате за језике које користе и утврде који су недостаци важни за њихов рад.

2. Миграција базе COBOL кода

Наша друга евалуација задаје моделима да пренесу COBOL програме у C++, Java, Kotlin, Python или Rust, уз очување начина рада сваког програма.

Успешна миграција захтева разумевање и пословне логике програма и специфичног понашања језика COBOL. COBOL програми често обрађују финансијске трансакције и пословне евиденције, при чему детаљи попут правила заокруживања и поступања са недостајућим записима одражавају пословне захтеве. На пример, аритметика са фиксним зарезом у језику COBOL одбацује сувишне децималне цифре, осим ако се заокруживање изричито не затражи. Преписана верзија која уместо тога заокружује те вредности може да ради без грешака, а да ипак даје другачије финансијске резултате.

Да бисмо проверили да ли је такво понашање очувано, оцењујемо моделе на скривеним тестовима који захтевају потпуно подударање видљивих излазних података, бајт по бајт. Миграција се сматра успешном само ако програм прође све тестове. Овакве могућности очувања понашања корисне су тимовима који одржавају и модернизују старије системе, мада њихова примена на софтвер у продукцији и даље захтева стручни преглед и тестирање у односу на пословна правила и зависности система.

На овој евалуацији, GPT‑6.1 Sol постиже тачност од 86,6% при ниском нивоу резоновања, у поређењу са 5,4% за GPT‑5.6 Sol при истом подешавању, уз свега 61% његовог трошка API-ја. При вишем нивоу резоновања, тачност достиже 97,9%, што је близу максималног резултата на овој евалуацији. Ови резултати евалуације показују напредак ка тачнијој и приступачнијој миграцији кода за тимове који модернизују софтвер од ког зависи њихово пословање.

Унапређење могућности за рад са пословним софтвером

Ове евалуације, уз непосредне повратне информације програмера и пословних корисника, помажу нам да видимо где наши модели напредују, а где још имају недостатке.

Циљ нам је да помогнемо моделима да примене вештине софтверског инжењерства у више језика: да разумеју непознате депое, планирају измене, користе алате за изградњу софтвера, покрећу тестове и отклањају грешке.

Наше најновије моделе можете да испробате путем API-ја на програмерским задацима у језицима које ваш тим користи. Ваше повратне информације о томе шта добро функционише, где модели имају потешкоћа и на које језике или токове рада треба следеће да се усредсредимо помажу нам да усмеримо обуку и евалуацију модела како би боље подржали софтвер од ког зависите.