AlphaСode, isang code generation AI

DeepMind, na kilala sa mga pag-unlad nito sa larangan ng artificial intelligence at pagbuo ng mga neural network na may kakayahang maglaro ng mga computer at board game sa antas ng tao, na inihayag kamakailan ang proyekto ng AlphaCode na naglalarawan kung paano isang machine learning system para sa pagbuo ng code na maaari kang lumahok sa mga kumpetisyon sa programming sa platform ng Codeforces at magpakita ng average na resulta.

Nabanggit na ang proyekto gumagamit ng "Transformer" na arkitektura ng neural network kasabay ng iba pang paraan ng pag-sample at pag-filter upang makabuo ng iba't ibang hindi mahulaan na variant ng code na naaayon sa natural na text ng wika.

Ang pamamaraan kung paano ito gumagana AlphaСode ay batay sa pag-filter, pagpapangkat at pag-uuri, kung saan nagpapatuloy ito upang piliin ang pinakamainam na working code mula sa nabuong stream ng mga opsyon, na pagkatapos ay sinusuri upang matiyak na ang tamang resulta ay nakuha (sa bawat gawain ng kumpetisyon, isang halimbawa ng input data at isang kaukulang resulta) sa halimbawang ito, na dapat makuha pagkatapos ng pagpapatupad ng programa).

Idinetalye namin ang AlphaCode, na gumagamit ng mga modelo ng wikang nakabatay sa transformer upang makabuo ng code sa hindi pa nagagawang sukat, pagkatapos ay matalinong sinasala ang isang maliit na hanay ng mga promising program.

Pinatunayan namin ang aming pagganap gamit ang mga kumpetisyon na naka-host sa Codeforces, isang sikat na platform na nagho-host ng mga regular na kumpetisyon na umaakit sa libu-libong mga kalahok mula sa buong mundo na pumupunta upang subukan ang kanilang mga kasanayan sa coding. Pumili kami ng 10 kamakailang paligsahan para sa pagsusuri, bawat isa ay mas bago kaysa sa aming data ng pagsasanay. Ang AlphaCode ay halos kapantay ng karaniwang kakumpitensya, na minarkahan ang unang pagkakataon na ang isang AI code generation system ay umabot sa isang mapagkumpitensyang antas ng pagganap sa mga kumpetisyon sa programming.

Para sa tinatayang pagsasanay sa sistema machine learning, ito ay naka-highlight na ang base code na magagamit sa mga pampublikong GitHub repository ay ginamit. Matapos ihanda ang paunang modelo, isang yugto ng pag-optimize ang isinagawa batay sa isang koleksyon ng code na may mga halimbawa ng mga problema at solusyon na inaalok sa mga kalahok ng mga paligsahan sa Codeforces, CodeChef, HackerEarth, AtCoder at Aizu.

Sa kabuuan, para sa pagbuo ng AlphaCode 715 GB ng GitHub code ang ginamit at higit sa isang milyong halimbawa ng mga solusyon sa mga karaniwang problema ng kompetisyon. Bago magpatuloy sa pagbuo ng code, ang teksto ng gawain ay dumaan sa isang yugto ng normalisasyon, kung saan ang lahat ng kalabisan ay hindi kasama at ang mga mahahalagang bahagi lamang ang natitira.

Upang subukan ang system, pinili ang 10 bagong paligsahan ng Codeforces na may higit sa 5.000 kalahok, na ginanap pagkatapos makumpleto ang pagsasanay ng modelo ng machine learning.

Ligtas kong masasabi na ang mga resulta ng AlphaCode ay lumampas sa aking mga inaasahan. Nag-aalinlangan ako dahil kahit na sa mga simpleng problema sa mapagkumpitensya ay madalas na kinakailangan hindi lamang upang ipatupad ang algorithm, ngunit din (at ito ang pinakamahirap na bahagi) upang imbentuhin ito. Nagtagumpay ang AlphaCode na gumanap sa antas ng isang promising na bagong kakumpitensya. Hindi ako makapaghintay upang makita kung ano ang darating!

MIKE MIRZAYANOV

NAGTATAG NG CODEFORCES

Pinapayagan ang mga resulta ng mga takdang-aralin para makapasok ang AlphaCode system humigit-kumulang sa gitna ng kwalipikasyon ng mga kakayahan na ito (54,3%). Ang hinulaang kabuuang iskor ng AlphaCode ay 1238 puntos, na ginagarantiyahan ang pagpasok sa Nangungunang 28% sa lahat ng kalahok ng Codeforces na lumahok sa mga kumpetisyon kahit isang beses sa nakalipas na 6 na buwan.

Dapat pansinin na napansin na ang proyekto ay nasa paunang yugto pa rin ng pag-unlad at na sa hinaharap ay pinlano na mapabuti ang kalidad ng nabuong code, pati na rin ang pagbuo ng AlphaСode patungo sa mga system na makakatulong sa pagsulat ng code, o mga tool sa pagbuo ng application na magagamit ng mga taong walang kasanayan sa programming.

Sa wakas kung interesado kang malaman ang tungkol dito, dapat mong malaman na ang isang pangunahing tampok sa pag-unlad ay ang kakayahang bumuo ng code sa Python o C++, na kumukuha bilang text input ng isang pahayag ng problema sa Ingles.

Maaari mong suriin ang mga detalye Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.