Meie mudelite uusimad arendused parandavad tarkvara loomise ja migreerimise võimekust programmeerimiskeeltes, mille kohta on vähe õppematerjali, näiteks COBOL, Fortran ja Visual Basic. Võrreldes selliste keeltega nagu Python ja JavaScript on nende keelte kohta vähem koodi ja dokumentatsiooni, millest mudelid saaksid õppida. Ometi toetuvad neile kriitiline taristu ja elutähtsad teenused kogu maailmas. COBOL-ile toetub(avaneb uues aknas) üle 40% internetipanganduse süsteemidest, 80% kohapeal tehtavatest krediitkaarditehingutest ja 95% sularahaautomaaditehingutest. Fortranit kasutatakse aga ilmaennustuses(avaneb uues aknas) ja tuumareaktorite ohutusanalüüsis(avaneb uues aknas). Kui tehisintellekt suudab neis keeltes paremini töötada, võib see aidata meeskondadel hooldada ja ajakohastada tarkvara, millest sõltuvad elutähtsad teenused.
Seda tööd suunab arendajate ja äriklientide tagasiside: nende sõnul jäävad programmeerimismudelid nende keeltega sageli hätta. Sellise tarkvara hooldamine ja ajakohastamine võib olla keeruline: dokumentatsioon võib olla puudulik, algsed arendajad ettevõttest lahkunud ning olulised ärireeglid talletatud ainult koodis. Nii vigade parandamisel kui ka teisele keelele üleminekul peavad meeskonnad säilitama programmi käitumise, millest nende süsteemid sõltuvad.
Edusammude mõõtmiseks töötasime välja kaks hindamist. MultiLangBench kontrollib, kas mudel suudab luua nullist SQLite’iga ühilduva andmebaasimootori 20 eri programmeerimiskeeles. Meie COBOL-i koodi migreerimise hindamine kontrollib, kas mudel suudab viia olemasolevad programmid teise keelde, säilitades nende käitumise. Koos kontrollivad need kaht teineteist täiendavat oskust: uue tarkvara loomist ja olemasoleva tarkvara toimimise säilitamist.
Meie uusimad mudelid näitavad mõlemas hindamises märkimisväärseid edusamme, saavutades palju suurema täpsuse väiksema kuluga.
MultiLangBenchi hindamisel saavutab GPT‑6 Astra 20 programmeerimiskeele keskmiseks testide läbimise määraks 87,4%, võrreldes GPT‑5.6 Soli 26,8%-ga. Tulemused paranesid kõigis testitud keeltes. Ka GPT‑6 Luna ületab GPT‑5.6 Soli tulemuse, saavutades 40,3% ligikaudu 78% väiksema hinnangulise API kuluga.
Meie COBOL-i koodi migreerimise hindamisel saavutab GPT‑6.1 Sol väikese arutlusmahuga 86,6% täpsuse, võrreldes GPT‑5.6 Soli kõigest 5,4%-ga, ning seda 39% väiksema kuluga. Suurema arutlusmahu korral ulatub täpsus 97,9%-ni, jõudes hindamise ülempiiri lähedale.
Kokkuvõttes näitavad need tulemused, et meie mudelid tulevad paljude eri programmeerimiskeeltega märgatavalt paremini toime ja muutuvad ühtlasi kulutõhusamaks.
MultiLangBench annab mudelile ülesande luua SQLite’iga ühilduv andmebaasimootor kindlas programmeerimiskeeles. Mudel peab korraldama koodibaasi, haldama olekut, käsitlema vigu ja lisama uusi funktsioone, säilitades olemasoleva funktsionaalsuse.
Eri keeltes teostuste võrdlemiseks kasutame ühise liidesena andmebaasifaile. Hinnatav programm saab sisendiks algse andmebaasi ja SQL-päringu ning väljastab seejärel muudetud andmebaasi. SQLite’i võrdlusteostuse abil kontrollime, kas saadud andmebaasi sisu vastab ootustele. Nii saame rakendada samu teste sõltumata sellest, mis keeles mootor on loodud.
Kohandasime SQLite’i olemasoleva testikomplekti teste sellele vormingule. Hindamine mõõdab, kui palju toimivat funktsionaalsust suudab mudel pikema programmeerimisseansi jooksul luua, ning esitab nii testide läbimise määra kui ka API kulu.
Maksimaalse arutlusmahuga saavutab GPT‑6 Astra 20 keele keskmiseks testide läbimise määraks 87,4%, võrreldes GPT‑5.6 Soli 26,8%-ga. Tulemused paranesid kõigis testitud keeltes, sealhulgas COBOL-is (10,9%-lt 72,1%-le), OCamlis (25,6%-lt 85,8%-le), Fortranis (21,4%-lt 83,5%-le) ja Visual Basicus (27,5%-lt 89,4%-le). Astra tulemus ületab 83% taseme 19 keeles 20-st; kõige keerulisemaks jääb COBOL tulemusega 72%.
GPT‑6 Luna on soodsam valik, mis ületab samuti GPT‑5.6 Soli tulemusi kõigis testitud keeltes. Maksimaalse arutlusmahuga saavutab see keskmiseks testide läbimise määraks 40,3%. Tulemused paranesid muu hulgas COBOL-is (10,9%-lt 17,1%-le), OCamlis (25,6%-lt 34,1%-le), Fortranis (21,4%-lt 31,4%-le) ja Visual Basicus (27,5%-lt 41,6%-le). Need paremad tulemused saavutatakse hinnangulise keskmise API kuluga 0,77 USA dollarit katse kohta, võrreldes GPT‑5.6 Soli 3,48 dollariga – kulu on ligikaudu 78% väiksem.
Avaldame MultiLangBenchi hindamiskeskkonna ja testikomplekti GitHubis(avaneb uues aknas) koos iga keele tulemustega. Arendajad saavad uurida, mida hindamine kontrollib, vaadata tulemusi enda kasutatavates keeltes ning tuvastada oma töö jaoks olulisi puudujääke.
Meie teine hindamine annab mudelitele ülesande viia COBOL-i programmid üle keelde C++, Java, Kotlin, Python või Rust, säilitades iga programmi toimimise.
Edukas migreerimine nõuab nii programmi äriloogika kui ka COBOL-i keele eripärade mõistmist. COBOL-i programmid töötlevad sageli finantstehinguid ja äriandmeid, mille puhul sellised üksikasjad nagu ümardamisreeglid ja puuduvate kirjete käsitlemine tulenevad ärinõuetest. Näiteks jätab COBOL-i püsikoma-aritmeetika liigsed kümnendkohad ära, kui ümardamist pole sõnaselgelt ette nähtud. Ümberkirjutatud programm, mis neid väärtusi hoopis ümardab, võib töötada vigadeta, kuid anda teistsuguseid finantstulemusi.
Et kontrollida sellise käitumise säilimist, hindame oma mudeleid peidetud testidega, mis nõuavad vaadeldavate väljundite baithaaval identsust. Migreerimine loetakse edukaks ainult siis, kui kõik testid on läbitud. Võime säilitada programmi käitumist on kasulik vanemaid süsteeme hooldavatele ja ajakohastavatele meeskondadele. Tootmiskeskkonna tarkvara puhul nõuab selle rakendamine siiski ekspertide ülevaatust ning testimist süsteemi ärireeglite ja sõltuvuste suhtes.
Selles hindamises saavutab GPT‑6.1 Sol väikese arutlusmahuga 86,6% täpsuse, võrreldes GPT‑5.6 Soli 5,4%-ga samal sättel, ning seda kõigest 61% ulatuses viimase API kulust. Suurema arutlusmahu korral ulatub täpsus 97,9%-ni, jõudes hindamise ülempiiri lähedale. Need hindamistulemused näitavad edusamme täpsema ja soodsama koodimigreerimise suunas, mis aitab meeskondadel ajakohastada tarkvara, millest nende ettevõtted sõltuvad.
Need hindamised koos arendajate ja äriklientide otsese tagasisidega aitavad meil näha, milles meie mudelid paranevad ja kus neil on veel puudujääke.
Meie eesmärk on aidata mudelitel rakendada tarkvaraarenduse oskusi rohkemates keeltes: mõista võõraid varamuid, kavandada muudatusi, kasutada järgutööriistu, käivitada teste ning leida ja parandada vigu.
Saad meie uusimaid mudeleid API kaudu proovida programmeerimisülesannetes ja keeltes, mida sinu meeskond kasutab. Sinu tagasiside selle kohta, mis toimib, millega mudelid hätta jäävad ning millistele keeltele või töövoogudele peaksime järgmisena keskenduma, aitab suunata mudelite treenimist ja hindamist, et need toetaksid paremini tarkvara, millest sa sõltud.





