Yksikkö IBM Artificial Intelligence (AI) -tutkimus esitti 14 miljoonan näytteen tietojoukon kehittääkseen koneoppimismalleja, jotka voivat auttaa ohjelmointitehtävissä. Tietojoukko nimeltä Project CodeNet, on saanut nimensä ImageNetistä, kuuluisasta kuvavarastosta, joka mullisti tietokonenäön ja syvän oppimisen.
Ohjelmoijat löytävät uusia ongelmia ja tutkivat erilaisia ratkaisuja käyttämällä monia tietoisen ja alitajuisen ajattelun mekanismeja. Useimmat koneoppimisalgoritmit vaativat tarkasti määriteltyjä tehtäviä ja suuria määriä annotoitua dataa kehittääkseen malleja, jotka voivat ratkaista samat ongelmat.
Asiantuntijayhteisössä on tehty paljon työtä tietojoukkojen ja vertailuarvojen luomiseksi AI-for-code -järjestelmien kehittämiseksi ja arvioimiseksi. Mutta koska ohjelmistokehitys on luova ja avoin, on erittäin vaikeaa luoda täydellistä tietojoukkoa ohjelmointia varten. Project CodeNetin avulla IBM:n tutkijat yrittivät luoda monikäyttöisen tietojoukon, jota voidaan käyttää koneoppimismallien kouluttamiseen erilaisissa tehtävissä. CodeNetin luojat kuvaavat sitä "erittäin laajamittaiseksi, monipuoliseksi ja laadukkaaksi tietojoukoksi koodin tekoälyn algoritmisen kehityksen nopeuttamiseksi".
Aineisto sisältää 14 miljoonaa esimerkkiä 500 miljoonasta koodirivistä, jotka on kirjoitettu 55 eri ohjelmointikielellä. Koodinäytteet saatiin lähes 4000 XNUMX lähetetystä tehtävästä, jotka oli julkaistu AIZU- ja AtCoder-verkkokoodausalustoille. Koodiesimerkit sisältävät sekä oikeita että vääriä vastauksia annettuihin tehtäviin.
Mielenkiintoista myös:
- Hubble siirtyi vikasietotilaan ajotietokoneen ohjelmistovirheen vuoksi
- Toinen ongelma CD Projektille: Hakkerit uhkaavat vuotaa pelien lähdekoodit verkkoon
Yksi CodeNetin tärkeimmistä ominaisuuksista on esimerkkeihin lisättyjen huomautusten määrä. Jokaisella tietojoukon koodaustehtävällä on tekstillinen kuvaus sekä suorittimen aika- ja muistirajoitukset. Jokainen koodin lähetys sisältää tusinaa tietoa, mukaan lukien kieli, lähetyspäivämäärä, koko, suoritusaika, hyväksyntä ja virhetyypit. IBM:n tutkijat tekivät myös paljon vaivaa varmistaakseen, että tietojoukko oli tasapainossa useiden parametrien, kuten ohjelmointikielen, hyväksyttävyyden ja virhetyyppien välillä.
CodeNet ei ole ainoa tietojoukko ohjelmointitehtävien koneoppimismallien koulutukseen. Mutta on useita ominaisuuksia, jotka erottavat sen toisistaan. Ensimmäinen on tietojoukon pelkkä koko, mukaan lukien näytteiden määrä ja kielten monimuotoisuus. Mutta ehkä tärkeämpää on koodinäytteiden mukana tulevat metatiedot. CodeNetiin lisätyt runsaat huomautukset tekevät siitä sopivan monenlaisiin tehtäviin, toisin kuin muut koodaustietojoukot, jotka ovat erikoistuneet tiettyihin ohjelmointitehtäviin.
Tämä on mielen puhaltaa.
GPT-3: n avulla rakensin asettelugeneraattorin, jossa kuvailet vain haluamasi asettelun, ja se luo sinulle JSX-koodin.
MITÄ kuva.twitter.com/w8JkrZO4lk
- Sharif Shameem (@sharifshameem) Heinäkuu 13, 2020
CodeNetiä voi käyttää useilla tavoilla. Yksi niistä on kielen kääntäminen. Koska jokainen tietojoukon koodaustehtävä sisältää esityksiä eri ohjelmointikielistä, datatutkijat voivat käyttää sitä rakentaakseen koneoppimismalleja, jotka kääntävät koodia kielestä toiseen. Tämä voi olla kätevää organisaatioille, jotka haluavat siirtää vanhaa koodia uusille kielille ja tehdä niistä uusien ohjelmoijien sukupolvien saatavilla.
Lue myös:
- IBM esitteli maailman ensimmäisen 2nm sirunvalmistusteknologian
- IBM kehittää tekoälyä uusien antibioottien keksimiseksi
Perinteiden ja perinnöllisyyden tulee leikkiä yhdessä erilaisen ajattelun kanssa, nuorempien sukupolvien hermoalgoritmien ja ML-menetelmien kanssa ongelman asettamiseen, toisiaan parantaen
Ajan myötä ohjelmoijien taso laskee entisestään (nykyiseen verrattuna). Eli on mahdollista kirjoittaa vinoa, vinoa koodia "paskakielellä". Ja sitten kone optimoidaan, ja on mahdollista saada ammattimaisen kokoajan ohjelmoijan optimoitu koodi (tai jopa parempi).