CodeNet, IBM-ov projekt za sisteme strojnega učenja 

IBM-ov logotip

IBM je predstavil pred kratkim se je imenoval njegov novi projekt "CodeNet" ki želi raziskovalcem zagotoviti nabor podatkov za eksperimentiranje s tehnikami strojnega učenja ustvariti prevajalce iz enega programskega jezika v drugega, pa tudi generatorje in analizatorje kode.

CodeNet vključuje zbirko 14 milijonov vzorcev kode ki rešujejo 4053 pogostih težav s programiranjem. Skupno zbirka vsebuje približno 500 milijonov vrstic kode in zajema 55 programskih jezikov, tako sodobnih jezikov, kot so C ++, Java, Python in Go, pa tudi starejše, vključno s COBOL, Pascal in FORTRAN.

"Programska oprema jesti svet," je leta 2011 zapisal slavni ameriški poslovnež Marc Andreessen. Hitro naprej do danes: programsko opremo najdemo v finančnih storitvah in zdravstvu, pametnih telefonih in pametnih domovih. Tudi avtomobili imajo zdaj več kot 100 milijonov vrstic kode.

Razvoj projekta je izdan pod licenco Apache 2.0, nabori podatkov pa naj bi bili objavljeni v javni domeni.

Primeri so označeni in izvajajo enake algoritme v različnih programskih jezikih. Predlagani sklop naj bi pomagal usposobiti sisteme strojnega učenja in razviti novosti na področju samodejnega prevajanja in analize kod po analogiji z načinom, kako baza podatkov anotiranih slik ImageNet pomaga pri razvoju sistemov za prepoznavanje slik in umetnega vida. Različni tekmovalni programi so omenjeni kot eden glavnih virov zbiranja zbirk.

Projekt CodeNet lahko posebej spodbuja algoritemske inovacije, da izvlečejo ta kontekst z modeli zaporednega zaporedja, podobno kot tisto, kar smo uporabili v človeških jezikih, da bi naredili pomembnejšo težavo pri strojnem razumevanju kode in ne pri obdelavi kode.

Za razliko od tradicionalnih prevajalcev, ki temeljijo na prevajalskih pravilih, sistemi strojnega učenja lahko zajemajo in upoštevajo kontekst uporabe kode. Pri pretvorbi iz enega programskega jezika v drugega je kontekst enako pomemben kot pri prevajanju iz enega človeškega jezika v drugega. Pomanjkanje zavedanja o kontekstu preprečuje pretvorbo kode iz starih jezikov, kot je COBOL.

Prisotnost velike baze implementacij algoritmov v različnih jezikih bo pomagala ustvariti univerzalne sisteme strojnega učenja, ki namesto neposrednega prevajanja med določenimi jeziki manipulirajo z bolj abstraktno predstavitvijo kode, neodvisno od določenih programskih jezikov.

Tak sistem lahko uporabimo kot prevajalec, ki prenese kodo v katerem koli od podprtih jezikov v svojo notranjo abstraktno predstavitev, iz katere je mogoče ustvariti kodo v mnogih jezikih.

Vključno s sistemom lahko izvajate dvosmerne transformacije. Na primer, banke in vladne agencije še naprej uporabljajo stare projekte COBOL. Prevajalec strojnega učenja lahko pretvori kodo COBOL v predstavitev Java in po želji prevede delček Java nazaj v kodo COBOL.

Poleg prevajanja med jeziki so omenjena tudi področja uporabe CodeNet kot so ustvarjanje inteligentnih sistemov za iskanje kode in avtomatizacija zaznavanja klonov, pa tudi razvoj optimizatorjev in sistemov za samodejno korekcijo kode.

Še posebej Primeri, predstavljeni v CodeNetu, vsebujejo metapodatke, ki opisujejo rezultate preizkusov učinkovitosti, velikost nastalega programa, poraba pomnilnika in stanje, ki omogoča razlikovanje pravilne kode od kode z napakami (za razlikovanje pravilne kode od napačne kode so v zbirko posebej vključeni primeri z napakami, katerih delež je 29,5%).

Sistem strojnega učenja lahko te metapodatke upošteva za generiranje najbolj optimalne kode ali za zaznavanje regresij v analizirani kodi (sistem lahko razume, da algoritem v poslani kodi ni optimalno implementiran ali vsebuje napake).

Končno Če vas zanima več o CodeNetu, lahko preverite podrobnosti V naslednji povezavi.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Odgovoren za podatke: AB Internet Networks 2008 SL
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.