A mesterséges intelligencia javítása a kódolási versenyek problémáinak megoldásában

A mesterséges intelligencia javítása a kódolási versenyek problémáinak megoldásában

Interjú A kereskedelmi nagynyelvi modellek versenyképes programozási problémák megoldására való képessége jelentősen javítható, ha ügyes, gyors tervezéssel gondosan irányítják a folyamatokat.

Ennek demonstrálására az izraeli székhelyű Codium AI megépítette az AlphaCodiumot és felszabaduló a szoftver ebben a hónapban a GitHubon. Az AlphaCodium önmagában nem egy nagy nyelvi modell. Ehelyett ez egy olyan módszer, amely javítja a generatív mesterséges intelligencia eszközök, például a GPT-4 problémamegoldó képességeit azáltal, hogy Itamar Friedman vezérigazgató által „flow engineering”-nek nevezett módszert alkalmazza.

Először egy programozási kérdést táplálunk be a mögöttes nagy nyelvi modellbe, és felkérjük a probléma leírására és összefoglalására. Ezek az információk aztán útmutatást nyújtanak a probléma megoldásához. Az AlphaCodium meghatározza a dolgokat, például, hogy milyen bemeneteknek és kimeneteknek kell lenniük, amikor megoldást találnak ki. Mindez természetes nyelven van megadva.

A modell ezután elkezdi generálni a kódot, amely megfelel az imént leírt specifikációknak. Azok a programozási versenyek, amelyekben a versenyzőket specifikáció kódolására kérik fel, általában teszteket biztosítanak, amelyek megmutatják, hogy egy szkriptnek mit kell kiadnia egy adott bemenethez. Az AlphaCodium több ilyen tesztesetet generál, majd lefut a lehetséges megoldásokon, hogy ellenőrizze, hogy a kód megfelelően működik-e.

Ha egyik tesztben sem sikerül egyeznie a kimenetek egyikével sem, a modell különböző megoldásokat generál mindaddig, amíg az összes teszten átmennek, vagy meghiúsul. Hibák akkor fordulhatnak elő, ha a kódja nem fordítódik le, vagy egyszerűen hibás.

Az alábbi diagramon láthatja az áramlástervezési folyamat különböző lépéseit. Ez nagyrészt egy előfeldolgozási fázisra oszlik, ahol a rendszer természetes nyelven elemzi a problémát, és egy kóditerációs szakaszra, ahol lehetséges megoldásokat futtat le nyilvános és mesterséges intelligencia által generált tesztekkel szemben.

alphacodium

Az összes olyan átfogó lépés, amely az AlphaCodiumot a problémák megoldásához szükséges kód generálásához vezeti

„Nem fogjuk fel a problémát, hanem odamegyünk a modellhez, és azt mondjuk neki: „Hé, kérem, készítse el a végső megoldást” – mondta Friedman. A regisztráció. "Arra kérjük a modellt, hogy definiálja újra ezt a problémát pontokban." Az egyszerűsítés és a dolgok darabokra bontása megkönnyíti a modell számára, hogy később kódot generáljon az algoritmus különböző részeihez.

Az áramlástechnika lényegében egy olyan eljárás, amely jól meghatározott lépésekre bontva irányítja a modell problémamegoldási folyamatát. Ha arra kéri, hogy „a generált kódot apró alfüggvényekre ossza fel, értelmes nevekkel és funkciókkal”, azt mondják, kevesebb hibát okoz, és könnyebbé teszi a kód tesztelését és javítását.

"Alapvetően az időnk 95 százalékát töltöttük áramlástechnikával, és csak 5 százalékát azonnali tervezéssel, és nem változtattunk minden egyes lépésnél" - tette hozzá Friedman.

A Codium mérnökei modelljük teljesítményét a Google DeepMind által két évvel ezelőtt összeállított CodeForces adatkészlet ellenőrzési és tesztrészei során használt problémák százaival tesztelték. Azt állítják, hogy az AlphaCodium jobb volt a kódolási problémák megoldásában, mint a Google DeepMind AlphaCode és AlphaCode2 modelljei.

Az arXiv-ben közölt eredményekben papír [PDF], az AlphaCodium a kérdések 44 százalékát tudta helyesen megválaszolni, szemben az AlphaCode 24 százalékával, miközben mindössze öt megoldást generált az AlphaCode tíz választott megoldásához képest 107 érvényesítési problémára. Érdekes módon a különbség csökkent, amikor 165 tesztproblémáról volt szó, amelyeknél az AlphaCodium 29 százalékot oldott meg, szemben az AlphaCode 28 százalékával.

Az AlphaCode kiválasztja a tíz legígéretesebb megoldást a több tízezer vagy több százezer általa generált lehetséges szkript közül – így a futtatása számításigényes.

"Sokkal inkább a tesztelés teljes folyamatára összpontosítottunk" - mondta Friedman. „A [Google] nagyon sokat dolgozott a generáción. Több száz egyéb lehetőséget próbálnak létrehozni, mi pedig nagyon kevés megoldást generálunk, de nagyon jól teszteljük őket, hogy irányítsák a kód fejlesztését.”

Az AlphaCodium egy kicsivel jobb, mint a Google DeepMind legújabb AlphaCode2 modellje, amely 10,000 XNUMX-szer hatékonyabb, mint elődje, az AlphaCode - tette hozzá.

alphacodium_2

Hogyan viszonyul az AlphaCodium a többi csúcstechnológiás modellhez a pontosság és a hatékonyság tekintetében

Friedman azt mondta, biztos benne, hogy az AlphaCodium teljesítménye nem az adatszivárgásnak köszönhető, mivel az alapul szolgáló modellt ugyanazokon a problémákon betanították és tesztelték. Az AlphaCodiumot működtető GPT-4 verziót 2021 szeptemberéig az internetről lekapart szövegre képezték, míg a problémák, amelyeken a rendszerét tesztelték, a fent említett CodeForces adatkészletből származtak, amelyet jóval később adtak ki.

Egy jobb alma-alma összehasonlítás azonban, amely felméri az áramlástervezési folyamatot, azt vizsgálja, hogy a GPT-4 képes-e megoldani ugyanezeket a kérdéseket AlphaCodium alkalmazásával és anélkül. A sima régi GPT-4 csak a problémák 19 és 12 százalékát tudta helyesen megválaszolni az érvényesítési és tesztkészletekben, míg az AlphaCodium-motoros változat 44 és 29 százalékát.

Röviden, úgy tűnik, hogy egy gondos folyamat megvalósítása, amely további adatokat generál a kód létrehozásának útmutatása és a tesztelési folyamat javítása érdekében, hatékonyabb lehet, mintha egy nagy nyelvi modellt a semmiből próbálnánk betanítani.

A Codium nemrégiben kiadott egy új eszközt a Python fejlesztők támogatására, akik mostantól hívhatják az AlphaCodiumot, hogy közvetlenül megoldják egy kódolási problémát az IDE-ben. Játszhatsz vele itt. ®

Időbélyeg:

Még több A regisztráció