Îmbunătățirea AI în rezolvarea problemelor în competițiile de codificare

Îmbunătățirea AI în rezolvarea problemelor în competițiile de codificare

Interviu Abilitățile modelelor comerciale de limbaje mari de a rezolva problemele de programare competitive pot fi stimulate semnificativ prin ghidarea cu atenție a proceselor sale printr-o inginerie inteligentă promptă.

Pentru a demonstra acest lucru, Codium AI, cu sediul în Israel, a construit AlphaCodium și eliberat software-ul de pe GitHub luna aceasta. AlphaCodium nu este un model de limbaj mare în sine. În schimb, este o metodă care îmbunătățește abilitățile de rezolvare a problemelor ale instrumentelor AI generative precum GPT-4, folosind ceea ce CEO-ul Itamar Friedman numește „ingineria fluxului”.

În primul rând, o întrebare de programare este transmisă modelului de limbaj mare subiacent și i se cere să descrie și să rezume problema. Aceste informații ghidează apoi modul în care ar trebui să înceapă să rezolve problema. AlphaCodium definește lucruri, cum ar fi ceea ce ar trebui să fie intrările și ieșirile, atunci când vine cu o soluție. Toate acestea sunt specificate în limbaj natural.

Modelul începe apoi să genereze cod care se aliniază cu specificațiile pe care tocmai le-a descris. Competițiile de programare care le cer concurenților să codeze conform specificațiilor oferă de obicei teste care arată ce ar trebui să iasă un script pentru o anumită intrare. AlphaCodium generează mai multe dintre aceste cazuri de testare și apoi rulează soluții posibile pentru a verifica dacă codul funcționează conform așteptărilor.

Dacă nu reușește să se potrivească cu niciuna dintre ieșirile definite în niciunul dintre teste, modelul generează diferite soluții până când trec toate testele sau nu reușește. Pot apărea erori atunci când codul său nu se compila sau este pur și simplu greșit.

Puteți vedea diferiții pași ai procesului de inginerie a fluxului în diagrama de mai jos. Este împărțit în mare parte într-o fază de preprocesare, în care sistemul analizează problema în limbaj natural și o etapă de iterare a codului, în care rulează soluții posibile împotriva testelor publice și generate de AI.

alfacodiu

Toți pașii largi care ghidează AlphaCodium în generarea de cod pentru a rezolva probleme

„Nu luăm problema și mergem la model și îi spunem: „Hei, te rog să generăm soluția finală”, a spus Friedman. Registrul. „Solicităm modelului să redefinească această problemă în puncte.” Simplificarea acestuia și împărțirea lucrurilor în bucăți face ca modelul să genereze mai târziu cod mai ușor pentru diferite părți ale unui algoritm.

În esență, ingineria fluxului este o procedură care ghidează procesul de rezolvare a problemelor modelului, împărțindu-l în pași bine definiți. Îndemnarea acestuia să „împartă codul generat în sub-funcții mici, cu nume și funcționalități semnificative”, ni se spune, duce la mai puține erori și face codul mai ușor de testat și remediat.

„Practic, ne-am petrecut 95% din timp pe inginerie de flux și doar 5% pe inginerie promptă și nu am schimbat solicitările pentru fiecare [pas]”, a adăugat Friedman.

Inginerii de la Codium au testat performanța modelului lor pe sute de probleme utilizate în părțile de verificare și testare ale setului de date CodeForces compilat de Google DeepMind în urmă cu doi ani. Ei susțin că AlphaCodium a fost mai bun la rezolvarea problemelor de codare decât modelele AlphaCode și AlphaCode2 de la Google DeepMind.

În rezultatele raportate într-un arXiv hârtie [PDF], AlphaCodium a reușit să răspundă corect la 44% dintre întrebări, comparativ cu 24% ale AlphaCode, generând în același timp doar cinci soluții în comparație cu cele zece soluții alese de AlphaCode pentru 107 probleme de validare. Interesant este că decalajul s-a redus când a fost vorba de 165 de probleme de testare, AlphaCodium rezolvând 29%, comparativ cu AlphaCode de 28%.

AlphaCode selectează cele mai promițătoare zece soluții din zeci de mii sau sute de mii de scripturi posibile pe care le generează, ceea ce face ca rularea să fie intensivă din punct de vedere al calculului.

„Ne-am concentrat mult mai mult pe întregul flux de testare”, a spus Friedman. „Pentru [Google], au lucrat atât de mult asupra generației. Ei încearcă să genereze sute de alte opțiuni și noi generăm foarte puține soluții, dar le testează foarte bine pentru a ghida îmbunătățirea codului.”

AlphaCodium este puțin mai bun decât cel mai recent model AlphaCode2 al Google DeepMind, care este de 10,000 de ori mai eficient decât predecesorul său AlphaCode, a adăugat el.

alfacodium_2

Cum se compară AlphaCodium cu alte modele de ultimă generație în ceea ce privește acuratețea și eficiența

Friedman a spus că este încrezător că performanța AlphaCodium nu se datorează scurgerii de date, unde modelul de bază a fost antrenat și testat pe aceleași probleme. Versiunea GPT-4 care alimentează AlphaCodium a fost instruită pe text răzuit de pe internet până în septembrie 2021, în timp ce problemele pe care și-a testat sistemul au fost preluate din setul de date CodeForces menționat mai sus, care a fost lansat mult mai târziu.

O comparație mai bună de la mere la mere care evaluează procesul de inginerie a fluxului, totuși, se uită la capacitatea GPT-4 de a rezolva aceleași întrebări cu și fără aplicarea AlphaCodium. GPT-4 vechi simplu a putut răspunde corect doar la 19 și, respectiv, 12 la sută din problemele din seturile de validare și, respectiv, de testare, în comparație cu varianta alimentată cu AlphaCodium de 44 și 29 de procente.

Pe scurt, se pare că implementarea unui pipeline atent care generează date suplimentare pentru a ghida modul în care este generat codul și pentru a îmbunătăți procesul de testare poate fi mai eficientă decât încercarea de a antrena de la zero un model de limbaj mare.

Codium a lansat recent un nou instrument pentru a sprijini dezvoltatorii Python, care acum pot apela AlphaCodium pentru a rezolva direct o problemă de codare în IDE-ul lor. Te poți juca cu el Aici. ®

Timestamp-ul:

Mai mult de la Registrul