CodeNet, IBM-projekti koneoppimisjärjestelmille 

IBM-logo

IBM julkisti äskettäin hänen uusi projekti nimeltä "CodeNet" joka Tavoitteena on tarjota tutkijoille tietojoukko kokeilla koneoppimisen tekniikoita luoda kääntäjiä yhdeltä ohjelmointikieleltä toiselle sekä generaattoreita ja koodianalysaattoreita.

CodeNet sisältää kokoelman 14 miljoonaa koodinäytettä jotka ratkaisevat 4053 yleistä ohjelmointiongelmaa. Yhteensä kokoelma sisältää noin 500 miljoonaa koodiriviä ja kattaa 55 ohjelmointikieltä, sekä moderneja kieliä, kuten C ++, Java, Python ja Go, että vanhoja, mukaan lukien COBOL, Pascal ja FORTRAN.

"Ohjelmistot syövät maailmaa", kirjoitti kuuluisa amerikkalainen liikemies Marc Andreessen vuonna 2011. Siirtyminen eteenpäin tänään: ohjelmistoja löytyy rahoituspalveluista ja terveydenhuollosta, älypuhelimista ja älykkäistä kodeista. Jopa autoissa on nyt yli 100 miljoonaa koodiriviä.

Projektikehitys julkaistaan ​​Apache 2.0 -lisenssillä ja tietojoukkojen odotetaan julkaistavan julkisesti.

Esimerkit on merkitty ja ne toteuttavat samanlaisia ​​algoritmeja eri ohjelmointikielillä. Ehdotetun sarjan on tarkoitus auttaa kouluttamaan koneoppimisjärjestelmiä ja kehittämään innovaatioita automaattisen koodinkääntämisen ja -analyysin alalla analogisesti tapaan, jolla huomautettujen kuvien ImageNet-tietokanta auttoi kuvantunnistus- ja keinonäkymäjärjestelmien kehittämistä. Erilaiset ohjelmointikilpailut mainitaan yhtenä kokoelman rakentamisen päälähteistä.

Project CodeNet voi erityisesti ohjata algoritmisia innovaatioita tämän kontekstin poimimiseksi sekvenssikohtaisilla malleilla, aivan kuten mitä ihmiskielillä olemme soveltaneet, saadaksemme merkittävämmän lohkon koneen ymmärtämisessä koodin käsittelyn sijaan.

Toisin kuin perinteiset kääntäjät, jotka perustuvat käännössääntöihin, koneoppimisjärjestelmät voivat kaapata ja ottaa huomioon koodin käytön kontekstin. Muunnettaessa yhdeltä ohjelmointikieleltä toiselle konteksti on yhtä tärkeä kuin käännettäessä yhdestä ihmiskielestä toiseen. Kontekstuaalisen tietoisuuden puute estää koodia muuntamasta vanhoista kielistä, kuten COBOL.

Suuren määrän algoritmien toteutuksia useilla kielillä auttaa luomaan universaaleja koneoppimisjärjestelmiä, jotka tietyn kielen välisen suoran käännöksen sijaan manipuloivat koodin abstraktimpaa esitystä tietyistä ohjelmointikielistä riippumatta.

Tällaista järjestelmää voidaan käyttää kääntäjänä, joka kääntää lähetetyn koodin millä tahansa tuetulla kielellä sisäiseksi abstraktiksi esitykseksi, josta koodi voidaan luoda useilla kielillä.

Järjestelmä mukaan lukien voit suorittaa kaksisuuntaisia ​​muunnoksia. Esimerkiksi pankit ja valtion virastot käyttävät edelleen vanhoja COBOL-hankkeita. Koneoppiva kääntäjä voi muuntaa COBOL-koodin Java-esitykseksi ja vaihtoehtoisesti kääntää Java-koodinpätkän takaisin COBOL-koodiksi.

Kielien välisen käännöksen lisäksi mainitaan CodeNet-sovellusalueet kuten älykkäiden koodihakujärjestelmien luominen ja kloonien havaitsemisen automatisointi sekä optimoijien ja automaattisen koodinkorjausjärjestelmän kehittäminen.

Erityisesti CodeNetissä esitetyt esimerkit sisältävät metatiedot, jotka kuvaavat suorituskykytestien tuloksia, tuloksena olevan ohjelman koko, muistin kulutus ja tila, jonka avulla voidaan erottaa oikea koodi virheellisestä koodista (oikean koodin erottamiseksi väärästä koodista, esimerkkejä virheistä sisältyy erityisesti kokoelmaan, jonka osuus on 29,5 (XNUMX%).

Koneoppimisjärjestelmä voi ottaa nämä metatiedot huomioon optimaalisen koodin luomiseksi tai regressioiden havaitsemiseksi analysoidussa koodissa (järjestelmä voi ymmärtää, että algoritmia ei ole optimoitu lähetetyssä koodissa tai se sisältää virheitä).

Vihdoin Jos olet kiinnostunut oppimaan lisää CodeNetistä, voit tarkistaa yksityiskohdat Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.