Google onthult AlphaCode 2, mogelijk gemaakt door Gemini

Google onthult AlphaCode 2, mogelijk gemaakt door Gemini

Naast het generatieve AI-model Gemini heeft Google vanochtend de laatste hand gelegd aan AlphaCode 2, een verbeterde versie van de codegenererende AlphaCode die ongeveer een jaar geleden door het DeepMind-lab van Google werd geïntroduceerd.

AlphaCode 2 wordt in feite mogelijk gemaakt door Gemini, of op zijn minst een variant daarvan (Gemini Pro), verfijnd op het gebied van codeerwedstrijdgegevens. En het is veel capabeler dan zijn voorganger, zegt Google – tenminste op één benchmark.

In een subset van programmeerwedstrijden die worden gehost op Codeforces, een platform voor programmeerwedstrijden, presteerde AlphaCode 2 – coderend in talen van Python, Java, C++ en Go – volgens Google gemiddeld beter dan naar schatting 85% van de concurrenten. Dat is vergeleken met de ongeveer 50% van de concurrenten die zijn voorganger op dezelfde subset het beste wist te bereiken.



We selecteerden 12 recente wedstrijden met ruim 8.000 deelnemers, hetzij uit divisie 2, hetzij uit de moeilijkere divisie ‘1+2’. Dit levert in totaal 77 problemen op, zo staat in een technische whitepaper over AlphaCode 2. AlphaCode 2 lost 43% van de problemen op binnen 10 pogingen, bijna twee keer zoveel problemen als de originele AlphaCode (25%).

AlphaCode 2 kan programmeeruitdagingen begrijpen die gepaard gaan met complexe wiskundige en theoretische informatica. En naast andere redelijk geavanceerde technieken is AlphaCode 2 in staat tot dynamisch programmeren, legt DeepMind-onderzoeker Rémi Leblond uit in een vooraf opgenomen video.

Dynamisch programmeren houdt in dat een complex probleem wordt vereenvoudigd door het steeds opnieuw op te splitsen in eenvoudiger deelproblemen; Leblond zegt dat AlphaCode 2 het niet alleen weet wanneer om deze strategie goed uit te voeren, maar waar om het te gebruiken. Dat is opmerkelijk, aangezien programmeerproblemen die dynamisch programmeren vereisen een grote struikelblok waren voor de originele AlphaCode.

Alfacode 2

Beeldcredits: Googlen

[AlphaCode 2] moet een bepaald niveau van begrip, een bepaald niveau van redeneren en ontwerpen van codeoplossingen tonen voordat het tot de daadwerkelijke implementatie kan komen om [een] coderingsprobleem op te lossen, zei Leblond. En het doet dat allemaal bij problemen die het nog nooit eerder heeft gezien.

AlphaCode 2 lost problemen op door eerst een familie van beleidsmodellen aan te boren die voor elk probleem een ​​aantal codevoorbeelden genereren. Codevoorbeelden die niet aan de probleembeschrijving voldoen, worden eruit gefilterd, en een clusteralgoritme groepeert semantisch vergelijkbare codevoorbeelden om redundanties te voorkomen. Ten slotte brengt een scoremodel binnen AlphaCode 2 de beste kandidaat naar voren uit elk van de 10 grootste clusters van codevoorbeelden – wat het antwoord van AlphaCode 2 op het probleem vormt.

Nu hebben alle AI-modellen gebreken – en AlphaCode 2 is daarop geen uitzondering. Volgens de whitepaper vereist AlphaCode 2 veel vallen en opstaan, is het te duur om op grote schaal te opereren en is het sterk afhankelijk van de mogelijkheid om duidelijk slechte codevoorbeelden eruit te filteren. Migreren naar een meer capabele versie van Gemini, zoals Gemini Ultra, zou een deel hiervan kunnen verzachten, speculeert de whitepaper.

Wat betreft de vraag of we kunnen verwachten dat AlphaCode 2 ooit een product zal bereiken – AlphaCode is nooit uitgebracht – zinspeelde Eli Collins, VP product bij DeepMind, in een briefing op de mogelijkheid.

Een van de dingen die ik het meest opwindend vond aan de nieuwste resultaten is dat wanneer programmeurs samenwerken met [AlphaCode 2 powered by] Gemini, door bepaalde eigenschappen te definiëren voor de te volgen code, de prestaties [van het model] nog beter worden, Collins gezegd. In de toekomst zien we dat programmeurs gebruik zullen maken van zeer capabele AI-modellen als samenwerkingstools die helpen bij het hele softwareontwikkelingsproces, van het redeneren over problemen tot het assisteren bij de implementatie.