Pereiti prie pagrindinio turinio
OpenAI

2026 m. spalio 19 d.

PublikacijaMoksliniai tyrimai

Pažanga programuojant kalbomis, kurių mokymo išteklių mažai

Įkeliama...

Naujausi mūsų modelių patobulinimai suteikia daugiau galimybių kurti ir perkelti programinę įrangą naudojant programavimo kalbas, kurių mokymo išteklių mažai, pavyzdžiui, COBOL, „Fortran“ ir „Visual Basic“. Palyginti su tokiomis kalbomis kaip „Python“ ir „JavaScript“, šiomis kalbomis parašyto kodo ir jų dokumentacijos, iš kurių modeliai galėtų mokytis, yra mažiau. Vis dėlto jos naudojamos kritinei infrastruktūrai ir būtiniausioms paslaugoms visame pasaulyje. COBOL pagrindu veikia⁠(atsidaro naujame lange) daugiau kaip 40 % internetinės bankininkystės sistemų, apdorojama 80 % fizinėse vietose atliekamų kredito kortelių operacijų ir 95 % bankomatų operacijų, o „Fortran“ naudojama orų prognozėms⁠(atsidaro naujame lange) ir branduolinių reaktorių saugos analizei⁠(atsidaro naujame lange). Geresnis DI gebėjimas dirbti šiomis kalbomis galėtų padėti komandoms prižiūrėti ir modernizuoti programinę įrangą, nuo kurios priklauso būtiniausios paslaugos.

Šio darbo kryptį lemia programuotojų ir verslo klientų atsiliepimai: jie mums nurodė, kad programavimo modeliams dažnai sunku dirbti šiomis kalbomis. Prižiūrėti ir modernizuoti tokią programinę įrangą gali būti sunku: dokumentacija gali būti neišsami, pradiniai kūrėjai jau gali būti palikę įmonę, o svarbios verslo taisyklės gali būti užfiksuotos tik kode. Nesvarbu, ar komandos taiso klaidas, ar perkelia kodą į kitą kalbą, jos turi išlaikyti programų veikimo ypatumus, nuo kurių priklauso jų sistemos.

Pažangai matuoti sukūrėme du vertinimus. „MultiLangBench“ tikrina, ar modelis gali nuo nulio sukurti su „SQLite“ suderinamą duomenų bazės variklį kiekviena iš 20 skirtingų programavimo kalbų. Mūsų COBOL kodo perkėlimo vertinimas tikrina, ar modelis gali perkelti esamas programas į kitą kalbą nepakeisdamas jų veikimo. Kartu šie vertinimai tikrina du vienas kitą papildančius įgūdžius: gebėjimą kurti naują programinę įrangą ir išlaikyti esamos programinės įrangos veikimą.

Naujausi mūsų modeliai abiejuose vertinimuose pasiekia gerokai geresnius rezultatus: už mažesnę kainą užtikrina daug didesnį tikslumą.

„MultiLangBench“ vertinime „GPT‑6 Astra“ vidutiniškai sėkmingai įveikia 87,4 % testų, atliekamų 20 programavimo kalbų, o „GPT‑5.6 Sol“ rezultatas – 26,8 %. Pažanga matoma visose tikrintose kalbose. „GPT‑6 Luna“ taip pat pranoksta „GPT‑5.6 Sol“: pasiekia 40,3 % rezultatą, o apskaičiuotos API išlaidos yra maždaug 78 % mažesnės.

Mūsų COBOL kodo perkėlimo vertinime „GPT‑6.1 Sol“, naudodamas žemą protavimo lygį, pasiekia 86,6 % tikslumą, palyginti su vos 5,4 % „GPT‑5.6 Sol“ rezultatu, ir kainuoja 39 % mažiau. Naudojant aukštesnį protavimo lygį, tikslumas siekia 97,9 % – beveik aukščiausią įmanomą šio vertinimo rezultatą.

Šie rezultatai rodo, kad mūsų modeliai vis geriau dirba įvairiomis programavimo kalbomis, o jų naudojimas tampa ekonomiškesnis.

1. „SQLite“ kūrimas nuo nulio („MultiLangBench“)

„MultiLangBench“ užduotis modeliui – sukurti su „SQLite“ suderinamą duomenų bazės variklį nurodyta programavimo kalba. Modelis turi sutvarkyti kodo bazę, valdyti būseną, apdoroti klaidas ir pridėti naujų funkcijų, išlaikydamas esamas.

Kad galėtume palyginti skirtingomis kalbomis sukurtas realizacijas, kaip bendrą sąsają naudojame duomenų bazės failus. Vertinama programa gauna pradinę duomenų bazę ir SQL užklausą, tada pateikia pakeistą duomenų bazę. Naudodami etaloninę „SQLite“ realizaciją patikriname, ar gautos duomenų bazės turinys atitinka lūkesčius. Taip galime taikyti tuos pačius testus, nesvarbu, kokia kalba sukurtas variklis.

Šiam formatui pritaikėme testus iš esamo „SQLite“ testų rinkinio. Vertiname, kiek veikiančių funkcijų modelis gali sukurti per ilgą programavimo seansą, ir pateikiame tiek sėkmingai įveiktų testų dalį, tiek API išlaidas.

