AlphaСode, AI pro generování kódu

DeepMind, známý pro svůj vývoj v oblasti umělé inteligence a budování neuronových sítí schopných hrát počítačové a deskové hry na lidské úrovni, nedávno odhalené projekt AlphaCode který popisuje jak systém strojového učení pro generování kódu že se můžete zúčastnit programátorských soutěží na platformě Codeforces a předvést průměrný výsledek.

Je zmíněno, že projekt využívá architekturu neuronové sítě „Transformer“. v kombinaci s dalšími metodami vzorkování a filtrování generovat různé nepředvídatelné varianty kódu odpovídající textu v přirozeném jazyce.

Způsob, jak to funguje AlphaСode je založeno na filtrování, seskupování a třídění, načež se z vygenerovaného proudu možností přistoupí k výběru nejoptimálnějšího pracovního kódu, který je následně zkontrolován, zda je získán správný výsledek (v každé úloze soutěže příklad vstupní data a odpovídající výsledek) k tomuto příkladu, který by měl být získán po spuštění programu).

Podrobně popisujeme AlphaCode, který používá jazykové modely založené na transformátoru ke generování kódu v bezprecedentním měřítku, a poté inteligentně filtruje malou sadu slibných programů.

Náš výkon ověřujeme pomocí soutěží pořádaných na Codeforces, oblíbené platformě, která pořádá pravidelné soutěže, které přitahují desítky tisíc účastníků z celého světa, kteří si přicházejí otestovat své kódovací dovednosti. K vyhodnocení jsme vybrali 10 nedávných soutěží, z nichž každá je novější než naše tréninková data. AlphaCode byl zhruba na úrovni průměrného konkurenta, což bylo poprvé, kdy systém generování kódu AI dosáhl konkurenceschopné úrovně výkonu v programovacích soutěžích.

Pro přibližné školení systému strojové učení, je zdůrazněno, že byl použit základní kód dostupný ve veřejných úložištích GitHub. Po přípravě počátečního modelu byla provedena optimalizační fáze založená na kolekci kódu s příklady problémů a řešení nabízených účastníkům soutěží Codeforces, CodeChef, HackerEarth, AtCoder a Aizu.

Celkem za vytvoření AlphaCode Použito 715 GB kódu GitHub a více než milion příkladů řešení typických problémů konkurence. Než se přistoupilo ke generování kódu, text úlohy prošel normalizační fází, ve které bylo vyloučeno vše nadbytečné a zůstaly pouze podstatné části.

Pro testování systému bylo vybráno 10 nových soutěží Codeforces s více než 5.000 XNUMX účastníky, které se konaly po dokončení školení modelu strojového učení.

Mohu s jistotou říci, že výsledky AlphaCode předčily má očekávání. Byl jsem skeptický, protože i v jednoduchých konkurenčních problémech je často nutné algoritmus nejen implementovat, ale také (a to je nejtěžší) ho vymyslet. AlphaCode dokázal vystupovat na úrovni nadějného nového konkurenta. Nemůžu se dočkat, až uvidím, co přijde!

MIKE MIRZAYANOV

ZAKLADATEL CODEFORCES

Výsledky úkolů povoleny pro vstup do systému AlphaCode přibližně v polovině kvalifikace těchto kompetencí (54,3 %). Předpokládané celkové skóre AlphaCode bylo 1238 bodů, což zaručuje vstup do Top 28 % mezi všemi účastníky Codeforces, kteří se zúčastnili soutěží alespoň jednou za posledních 6 měsíců.

Je třeba poznamenat, že je pozorováno, že projekt je stále v počáteční fázi vývoje a že v budoucnu se plánuje zlepšení kvality generovaného kódu a také vývoj AlphaСode směrem k systémům, které pomáhají psát kód, nebo nástroje pro vývoj aplikací, které mohou používat lidé bez znalostí programování.

Konečně pokud máte zájem o tom vědět více, měli byste vědět, že klíčovou vývojovou funkcí je schopnost generovat kód v Pythonu nebo C++, přičemž jako textový vstup použijete vyjádření problému v angličtině.

Můžete zkontrolovat podrobnosti Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.