Napredak u programiranju na jezicima s malo dostupnih resursa
Najnovija poboljšanja naših modela donose veće mogućnosti razvoja i migracije softvera u programskim jezicima s malo dostupnih resursa, kao što su COBOL, Fortran i Visual Basic. Za te je jezike dostupno manje koda i dokumentacije iz kojih modeli mogu učiti nego za jezike poput Pythona i JavaScripta, a ipak su temelj ključne infrastrukture i osnovnih usluga diljem svijeta. COBOL podržava(otvara se u novom prozoru) više od 40 % sustava internetskog bankarstva, 80 % transakcija kreditnim karticama na fizičkim prodajnim mjestima i 95 % transakcija na bankomatima, dok se Fortran upotrebljava za prognoziranje vremena(otvara se u novom prozoru) i analizu sigurnosti nuklearnih reaktora(otvara se u novom prozoru). Poboljšanje sposobnosti umjetne inteligencije za rad s tim jezicima moglo bi timovima pomoći u održavanju i modernizaciji softvera o kojem ovise osnovne usluge.
U tom se radu vodimo povratnim informacijama programera i poslovnih korisnika koji su nam rekli da modeli za programiranje često imaju poteškoća s tim jezicima. Održavanje i modernizacija tog softvera mogu biti zahtjevni: dokumentacija može biti nepotpuna, izvorni programeri možda su napustili tvrtku, a važna poslovna pravila možda postoje samo u kodu. Bilo da ispravljaju pogreške ili prelaze na drugi jezik, timovi moraju očuvati ponašanje o kojem ovise njihovi sustavi.
Kako bismo mjerili napredak, razvili smo dvije evaluacije. MultiLangBench provjerava može li model od nule izraditi mehanizam baze podataka kompatibilan sa SQLiteom u 20 različitih programskih jezika. Naša evaluacija migracije iz COBOL-a provjerava može li model prenijeti postojeće programe u drugi jezik uz očuvanje njihova ponašanja. Zajedno provjeravaju dvije komplementarne vještine: izradu novog softvera i očuvanje funkcionalnosti postojećeg.
Naši najnoviji modeli pokazuju znatna poboljšanja u objema evaluacijama te postižu mnogo veću točnost uz niži trošak.
Na evaluaciji MultiLangBench GPT‑6 Astra postiže prosječnu stopu prolaznosti testova od 87,4 % na 20 programskih jezika, u usporedbi s 26,8 % za GPT‑5.6 Sol, uz poboljšanja u svakom testiranom jeziku. GPT‑6 Luna također nadmašuje GPT‑5.6 Sol, postižući 40,3 % uz približno 78 % niži procijenjeni trošak API-ja.
U našoj evaluaciji migracije iz COBOL-a GPT‑6.1 Sol postiže točnost od 86,6 % pri niskoj razini rasuđivanja, u usporedbi sa samo 5,4 % za GPT‑5.6 Sol, uz 39 % niži trošak. Pri višoj razini rasuđivanja točnost doseže 97,9 %, čime se gotovo doseže gornja granica evaluacije.
Ti rezultati zajedno pokazuju da naši modeli postaju znatno bolji u radu sa širokim rasponom programskih jezika, a istodobno i troškovno učinkovitiji.
MultiLangBench zadaje modelu izradu mehanizma baze podataka kompatibilnog sa SQLiteom u određenom programskom jeziku. Model mora organizirati bazu koda, upravljati stanjem, obrađivati pogreške i dodavati nove značajke uz očuvanje postojećih funkcionalnosti.
Kako bismo usporedili implementacije u različitim jezicima, kao zajedničko sučelje upotrebljavamo datoteke baze podataka. Testirani program prima početnu bazu podataka i SQL upit, a zatim izrađuje izmijenjenu bazu podataka. Referentnom implementacijom SQLitea provjeravamo ima li dobivena baza podataka očekivani sadržaj. To nam omogućuje primjenu istih testova bez obzira na jezik u kojem je mehanizam izrađen.
Tom smo formatu prilagodili testove iz postojećeg skupa testova za SQLite. Evaluacija mjeri koliko ispravnih funkcionalnosti model može izraditi tijekom dulje sesije programiranja te prikazuje stopu prolaznosti testova i trošak API-ja.
Pri maksimalnoj razini rasuđivanja GPT‑6 Astra postiže prosječnu stopu prolaznosti testova od 87,4 % na 20 jezika, u usporedbi s 26,8 % za GPT‑5.6 Sol. Poboljšanja su vidljiva u svakom testiranom jeziku, uključujući COBOL (s 10,9 % na 72,1 %), OCaml (s 25,6 % na 85,8 %), Fortran (s 21,4 % na 83,5 %) i Visual Basic (s 27,5 % na 89,4 %). Astra postiže rezultat iznad 83 % u 19 od 20 jezika, dok COBOL ostaje najzahtjevniji s rezultatom od 72 %.
GPT‑6 Luna povoljnija je opcija koja također nadmašuje GPT‑5.6 Sol u svakom testiranom jeziku. Pri maksimalnoj razini rasuđivanja postiže prosječnu stopu prolaznosti testova od 40,3 %. Poboljšanja obuhvaćaju COBOL (s 10,9 % na 17,1 %), OCaml (s 25,6 % na 34,1 %), Fortran (s 21,4 % na 31,4 %) i Visual Basic (s 27,5 % na 41,6 %). Ta poboljšanja dolaze uz procijenjeni prosječni trošak API-ja od 0,77 USD po uzorku, u usporedbi s 3,48 USD za GPT‑5.6 Sol, što je približno 78 % manje.
Na GitHubu(otvara se u novom prozoru) objavljujemo okruženje za evaluaciju MultiLangBench i skup testova, zajedno s rezultatima za svaki jezik. Programeri mogu proučiti što evaluacija provjerava, pregledati rezultate za jezike kojima se služe i prepoznati nedostatke važne za vlastiti rad.
Naša druga evaluacija zadaje modelima prijenos programa iz COBOL-a u C++, Javu, Kotlin, Python ili Rust uz očuvanje funkcionalnosti svakog programa.
Za uspješnu migraciju potrebno je razumjeti i poslovnu logiku programa i specifično ponašanje jezika COBOL. Programi napisani u COBOL-u često obrađuju financijske transakcije i poslovne zapise, pri čemu pojedinosti poput pravila zaokruživanja i postupanja s nedostajućim zapisima odražavaju poslovne zahtjeve. Na primjer, COBOL-ova aritmetika s fiksnim decimalnim zarezom odbacuje suvišne decimalne znamenke ako zaokruživanje nije izričito zatraženo. Ponovno napisana verzija programa koja umjesto toga zaokružuje te vrijednosti može se izvršiti bez pogrešaka, a pritom dati drukčije financijske rezultate.
Kako bismo provjerili jesu li ta ponašanja očuvana, modele evaluiramo skrivenim testovima koji zahtijevaju podudaranje vidljivih izlaznih podataka bajt po bajt. Migracija se smatra uspješnom samo ako prođe sve testove. Takve mogućnosti očuvanja ponašanja korisne su timovima koji održavaju i moderniziraju starije sustave. No njihova primjena na produkcijski softver i dalje zahtijeva stručni pregled i testiranje u skladu s poslovnim pravilima i ovisnostima sustava.
U ovoj evaluaciji GPT‑6.1 Sol postiže točnost od 86,6 % pri niskoj razini rasuđivanja, u usporedbi s 5,4 % za GPT‑5.6 Sol pri istoj postavci, uz samo 61 % njegova troška API-ja. Pri višoj razini rasuđivanja točnost doseže 97,9 %, čime se približava gornjoj granici evaluacije. Ovi rezultati evaluacije pokazuju napredak prema točnijoj i povoljnijoj migraciji koda za timove koji moderniziraju softver o kojem ovisi njihovo poslovanje.
Ove evaluacije, zajedno s izravnim povratnim informacijama programera i poslovnih korisnika, pomažu nam vidjeti u čemu naši modeli napreduju, a u čemu još zaostaju.
Cilj nam je pomoći modelima da primjenjuju vještine softverskog inženjerstva u više jezika: da razumiju nepoznate repozitorije, planiraju promjene, upotrebljavaju alate za izgradnju softvera, pokreću testove i otklanjaju pogreške.
Naše najnovije modele možete isprobati putem API-ja na programerskim zadacima u jezicima kojima se služi vaš tim. Vaše povratne informacije o tome što dobro funkcionira, gdje modeli imaju poteškoća i na koje bismo se jezike ili radne procese trebali sljedeće usredotočiti pomažu nam oblikovati treniranje i evaluaciju modela kako bi bolje podržavali softver o kojem ovisite.





