CodeNet, IBM projekt za sustave strojnog učenja 

IBM-ov logotip

IBM predstavio nedavno je nazvan njegov novi projekt "CodeNet" koji ima za cilj pružiti istraživačima skup podataka za eksperimentiranje pomoću tehnika strojnog učenja stvoriti prevoditelje s jednog programskog jezika na drugi, kao i generatore i analizatore koda.

CodeNet uključuje kolekciju od 14 milijuna uzoraka koda koji rješavaju 4053 uobičajena programska problema. Ukupno zbirka sadrži oko 500 milijuna redaka koda i pokriva 55 programskih jezika, oba moderna jezika kao što su C ++, Java, Python i Go, kao i naslijeđene, uključujući COBOL, Pascal i FORTRAN.

"Softver jede svijet", napisao je poznati američki poduzetnik Marc Andreessen 2011. Premotajte unaprijed do danas: softver se nalazi u financijskim uslugama i zdravstvu, pametnim telefonima i pametnim domovima. Čak i automobili sada imaju više od 100 milijuna redaka koda.

Razvoj projekata objavljen je pod licencom Apache 2.0, a očekuje se da će skupovi podataka biti objavljeni u javnoj domeni.

Primjeri su označeni i implementiraju identične algoritme u različitim programskim jezicima. Predloženi skup trebao bi pomoći u osposobljavanju sustava strojnog učenja i razviti inovacije u području automatskog prevođenja i analize koda, analogno načinu na koji je baza podataka ImageNet s označenim slikama pomogla razvoju sustava za prepoznavanje slika i umjetni vid. Razna programska natjecanja spominju se kao jedan od glavnih izvora stvaranja zbirki.

Project CodeNet može posebno potaknuti algoritamske inovacije da izvuku ovaj kontekst modelima slijeda po slijedu, slično kao što smo primijenili u ljudskim jezicima, kako bismo napravili značajnije udubljenje u strojnom razumijevanju koda, umjesto obrade koda.

Za razliku od tradicionalnih prevoditelja koji se temelje na pravilima prevođenja, Sustavi strojnog učenja mogu obuhvatiti i uzeti u obzir kontekst upotrebe koda. Pri pretvaranju iz jednog programskog jezika u drugi kontekst je jednako važan kao i pri prevođenju iz jednog ljudskog jezika u drugi. Nedostatak kontekstualne svijesti sprječava konverziju koda iz naslijeđenih jezika poput COBOL-a.

Prisutnost velike baze implementacija algoritama na različitim jezicima pomoći će u stvaranju univerzalnih sustava strojnog učenja koji, umjesto prevođenja uživo između određenih jezika, manipuliraju apstraktnijim prikazom koda, neovisno o određenim programskim jezicima.

Takav se sustav može koristiti kao prevoditelj koji prevedeni kod u bilo kojem od podržanih jezika prevodi u svoj unutarnji apstraktni prikaz iz kojeg se može generirati kod na mnogim jezicima.

Uključujući sustav možete izvoditi dvosmjerne transformacije. Na primjer, banke i vladine agencije i dalje koriste naslijeđene projekte COBOL. Prevoditelj strojnog učenja može pretvoriti COBOL kôd u Java predstavu i po želji prevesti Java isječak natrag u COBOL kôd.

Uz prijevod između jezika, spominju se područja primjene CodeNet-a kao što su stvaranje inteligentnih sustava za pretraživanje koda i automatizacija detekcije klona, ​​kao i razvoj optimizatora i sustava za automatsku korekciju koda.

Osobito Primjeri predstavljeni u CodeNetu sadrže metapodatke koji opisuju rezultate testova izvedbe, veličina rezultirajućeg programa, potrošnja memorije i stanje koje omogućuje razlikovanje ispravnog koda od pogrešnog koda (za razlikovanje točnog koda od netočnog koda, primjeri s pogreškama posebno su uključeni u zbirku, čiji udio iznosi 29,5 , XNUMX%).

Sustav strojnog učenja može uzeti u obzir ove metapodatke za generiranje najoptimalnijeg koda ili za otkrivanje regresija u analiziranom kodu (sustav može razumjeti da algoritam nije optimalno implementiran u preneseni kôd ili sadrži pogreške).

Konačno Ako ste zainteresirani da saznate više o CodeNetu, možete provjeriti detalje U sljedećem linku.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.