Onderzoekers van de Carnegie Mellon University hebben PolyCoder uitgebracht, een geautomatiseerd codegeneratormodel dat is getraind in twaalf verschillende programmeertalen, waarvan ze zeggen dat het bijzonder goed is in het schrijven van code in C.
Bron: ZDNet
De onderzoekers hopen dat hun open source PolyCoder onderzoek kan democratiseren op het gebied van AI-codegeneratie, dat tot nu toe wordt gedomineerd door goed gefinancierde bedrijven zoals DeepMind en OpenAI, eigendom van Alphabet.
“Grote taalmodellen (LM’s) van code hebben onlangs een enorme belofte getoond bij het voltooien van code en het synthetiseren van code uit natuurlijke taalbeschrijvingen. De huidige state-of-the-art code-LM’s… zijn echter niet publiekelijk beschikbaar, waardoor veel vragen over hun model- en data-ontwerpbeslissingen”, aldus de onderzoekers.
Het idee achter het automatisch genereren van code is dat het ontwikkelaars tijd kan besparen, ervan uitgaande dat de uitvoer nauwkeurig is en geen beveiligingsfouten introduceert. DeepMind beweerde dat zijn onlangs onthulde AlphaCode-codegenerator in de top 54,3% van de menselijke deelnemers aan programmeerwedstrijden stond. Maar het trainen van het model vereiste “honderden petaFLOPS dagen” in de datacenters van Google.
“Ondanks het grote succes van grote taalmodellen van code, zijn de sterkste modellen niet publiekelijk beschikbaar”, merken de onderzoekers op. “Dit voorkomt de toepassing van deze modellen buiten goed uitgeruste bedrijven en beperkt onderzoek op dit gebied voor organisaties met weinig middelen.” Om dit op te lossen hebben de onderzoekers hun eigen model ontwikkeld dat is getraind op code uit meerdere programmeertalen die ze “PolyCoder” hebben genoemd.
De onderzoekers legden uit: “We brengen een nieuw model uit, PolyCoder, met 2,7B parameters op basis van de GPT-2-architectuur, dat is getraind op 249 GB aan code in 12 programmeertalen op een enkele machine. In de programmeertaal C presteert PolyCoder beter dan alle modellen inclusief Codex.”
Het model is getraind op gegevens uit verschillende repositories van GitHub, die 12 populaire programmeertalen omvatten: C, C#, C++, Go, Java, JavaScript, PHP, Python, Ruby, Rust, Scala en TypeScript. De ongefilterde dataset omvatte in totaal 631 GB aan data en 38,9 miljoen bestanden. Om PolyCoder te trainen, kozen de onderzoekers GPT-2 ook vanwege budgetbeperkingen.
De onderzoekers claimden enkele succesgebieden, met name in C. Codex overtroefde het echter nog steeds in andere talen.
“Met name presteert PolyCoder beter dan Codex en alle andere modellen in de C-taal. Als we alleen de open-sourcemodellen vergelijken, presteert PolyCoder beter dan de GPT-Neo 2.7B van vergelijkbare grootte in C, JavaScript, Rust, Scala en TypeScript”, merken de onderzoekers op. .
“In de andere 11 andere talen dan C zijn alle andere open-sourcemodellen, inclusief de onze, aanzienlijk slechter (hogere verwarring) dan Codex.