Tekoälyn parantaminen koodauskilpailujen ongelmien ratkaisemisessa

Tekoälyn parantaminen koodauskilpailujen ongelmien ratkaisemisessa

Haastatella Kaupallisten suurten kielimallien kykyä ratkaista kilpailevia ohjelmointiongelmia voidaan parantaa merkittävästi ohjaamalla sen prosesseja huolellisesti älykkäällä nopealla suunnittelulla.

Tämän osoittamiseksi Israelissa sijaitseva Codium AI rakensi AlphaCodiumin ja julkaistu ohjelmisto GitHubissa tässä kuussa. AlphaCodium ei sinänsä ole suuri kielimalli. Sen sijaan se on menetelmä, joka parantaa generatiivisten tekoälytyökalujen, kuten GPT-4:n, ongelmanratkaisukykyä käyttämällä sitä, mitä toimitusjohtaja Itamar Friedman kutsuu "virtaussuunnitteluksi".

Ensin ohjelmointikysymys syötetään taustalla olevaan laajaan kielimalliin, ja sitä pyydetään kuvaamaan ja tekemään yhteenveto ongelmasta. Nämä tiedot sitten ohjaavat, kuinka ongelman pitäisi alkaa ratkaista. AlphaCodium määrittelee asioita, kuten mitä tulojen ja lähtöjen tulee olla ratkaisua keksiessään. Kaikki tämä on määritelty luonnollisella kielellä.

Malli alkaa sitten luoda koodia, joka vastaa juuri kuvailtuja määrityksiä. Ohjelmointikilpailut, joissa kilpailijoita pyydetään koodaamaan spesifikaatioita, tarjoavat tyypillisesti testejä, jotka osoittavat, mitä skriptin pitäisi tuottaa tietylle tulolle. AlphaCodium luo lisää näitä testitapauksia ja suorittaa sitten mahdollisia ratkaisuja tarkistaakseen, toimiiko koodi odotetulla tavalla.

Jos se ei onnistu vastaamaan yhteenkään testissä määritellyistä lähtöistä, malli luo erilaisia ​​ratkaisuja, kunnes ne läpäisevät kaikki testit tai se epäonnistuu. Virheitä voi syntyä, jos sen koodi ei käänny tai se on vain väärä.

Voit nähdä virtauksen suunnitteluprosessin eri vaiheet alla olevasta kaaviosta. Se on suurelta osin jaettu esikäsittelyvaiheeseen, jossa järjestelmä analysoi ongelman luonnollisella kielellä, ja koodiiteraatiovaiheeseen, jossa se suorittaa mahdollisia ratkaisuja julkisia ja tekoälyn luomia testejä vastaan.

alfakodium

Kaikki laajat vaiheet, jotka ohjaavat AlphaCodiumia luomaan koodia ongelmien ratkaisemiseksi

"Emme ota ongelmaa vaan menemme malliin ja sanomme sille: 'Hei, luo lopullinen ratkaisu'", Friedman kertoi. Rekisteri. "Pyydämme mallia määrittelemään tämän ongelman uudelleen luettelopisteissä." Sen yksinkertaistaminen ja asioiden jakaminen osiin helpottaa mallin luomista myöhemmin koodin algoritmin eri osiin.

Pohjimmiltaan virtaussuunnittelu on prosessi, joka ohjaa mallin ongelmanratkaisuprosessia jakamalla sen hyvin määriteltyihin vaiheisiin. Meille kerrotaan, että sen kehottaminen "jakaa luotu koodi pieniin alitoimintoihin, joilla on merkitykselliset nimet ja toiminnot", johtaa vähemmän virheisiin ja tekee koodista helpomman testata ja korjata.

"Käytämme periaatteessa 95 prosenttia ajastamme virtaussuunnitteluun ja vain 5 prosenttia nopeaan suunnitteluun, emmekä muuttaneet kehotteita jokaisessa [vaiheessa]", Friedman lisäsi.

Codiumin insinöörit testasivat mallinsa suorituskykyä sadoissa ongelmissa, joita käytettiin Google DeepMindin kaksi vuotta sitten kokoaman CodeForces-tietojoukon varmistus- ja testiosissa. He väittävät, että AlphaCodium oli parempi ratkaisemaan koodausongelmia kuin Google DeepMindin AlphaCode- ja AlphaCode2-mallit.

ArXiv-julkaisussa raportoiduissa tuloksissa paperi [PDF], AlphaCodium pystyi vastaamaan oikein 44 prosenttiin kysymyksistä verrattuna AlphaCoden 24 prosenttiin, kun taas tuotti vain viisi ratkaisua AlphaCoden kymmeneen valittuun ratkaisuun verrattuna 107 validointiongelmaan. Mielenkiintoista on, että ero kaveni 165 testiongelmaan, joissa AlphaCodium ratkaisi 29 prosenttia verrattuna AlphaCoden 28 prosenttiin.

AlphaCode valitsee kymmenen lupaavimman ratkaisun kymmenistä tuhansista tai sadoista tuhansista luomistaan ​​mahdollisista komentosarjoista, mikä tekee sen suorittamisesta laskennallisesti intensiivistä.

"Keskityimme paljon enemmän koko testausvirtaan", Friedman sanoi. "[Google] teki niin paljon työtä sukupolven eteen. He yrittävät luoda satoja muita vaihtoehtoja, ja me luomme hyvin vähän ratkaisuja, mutta testaamme niitä todella hyvin ohjatakseen koodin parantamista.

AlphaCodium on hieman parempi kuin Google DeepMindin uusin AlphaCode2-malli, joka on 10,000 XNUMX kertaa tehokkaampi kuin edeltäjänsä AlphaCode, hän lisäsi.

alfakodium_2

Miten AlphaCodium vertautuu muihin huippuluokan malleihin tarkkuuden ja tehokkuuden suhteen

Friedman sanoi olevansa varma, että AlphaCodiumin suorituskyky ei johdu tietovuodosta, jossa taustalla oleva malli on koulutettu ja testattu samoihin ongelmiin. AlphaCodiumia käyttävää GPT-4-versiota opetettiin internetistä kaavitulla tekstillä syyskuuhun 2021 asti, kun taas ongelmat, joissa se testasi järjestelmää, on otettu edellä mainitusta CodeForces-tietojoukosta, joka julkaistiin paljon myöhemmin.

Parempi omenoista omenaan -vertailu, joka arvioi virtaussuunnitteluprosessia, on kuitenkin GPT-4:n kyky ratkaista samat kysymykset AlphaCodiumin kanssa ja ilman. Tavallinen vanha GPT-4 pystyi vastaamaan oikein vain 19 ja 12 prosenttiin validointi- ja testisarjojen ongelmista, verrattuna AlphaCodium-käyttöisen muunnelman 44 ja 29 prosenttiin.

Lyhyesti sanottuna näyttää siltä, ​​että varovaisen putkilinjan toteuttaminen, joka tuottaa lisädataa koodin luomisen ohjaamiseksi ja testausprosessin parantamiseksi, voi olla tehokkaampaa kuin suuren kielimallin opettaminen tyhjästä.

Codium julkaisi äskettäin uuden työkalun tukemaan Python-kehittäjiä, jotka voivat nyt soittaa AlphaCodiumille ratkaistakseen suoraan IDE:n koodausongelman. Voit leikkiä sillä tässä. ®

Aikaleima:

Lisää aiheesta Rekisteri