CodeNet, IBM projekt za sisteme mašinskog učenja 

ibm-logo

IBM predstavio nedavno nazvan njegov novi projekat "CodeNet" koji ima za cilj pružiti istraživačima skup podataka za eksperimentisanje upotrebom tehnika mašinskog učenja stvoriti prevoditelje s jednog programskog jezika na drugi, kao i generatore i analizatore koda.

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

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

Razvoj projekta 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 obuci sistema za strojno učenje 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 sistema za prepoznavanje slika i umjetni vid. Razna programska takmičenja spominju se kao jedan od glavnih izvora stvaranja kolekcija.

Project CodeNet može posebno potaknuti algoritamske inovacije da izvuku ovaj kontekst modelima sekvence po sekvence, slično onome što smo primijenili u ljudskim jezicima, kako bi napravili značajnije udubljenje u strojnom razumijevanju koda, a ne u obradi koda. .

Za razliku od tradicionalnih prevodilaca zasnovanih na pravilima prevođenja, Sistemi mašinskog 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.

Prisustvo velike baze implementacija algoritama na različitim jezicima pomoći će u stvaranju univerzalnih sistema za mašinsko učenje koji, umjesto živog prevođenja između određenih jezika, manipulišu apstraktnijim prikazom koda, neovisno o određenim programskim jezicima.

Takav se sistem može koristiti kao prevodilac koji prevodi prenijeti kôd u bilo kojem od podržanih jezika u svoj interni apstraktni prikaz iz kojeg se može generirati kôd na mnogim jezicima.

Uključujući sistem možete izvoditi dvosmjerne transformacije. Na primjer, banke i vladine agencije i dalje koriste naslijeđene projekte COBOL. Prevodilac za mašinsko učenje može pretvoriti COBOL kôd u Java predstavu i po želji prevesti Java isječak natrag u COBOL kôd.

Pored prijevoda između jezika, spominju se područja primjene CodeNet-a kao što su stvaranje inteligentnih sistema za pretragu koda i automatizacija detekcije klona, ​​kao i razvoj optimizatora i sistema za automatsku korekciju koda.

Posebno Primjeri predstavljeni u CodeNetu sadrže metapodatke koji opisuju rezultate testova performansi, veličina rezultirajućeg programa, potrošnja memorije i stanje koje omogućava razlikovanje ispravnog koda od koda s pogreškama (da bi se razlikovao točan kôd od neispravnog koda, primjeri s pogreškama posebno su uključeni u kolekciju, čiji je udio 29,5%).

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 Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.