Malliemme viimeisimmät edistysaskeleet parantavat valmiuksia kehittää ja siirtää ohjelmistoja ohjelmointikielillä, joista on vähän koulutusaineistoa, kuten COBOL, Fortran ja Visual Basic. Näistä kielistä on mallien opittavaksi saatavilla vähemmän koodia ja dokumentaatiota kuin esimerkiksi Pythonista ja JavaScriptistä. Silti niiden varassa toimii kriittistä infrastruktuuria ja välttämättömiä palveluja ympäri maailmaa. COBOLin varassa toimii(avautuu uudessa ikkunassa) yli 40 % verkkopankkijärjestelmistä, 80 % paikan päällä tehdyistä luottokorttitapahtumista ja 95 % pankkiautomaattitapahtumista. Fortrania puolestaan käytetään sääennusteissa(avautuu uudessa ikkunassa) ja ydinreaktorien turvallisuusanalyyseissä(avautuu uudessa ikkunassa). Tekoälyn paremmat valmiudet käyttää näitä kieliä voisivat auttaa tiimejä ylläpitämään ja uudistamaan ohjelmistoja, joista välttämättömät palvelut ovat riippuvaisia.
Tätä työtä ohjaa kehittäjiltä ja yritysasiakkailta saatu palaute: heidän mukaansa koodausmalleilla on usein vaikeuksia näiden kielten kanssa. Näiden ohjelmistojen ylläpito ja uudistaminen voi olla vaikeaa: dokumentaatio saattaa olla puutteellista, alkuperäiset kehittäjät ovat voineet lähteä yrityksestä ja tärkeitä liiketoimintasääntöjä voi olla kirjattuna vain koodiin. Korjaavatpa tiimit virheitä tai siirtävät ohjelmistoja toiselle kielelle, niiden on säilytettävä toimintatavat, joista järjestelmät ovat riippuvaisia.
Kehitimme edistymisen mittaamiseen kaksi arviointia. MultiLangBench testaa, pystyykö malli rakentamaan SQLite-yhteensopivan tietokantamoottorin alusta asti 20 eri ohjelmointikielellä. COBOL-migraatioarviointimme testaa, pystyykö malli siirtämään olemassa olevia ohjelmia toiselle kielelle säilyttäen niiden toiminnan ennallaan. Yhdessä ne testaavat kahta toisiaan täydentävää taitoa: uusien ohjelmistojen rakentamista ja olemassa olevien ohjelmistojen toiminnan säilyttämistä.
Uusimmat mallimme suoriutuvat molemmista arvioinneista huomattavasti aiempaa paremmin: tarkkuus on paljon korkeampi ja kustannukset pienemmät.
MultiLangBenchissä GPT‑6 Astra saavuttaa 20 ohjelmointikielellä keskimäärin 87,4 %:n testien läpäisyasteen, kun GPT‑5.6 Solin tulos on 26,8 %. Parannusta on jokaisessa testatussa kielessä. Myös GPT‑6 Luna suoriutuu GPT‑5.6 Solia paremmin: sen läpäisyaste on 40,3 % ja arvioidut API-kustannukset noin 78 % pienemmät.
COBOL-migraatioarvioinnissamme GPT‑6.1 Sol saavuttaa matalalla päättelyn tasolla 86,6 %:n tarkkuuden, kun GPT‑5.6 Solin tarkkuus on vain 5,4 %. Samalla kustannukset ovat 39 % pienemmät. Korkeammalla päättelyn tasolla tarkkuus nousee 97,9 %:iin eli lähes arvioinnin enimmäistulokseen.
Yhdessä nämä tulokset osoittavat, että mallimme osaavat käyttää yhä useampia ohjelmointikieliä merkittävästi aiempaa paremmin ja samalla kustannustehokkaammin.
MultiLangBenchissä mallia pyydetään rakentamaan SQLite-yhteensopiva tietokantamoottori määrätyllä ohjelmointikielellä. Mallin on jäsenneltävä koodikanta, hallittava tilaa, käsiteltävä virheitä ja lisättävä uusia ominaisuuksia niin, että aiemmat toiminnot säilyvät.
Käytämme tietokantatiedostoja yhteisenä rajapintana, jotta voimme vertailla eri kielillä tehtyjä toteutuksia. Arvioitava ohjelma saa lähtötietokannan ja SQL-kyselyn ja tuottaa niiden pohjalta muokatun tietokannan. Tarkistamme SQLiten vertailutoteutuksella, onko tuloksena syntyvän tietokannan sisältö odotusten mukainen. Näin voimme käyttää samoja testejä riippumatta siitä, millä kielellä moottori on rakennettu.
Muokkasimme SQLiten olemassa olevan testikokonaisuuden testejä tähän muotoon. Arviointi mittaa, kuinka paljon toimivaa ohjelmistoa malli pystyy rakentamaan pitkän koodausistunnon aikana. Se raportoi sekä testien läpäisyasteen että API-kustannukset.
Päättelyn enimmäistasolla GPT‑6 Astra saavuttaa 20 kielellä keskimäärin 87,4 %:n testien läpäisyasteen, kun GPT‑5.6 Solin tulos on 26,8 %. Tulokset paranevat jokaisessa testatussa kielessä, muun muassa COBOLissa (10,9 %:sta 72,1 %:iin), OCamlissa (25,6 %:sta 85,8 %:iin), Fortranissa (21,4 %:sta 83,5 %:iin) ja Visual Basicissa (27,5 %:sta 89,4 %:iin). Astran tulos ylittää 83 % kaikkiaan 19 kielessä 20:stä. Vaikeimmaksi jää COBOL, jossa tulos on 72 %.
GPT‑6 Luna on edullisempi vaihtoehto, joka sekin suoriutuu GPT‑5.6 Solia paremmin jokaisessa testatussa kielessä. Päättelyn enimmäistasolla sen keskimääräinen testien läpäisyaste on 40,3 %. Tulokset paranevat muun muassa COBOLissa (10,9 %:sta 17,1 %:iin), OCamlissa (25,6 %:sta 34,1 %:iin), Fortranissa (21,4 %:sta 31,4 %:iin) ja Visual Basicissa (27,5 %:sta 41,6 %:iin). Nämä parannukset saavutetaan arviolta keskimäärin 0,77 dollarin API-kustannuksilla suoritusta kohden, kun GPT‑5.6 Solin vastaava kustannus on 3,48 dollaria. Kustannukset ovat siis noin 78 % pienemmät.
Julkaisemme MultiLangBenchin arviointiasetelman ja testikokonaisuuden GitHubissa(avautuu uudessa ikkunassa) sekä kielikohtaiset tulokset. Kehittäjät voivat tutustua siihen, mitä arviointi testaa, tarkastella tuloksia käyttämissään kielissä ja tunnistaa oman työnsä kannalta olennaiset puutteet.
Toisessa arvioinnissamme malleja pyydetään siirtämään COBOL-ohjelmia C++-, Java-, Kotlin-, Python- tai Rust-kielelle niin, että kunkin ohjelman toiminta säilyy ennallaan.
Onnistunut migraatio edellyttää sekä ohjelman liiketoimintalogiikan että COBOL-kielen toiminnan erityispiirteiden ymmärtämistä. COBOL-ohjelmat käsittelevät usein rahansiirtoja ja liiketoiminnan tietueita, joissa esimerkiksi pyöristyssäännöt ja puuttuvien tietueiden käsittely perustuvat liiketoiminnan vaatimuksiin. Esimerkiksi COBOLin kiinteän pilkun laskenta hylkää ylimääräiset desimaalit, ellei pyöristystä erikseen pyydetä. Uudelleenkirjoitettu ohjelma, joka sen sijaan pyöristää nämä arvot, voi toimia ilman virheitä mutta tuottaa erilaisia taloudellisia tuloksia.
Testaamme näiden toimintatapojen säilymistä malleilta piilotetuilla testeillä, joissa havaittavien tulosteiden on vastattava alkuperäisiä tavu tavulta. Migraatio katsotaan onnistuneeksi vain, jos kaikki testit läpäistään. Tällaiset valmiudet säilyttää ohjelman toiminta ennallaan ovat hyödyllisiä vanhoja järjestelmiä ylläpitäville ja uudistaville tiimeille. Niiden soveltaminen tuotanto-ohjelmistoihin edellyttää silti asiantuntijoiden tarkastusta sekä testausta järjestelmän liiketoimintasääntöjä ja riippuvuuksia vasten.
Tässä arvioinnissa GPT‑6.1 Sol saavuttaa matalalla päättelyn tasolla 86,6 %:n tarkkuuden, kun GPT‑5.6 Solin tarkkuus samalla asetuksella on 5,4 %. API-kustannukset ovat vain 61 % GPT‑5.6 Solin kustannuksista. Korkeammalla päättelyn tasolla tarkkuus nousee 97,9 %:iin eli lähelle arvioinnin enimmäistulosta. Nämä arviointitulokset osoittavat edistystä kohti tarkempia ja edullisempia koodimigraatioita tiimeille, jotka uudistavat liiketoimintansa kannalta välttämättömiä ohjelmistoja.
Nämä arvioinnit sekä kehittäjiltä ja yritysasiakkailta saatu suora palaute auttavat meitä näkemään, missä mallimme kehittyvät ja missä niillä on vielä puutteita.
Tavoitteemme on auttaa malleja soveltamaan ohjelmistokehitystaitojaan yhä useammalla kielellä: ymmärtämään ennestään tuntemattomia repositorioita, suunnittelemaan muutoksia, käyttämään koontityökaluja, ajamaan testejä sekä etsimään ja korjaamaan virheitä.
Voit kokeilla uusimpia mallejamme API:n kautta koodaustehtävissä niillä kielillä, joita tiimisi käyttää. Palautteesi siitä, mikä toimii, missä malleilla on vaikeuksia ja mihin kieliin tai työnkulkuihin meidän tulisi seuraavaksi keskittyä, ohjaa malliemme koulutusta ja arviointia. Näin ne voivat tukea paremmin ohjelmistoja, joista olet riippuvainen.





