Gjør AI bedre til å løse problemer i kodekonkurranser

Gjør AI bedre til å løse problemer i kodekonkurranser

Intervju Kommersielle store språkmodellers evner til å løse konkurrerende programmeringsproblemer kan økes betraktelig ved å nøye veilede prosessene gjennom smart, rask utvikling.

For å demonstrere dette bygde Codium AI, basert i Israel, AlphaCodium og utgitt programvaren på GitHub denne måneden. AlphaCodium er ikke en stor språkmodell i seg selv. I stedet er det en metode som forbedrer problemløsningsevnen til generative AI-verktøy som GPT-4 ved å bruke det administrerende direktør Itamar Friedman kaller «flow engineering».

Først mates et programmeringsspørsmål til den underliggende store språkmodellen, og den blir bedt om å beskrive og oppsummere problemet. Den informasjonen veileder deretter hvordan den skal begynne å løse problemet. AlphaCodium definerer ting, som hva inngangene og utgangene skal være, når de kommer opp med en løsning. Alt dette er spesifisert på naturlig språk.

Modellen begynner deretter å generere kode som stemmer overens med spesifikasjonene den nettopp beskrev. Programmeringskonkurranser som ber deltakere om å kode til spesifikasjoner, gir vanligvis tester som viser hva et skript skal sende ut for en gitt inngang. AlphaCodium genererer flere av disse testsakene, og deretter kjører den gjennom mulige løsninger for å sjekke om koden fungerer som forventet.

Hvis den ikke klarer å matche noen av utgangene som er definert i noen av testene, genererer modellen forskjellige løsninger til de består alle testene eller den mislykkes. Det kan oppstå feil når koden ikke kompileres eller bare er feil.

Du kan se de forskjellige trinnene i flytteknikkprosessen i diagrammet nedenfor. Det er i stor grad delt inn i en forhåndsbehandlingsfase, hvor systemet analyserer problemet på naturlig språk, og et kodeiterasjonsstadium, hvor det kjører mulige løsninger mot offentlige og AI-genererte tester.

alfakodium

Alle de brede trinnene som veileder AlphaCodium til å generere kode for å løse problemer

"Vi tar ikke problemet og går til modellen og forteller den," Hei, vennligst generer den endelige løsningen," sa Friedman Registeret. "Vi ber modellen om å omdefinere dette problemet i punkttegn." Å forenkle det og dele ting opp i biter gjør det lettere for modellen å senere generere kode for ulike deler av en algoritme.

I hovedsak er flytteknikk en prosedyre som styrer modellens problemløsningsprosess ved å dele den opp i veldefinerte trinn. Å be den om å "dele den genererte koden inn i små underfunksjoner, med meningsfulle navn og funksjonalitet," blir vi fortalt, fører til færre feil og gjør koden lettere å teste og fikse.

"Vi brukte i utgangspunktet 95 prosent av tiden vår på flow engineering, og bare 5 prosent på prompt engineering, og vi endret ikke ledetekstene for hvert [trinn]," la Friedman til.

Ingeniører fra Codium testet modellens ytelse på hundrevis av problemer som ble brukt i verifiserings- og testdelene av CodeForces-datasettet kompilert av Google DeepMind for to år siden. De hevder at AlphaCodium var bedre til å løse kodeproblemer enn Google DeepMinds AlphaCode- og AlphaCode2-modeller.

I resultater rapportert i en arXiv papir [PDF], AlphaCodium var i stand til å svare riktig på 44 prosent av spørsmålene sammenlignet med AlphaCodes 24 prosent, mens de genererte bare fem løsninger sammenlignet med AlphaCodes ti valgte løsninger for 107 valideringsproblemer. Interessant nok ble gapet mindre når det kom til 165 testproblemer med AlphaCodium som løste 29 prosent sammenlignet med AlphaCodes 28 prosent.

AlphaCode velger de ti mest lovende løsningene av titusenvis eller hundretusenvis av mulige skript den genererer – noe som gjør den beregningsintensiv å kjøre.

"Vi fokuserte mye mer på hele testflyten," sa Friedman. «For [Google] gjorde de så mye arbeid med generasjonen. De prøver å generere hundrevis av andre alternativer, og vi genererer svært få løsninger, men tester dem veldig godt for å veilede forbedringen av koden."

AlphaCodium er litt bedre enn Google DeepMinds nyeste AlphaCode2-modell som er 10,000 XNUMX ganger mer effektiv enn forgjengeren AlphaCode, la han til.

alfakodium_2

Hvordan AlphaCodium sammenligner med andre toppmoderne modeller når det gjelder nøyaktighet og effektivitet

Friedman sa at han var sikker på at AlphaCodiums ytelse ikke skyldes datalekkasje, der den underliggende modellen har blitt trent og testet på de samme problemene. GPT-4-versjonen som driver AlphaCodium ble trent på tekst skrapet fra internett frem til september 2021, mens problemene den testet systemet på ble hentet fra det nevnte CodeForces-datasettet som ble utgitt mye senere.

En bedre epler-til-eple-sammenligning som vurderer flytteknikkprosessen, er imidlertid å se på GPT-4s evne til å løse de samme spørsmålene med og uten å bruke AlphaCodium. Vanlig gammel GPT-4 kunne bare svare riktig på 19 og 12 prosent av problemene i henholdsvis validerings- og testsettene, sammenlignet med den AlphaCodium-drevne variantens 44 og 29 prosent.

Kort fortalt ser det ut til at det å implementere en forsiktig pipeline som genererer tilleggsdata for å veilede hvordan kode genereres og forbedre testprosessen kan være mer effektivt enn å prøve å trene en stor språkmodell fra bunnen av.

Codium lanserte nylig et nytt verktøy for å støtte Python-utviklere, som nå kan ringe AlphaCodium for å løse et kodeproblem direkte i deres IDE. Du kan leke med den her. ®

Tidstempel:

Mer fra Registeret