Najnovejše izboljšave naših modelov prinašajo večje zmogljivosti za razvoj in migracijo programske opreme v programskih jezikih z malo učnimi viri, kot so COBOL, Fortran in Visual Basic. Za te jezike je na voljo manj kode in dokumentacije, iz katerih bi se modeli lahko učili, kot za jezike, kot sta Python in JavaScript. Kljub temu na njih temeljijo kritična infrastruktura in ključne storitve po vsem svetu. COBOL podpira(odpre se v novem oknu) več kot 40 % sistemov spletnega bančništva, 80 % transakcij s kreditnimi karticami na fizičnih prodajnih mestih in 95 % transakcij na bankomatih, Fortran pa se uporablja za napovedovanje vremena(odpre se v novem oknu) in analizo varnosti jedrskih reaktorjev(odpre se v novem oknu). Izboljšanje zmožnosti umetne inteligence za delo v teh jezikih bi lahko ekipam pomagalo vzdrževati in posodabljati programsko opremo, od katere so odvisne ključne storitve.
Pri tem delu nas usmerjajo povratne informacije razvijalcev in poslovnih strank, ki so nam povedali, da imajo modeli za programiranje s temi jeziki pogosto težave. Vzdrževanje in posodabljanje te programske opreme je lahko zahtevno: dokumentacija je lahko nepopolna, prvotni razvijalci so morda že zapustili podjetje, pomembna poslovna pravila pa so lahko zapisana le v kodi. Ne glede na to, ali ekipe odpravljajo napake ali kodo prenašajo v drug jezik, morajo ohraniti delovanje, od katerega so odvisni njihovi sistemi.
Za merjenje napredka smo razvili dva preizkusa. MultiLangBench preverja, ali lahko model v 20 različnih programskih jezikih od začetka izdela pogon podatkovne zbirke, združljiv s SQLite. Naš preizkus migracije iz jezika COBOL preverja, ali lahko model obstoječe programe prenese v drug jezik in pri tem ohrani njihovo delovanje. Skupaj preverjata dve dopolnjujoči se spretnosti: razvoj nove programske opreme in ohranjanje delovanja obstoječe.
Naši najnovejši modeli pri obeh preizkusih kažejo bistvene izboljšave ter dosegajo precej večjo točnost ob nižjih stroških.
Pri preizkusu MultiLangBench GPT‑6 Astra v 20 programskih jezikih v povprečju uspešno opravi 87,4 % testov v primerjavi s 26,8 % pri modelu GPT‑5.6 Sol, izboljšave pa so vidne v vseh preizkušenih jezikih. Tudi GPT‑6 Luna presega GPT‑5.6 Sol: dosega 40,3 % ob približno 78 % nižjem ocenjenem strošku API-ja.
Pri našem preizkusu migracije iz jezika COBOL GPT‑6.1 Sol pri nizki ravni sklepanja dosega 86,6-odstotno točnost v primerjavi z le 5,4 % pri modelu GPT‑5.6 Sol, strošek pa je za 39 % nižji. Pri višji ravni sklepanja točnost doseže 97,9 %, kar se že približuje zgornji meji preizkusa.
Ti rezultati skupaj kažejo, da naši modeli postajajo bistveno boljši pri delu s širokim naborom programskih jezikov, hkrati pa tudi stroškovno učinkovitejši.
MultiLangBench modelu naloži, naj v določenem programskem jeziku izdela pogon podatkovne zbirke, združljiv s SQLite. Model mora organizirati zbirko kode, upravljati stanje, obravnavati napake in dodajati nove funkcije, ne da bi pri tem okrnil obstoječe.
Za primerjavo implementacij v različnih jezikih kot skupni vmesnik uporabljamo datoteke podatkovnih zbirk. Preizkušani program prejme začetno podatkovno zbirko in poizvedbo SQL, nato pa ustvari spremenjeno podatkovno zbirko. Z referenčno implementacijo SQLite preverimo, ali nastala podatkovna zbirka vsebuje pričakovane podatke. Tako lahko uporabimo iste teste ne glede na jezik, v katerem je pogon izdelan.
Tej obliki smo prilagodili teste iz obstoječega nabora testov SQLite. Preizkus meri, koliko delujočih funkcij lahko model izdela med daljšo sejo programiranja, ter poroča o deležu uspešno opravljenih testov in strošku API-ja.
Pri najvišji ravni sklepanja GPT‑6 Astra v 20 jezikih v povprečju uspešno opravi 87,4 % testov v primerjavi s 26,8 % pri modelu GPT‑5.6 Sol. Izboljšave so vidne v vseh preizkušenih jezikih, vključno s COBOL (z 10,9 % na 72,1 %), OCaml (s 25,6 % na 85,8 %), Fortran (z 21,4 % na 83,5 %) in Visual Basic (s 27,5 % na 89,4 %). Astra v 19 od 20 jezikov dosega več kot 83 %, najzahtevnejši pa ostaja COBOL z 72 %.
GPT‑6 Luna je cenovno ugodnejša možnost, ki prav tako presega GPT‑5.6 Sol v vseh preizkušenih jezikih. Pri najvišji ravni sklepanja v povprečju uspešno opravi 40,3 % testov. Izboljšave vključujejo COBOL (z 10,9 % na 17,1 %), OCaml (s 25,6 % na 34,1 %), Fortran (z 21,4 % na 31,4 %) in Visual Basic (s 27,5 % na 41,6 %). Ob teh izboljšavah je ocenjeni povprečni strošek API-ja 0,77 USD na vzorec v primerjavi s 3,48 USD pri modelu GPT‑5.6 Sol, kar je približno 78 % manj.
Okolje za preizkus MultiLangBench in nabor testov objavljamo na GitHubu(odpre se v novem oknu), skupaj z rezultati za vsak jezik. Razvijalci lahko preverijo, kaj preizkus zajema, pregledajo uspešnost v jezikih, ki jih uporabljajo, in prepoznajo pomanjkljivosti, pomembne za njihovo delo.
Naš drugi preizkus modelom naloži, naj programe iz jezika COBOL prenesejo v C++, Javo, Kotlin, Python ali Rust in pri tem ohranijo delovanje vsakega programa.
Uspešna migracija zahteva razumevanje tako poslovne logike programa kot posebnosti delovanja jezika COBOL. Programi v jeziku COBOL pogosto obdelujejo finančne transakcije in poslovne zapise, pri katerih podrobnosti, kot so pravila zaokroževanja in obravnava manjkajočih zapisov, odražajo poslovne zahteve. Aritmetika s fiksno vejico v jeziku COBOL na primer zavrže odvečne decimalne števke, razen če je zaokroževanje izrecno zahtevano. Na novo napisana različica, ki te vrednosti namesto tega zaokroži, lahko deluje brez napak, vendar daje drugačne finančne rezultate.
Da preverimo, ali se te značilnosti delovanja ohranijo, modele ocenjujemo s skritimi testi, ki zahtevajo ujemanje opaznih izhodnih podatkov do zadnjega bajta. Migracija velja za uspešno le, če so uspešno opravljeni vsi testi. Takšne zmožnosti ohranjanja delovanja so koristne za ekipe, ki vzdržujejo in posodabljajo starejše sisteme. Njihova uporaba v produkcijski programski opremi pa še vedno zahteva strokovni pregled in testiranje skladnosti s poslovnimi pravili ter odvisnostmi sistema.
Pri tem preizkusu GPT‑6.1 Sol pri nizki ravni sklepanja dosega 86,6-odstotno točnost v primerjavi s 5,4 % pri modelu GPT‑5.6 Sol z enako nastavitvijo, in to za le 61 % njegovega stroška API-ja. Pri višji ravni sklepanja točnost doseže 97,9 %, s čimer se približa zgornji meji preizkusa. Ti rezultati preizkusa kažejo napredek k natančnejši in cenovno dostopnejši migraciji kode za ekipe, ki posodabljajo programsko opremo, od katere je odvisno poslovanje njihovih podjetij.
Ti preizkusi nam skupaj z neposrednimi povratnimi informacijami razvijalcev in poslovnih strank pomagajo razumeti, kje naši modeli napredujejo in kje še ne dosegajo pričakovanj.
Naš cilj je modelom pomagati, da spretnosti programskega inženirstva uporabljajo v več jezikih: razumevanje neznanih repozitorijev, načrtovanje sprememb, uporabo orodij za gradnjo, izvajanje testov in odpravljanje napak.
Naše najnovejše modele lahko prek API-ja preizkusite pri programerskih nalogah v jezikih, ki jih uporablja vaša ekipa. Vaše povratne informacije o tem, kaj deluje, kje imajo modeli težave in katerim jezikom ali potekom dela naj se posvetimo v prihodnje, pomagajo usmerjati učenje in ocenjevanje modelov, da bodo bolje podpirali programsko opremo, od katere ste odvisni.