Naudodamas maksimalų protavimo lygį, „GPT‑6 Astra“ vidutiniškai sėkmingai įveikia 87,4 % testų, atliekamų 20 kalbų, o „GPT‑5.6 Sol“ rezultatas – 26,8 %. Rezultatai pagerėjo visose tikrintose kalbose, įskaitant COBOL (nuo 10,9 % iki 72,1 %), „OCaml“ (nuo 25,6 % iki 85,8 %), „Fortran“ (nuo 21,4 % iki 83,5 %) ir „Visual Basic“ (nuo 27,5 % iki 89,4 %). „Astra“ rezultatas viršija 83 % naudojant 19 iš 20 kalbų. Sunkiausia išlieka COBOL, kurios rezultatas – 72 %.

„GPT‑6 Luna“ yra pigesnė alternatyva, kuri taip pat pranoksta „GPT‑5.6 Sol“ visose tikrintose kalbose. Naudodamas maksimalų protavimo lygį, šis modelis vidutiniškai sėkmingai įveikia 40,3 % testų. Rezultatai pagerėjo, be kita ko, naudojant COBOL (nuo 10,9 % iki 17,1 %), „OCaml“ (nuo 25,6 % iki 34,1 %), „Fortran“ (nuo 21,4 % iki 31,4 %) ir „Visual Basic“ (nuo 27,5 % iki 41,6 %). Šie geresni rezultatai pasiekiami už apskaičiuotą vidutinę 0,77 USD API kainą vienam bandiniui, palyginti su 3,48 USD naudojant „GPT‑5.6 Sol“, – tai maždaug 78 % mažiau.

„MultiLangBench“ vertinimo aplinką ir testų rinkinį kartu su kiekvienos kalbos rezultatais skelbiame „GitHub“⁠(atsidaro naujame lange). Programuotojai gali peržiūrėti, kas tikrinama šiame vertinime, susipažinti su savo naudojamų kalbų rezultatais ir nustatyti jų darbui svarbias spragas.

2. COBOL kodo bazės perkėlimas

Antrajame vertinime modelių prašome perkelti COBOL programas į C++, „Java“, „Kotlin“, „Python“ arba „Rust“, nepakeičiant kiekvienos programos veikimo.

Norint sėkmingai perkelti kodą, būtina suprasti ir programos verslo logiką, ir specifinius COBOL kalbos veikimo ypatumus. COBOL programos dažnai apdoroja finansines operacijas ir verslo įrašus, todėl tokios detalės kaip apvalinimo taisyklės ir trūkstamų įrašų tvarkymas atspindi verslo reikalavimus. Pavyzdžiui, COBOL fiksuotojo kablelio aritmetika atmeta perteklinius skaitmenis po kablelio, nebent aiškiai nurodyta apvalinti. Perrašyta programa, kuri šias reikšmes apvalina, gali veikti be klaidų, tačiau pateikti kitokius finansinius rezultatus.

Norėdami patikrinti, ar šie veikimo ypatumai išlaikomi, modelius vertiname paslėptais testais, kuriuose stebima išvestis turi sutapti baitas į baitą. Perkėlimas laikomas sėkmingu tik įveikus visus testus. Tokie gebėjimai išlaikyti programų veikimą naudingi komandoms, kurios prižiūri ir modernizuoja senesnes sistemas. Vis dėlto, taikant juos realiai naudojamai programinei įrangai, tebėra būtina ekspertų peržiūra ir testavimas pagal sistemos verslo taisykles bei priklausomybes.

Šiame vertinime „GPT‑6.1 Sol“, naudodamas žemą protavimo lygį, pasiekia 86,6 % tikslumą, o „GPT‑5.6 Sol“ su ta pačia nuostata – 5,4 %. Be to, „GPT‑6.1 Sol“ API išlaidos sudaro vos 61 % „GPT‑5.6 Sol“ API išlaidų. Naudojant aukštesnį protavimo lygį, tikslumas siekia 97,9 % ir priartėja prie aukščiausio įmanomo šio vertinimo rezultato. Šie vertinimo rezultatai rodo pažangą siekiant tikslesnio ir pigesnio kodo perkėlimo komandoms, modernizuojančioms programinę įrangą, nuo kurios priklauso jų verslas.

Geresnės galimybės dirbti su įmonių programine įranga

Šie vertinimai ir tiesioginiai programuotojų bei verslo klientų atsiliepimai padeda mums suprasti, kur mūsų modeliai tobulėja, o kur jiems dar trūksta gebėjimų.

Mūsų tikslas – padėti modeliams taikyti programinės įrangos inžinerijos įgūdžius dirbant su daugiau kalbų: suprasti nepažįstamas saugyklas, planuoti pakeitimus, naudoti programų surinkimo įrankius, vykdyti testus ir šalinti klaidas.

Naujausius mūsų modelius galite išbandyti per API, atlikdami programavimo užduotis jūsų komandos naudojamomis kalbomis. Jūsų atsiliepimai apie tai, kas veikia, kur modeliams kyla sunkumų ir kurioms kalboms ar darbo eigoms turėtume skirti dėmesio toliau, padeda mums tobulinti modelių mokymą ir vertinimą, kad jie geriau dirbtų su jums svarbia programine įranga.