Unapređenje programiranja u jezicima s malo dostupnih resursa
Najnovija unapređenja naših modela donose bolje mogućnosti razvoja i migracije softvera u programskim jezicima s malo dostupnih resursa, kao što su COBOL, Fortran i Visual Basic. Za ove jezike dostupno je manje koda i dokumentacije iz kojih modeli mogu učiti nego za jezike poput Pythona i JavaScripta, a ipak na njima počivaju kritična infrastruktura i ključne usluge širom svijeta. COBOL podržava(otvara se u novom prozoru) više od 40% sistema internetskog bankarstva, 80% transakcija kreditnim karticama na fizičkim prodajnim mjestima i 95% transakcija na bankomatima, dok se Fortran koristi za vremensku prognozu(otvara se u novom prozoru) i analizu sigurnosti nuklearnih reaktora(otvara se u novom prozoru). Unapređenje sposobnosti umjetne inteligencije da radi u ovim jezicima moglo bi pomoći timovima da održavaju i modernizuju softver od kojeg zavise ključne usluge.
Ovaj rad usmjeravaju povratne informacije programera i poslovnih korisnika koji su nam ukazali na to da modeli za programiranje često imaju poteškoća s ovim jezicima. Održavanje i modernizacija ovog softvera mogu biti teški: dokumentacija može biti nepotpuna, programeri koji su ga razvili možda su napustili kompaniju, a važna poslovna pravila mogu postojati samo u kodu. Bez obzira na to otklanjaju li greške ili prelaze na drugi jezik, timovi moraju očuvati ponašanje softvera od kojeg zavise njihovi sistemi.
Da bismo mjerili napredak, razvili smo dvije evaluacije. MultiLangBench provjerava može li model od nule izgraditi sistem za upravljanje bazom podataka kompatibilan sa SQLiteom u 20 različitih programskih jezika. Naša evaluacija migracije COBOL koda provjerava može li model prenijeti postojeće programe na drugi jezik uz očuvanje njihovog ponašanja. Zajedno provjeravaju dvije komplementarne vještine: razvoj novog softvera i očuvanje funkcionalnosti postojećeg softvera.
Naši najnoviji modeli pokazuju značajna poboljšanja na obje evaluacije, uz mnogo veću tačnost i niže troškove.
Na evaluaciji MultiLangBench, GPT‑6 Astra postiže prosječnu stopu prolaznosti testova od 87,4% u 20 programskih jezika, u odnosu na 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, dostižući 40,3% uz približno 78% niži procijenjeni trošak API-ja.
Na našoj evaluaciji migracije COBOL koda, GPT‑6.1 Sol postiže tačnost od 86,6% pri niskom intenzitetu rezonovanja, u poređenju sa samo 5,4% za GPT‑5.6 Sol, uz 39% niži trošak. Pri višem intenzitetu rezonovanja tačnost dostiže 97,9%, čime se gotovo doseže gornja granica evaluacije.
Ovi rezultati zajedno pokazuju da naši modeli postaju znatno bolji u radu s velikim brojem programskih jezika, a istovremeno i troškovno efikasniji.
MultiLangBench od modela traži da u zadanom programskom jeziku izgradi sistem za upravljanje bazom podataka kompatibilan sa SQLiteom. Model mora organizovati bazu koda, upravljati stanjem, obrađivati greške i dodavati nove funkcije uz očuvanje postojeće funkcionalnosti.
Da bismo uporedili implementacije u različitim jezicima, koristimo datoteke baze podataka kao zajednički interfejs. Program koji se testira prima početnu bazu podataka i SQL upit, a zatim vraća izmijenjenu bazu podataka. Koristimo referentnu implementaciju SQLitea da provjerimo ima li dobijena baza podataka očekivani sadržaj. To nam omogućava da primijenimo iste testove bez obzira na jezik u kojem je sistem izgrađen.
Ovom formatu prilagodili smo testove iz postojećeg skupa testova za SQLite. Evaluacija mjeri koliko ispravnih funkcionalnosti model može izgraditi tokom duže sesije programiranja te bilježi stopu prolaznosti testova i trošak API-ja.
Pri maksimalnom intenzitetu rezonovanja, GPT‑6 Astra postiže prosječnu stopu prolaznosti testova od 87,4% u 20 jezika, u odnosu na 26,8% za GPT‑5.6 Sol. Poboljšanja su zabilježena 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 je povoljnija opcija koja također nadmašuje GPT‑5.6 Sol u svakom testiranom jeziku. Pri maksimalnom intenzitetu rezonovanja dostiže prosječnu stopu prolaznosti testova od 40,3%. Poboljšanja uključuju 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%). Ova poboljšanja ostvarena su uz procijenjeni prosječni trošak API-ja od 0,77 USD po uzorku, u poređenju s 3,48 USD za GPT‑5.6 Sol, što je približno 78% manje.
Na GitHubu(otvara se u novom prozoru) objavljujemo evaluacijsko okruženje i skup testova za MultiLangBench, zajedno s rezultatima za svaki jezik. Programeri mogu pogledati šta evaluacija provjerava, pregledati rezultate za jezike koje koriste i prepoznati nedostatke važne za vlastiti rad.
Naša druga evaluacija od modela traži da prenesu COBOL programe u C++, Javu, Kotlin, Python ili Rust uz očuvanje funkcionalnosti svakog programa.
Uspješna migracija zahtijeva razumijevanje i poslovne logike programa i specifičnog ponašanja jezika COBOL. COBOL programi često obrađuju finansijske transakcije i poslovne evidencije, pri čemu detalji poput pravila zaokruživanja i postupanja s nedostajućim zapisima odražavaju poslovne zahtjeve. Naprimjer, COBOL-ova aritmetika s fiksnim zarezom odbacuje suvišne decimalne cifre osim ako se zaokruživanje izričito ne zatraži. Prepisani kod koji umjesto toga zaokružuje te vrijednosti može raditi bez grešaka, a ipak davati drugačije finansijske rezultate.
Da bismo provjerili jesu li ova ponašanja očuvana, modele ocjenjujemo skrivenim testovima koji zahtijevaju podudaranje vidljivih izlaznih podataka bajt po bajt. Migracija se smatra uspješnom samo ako prođe sve testove. Ovakve mogućnosti očuvanja ponašanja korisne su timovima koji održavaju i modernizuju starije sisteme. Ipak, njihova primjena na softver u produkciji i dalje zahtijeva stručni pregled i testiranje u skladu s poslovnim pravilima i zavisnostima sistema.
Na ovoj evaluaciji GPT‑6.1 Sol postiže tačnost od 86,6% pri niskom intenzitetu rezonovanja, u poređenju s 5,4% za GPT‑5.6 Sol pri istoj postavci, uz samo 61% njegovog troška API-ja. Pri višem intenzitetu rezonovanja tačnost dostiže 97,9%, čime se približava gornjoj granici evaluacije. Ovi rezultati evaluacije pokazuju napredak prema tačnijoj i pristupačnijoj migraciji koda za timove koji modernizuju softver od kojeg zavisi njihovo poslovanje.
Ove evaluacije, zajedno s direktnim povratnim informacijama programera i poslovnih korisnika, pomažu nam da vidimo gdje naši modeli napreduju, a gdje još imaju nedostataka.
Naš cilj je pomoći modelima da primjenjuju vještine softverskog inženjerstva u više jezika: da razumiju nepoznate repozitorije, planiraju izmjene, koriste alate za izgradnju softvera, pokreću testove i otklanjaju greške.
Naše najnovije modele možete isprobati putem API-ja na programerskim zadacima u jezicima koje vaš tim koristi. Vaše povratne informacije o tome šta radi dobro, gdje modeli nailaze na poteškoće i na koje jezike ili radne procese se trebamo usmjeriti pomažu nam da oblikujemo obuku i evaluaciju modela kako bi bolje podržavali softver od kojeg zavisite.





