„CodeNet“, IBM mašininio mokymosi sistemų projektas 

IBM logotipas

IBM pristatė neseniai jo naujasis projektas pavadintas „CodeNet“ kuris siekiama pateikti tyrėjams duomenų rinkinį, kad jie galėtų eksperimentuoti naudodami mašininio mokymosi metodus sukurti vertėjus iš vienos programavimo kalbos į kitą, taip pat generatorius ir kodų analizatorius.

„CodeNet“ apima 14 milijonų kodų pavyzdžių kolekciją kurie išsprendžia 4053 įprastas programavimo problemas. Iš viso rinkinyje yra apie 500 milijonų kodo eilučių ir jis apima 55 programavimo kalbas, tiek šiuolaikines kalbas kaip C ++, Java, Python ir Go, tiek senąsias, įskaitant COBOL, Pascal ir FORTRAN.

„Programinė įranga valgo pasaulį“, - 2011 m. Rašė garsus amerikiečių verslininkas Marcas Andreessenas. Greitas žingsnis į priekį šiandien: programinė įranga yra finansinėse ir sveikatos priežiūros srityse, išmaniuosiuose telefonuose ir išmaniuose namuose. Net automobiliuose dabar yra daugiau nei 100 milijonų kodo eilučių.

Projekto plėtra išleidžiama pagal „Apache 2.0“ licenciją, o duomenų rinkinius tikimasi išleisti viešai.

Pavyzdžiai yra komentuojami ir įgyvendina identiškus algoritmus skirtingomis programavimo kalbomis. Siūlomas rinkinys turėtų padėti mokyti mašininio mokymosi sistemas ir plėtoti naujoves automatinio kodų vertimo ir analizės srityje, analogiškai su anotuotų vaizdų „ImageNet“ duomenų baze, padedančia kurti atpažinimo ir dirbtinio regėjimo sistemas. Įvairūs programavimo konkursai minimi kaip vienas iš pagrindinių kolekcijos kūrimo šaltinių.

Projektas „CodeNet“ gali konkrečiai paskatinti algoritmines naujoves, kad išgautų šį kontekstą su nuosekliais modeliais, panašiai kaip tai, ką pritaikėme žmonių kalbose, kad būtų žymiai lengviau suprasti kodą mašinoje, o ne apdoroti kodą.

Skirtingai nuo tradicinių vertėjų, remiantis vertimo taisyklėmis, mašininio mokymosi sistemos gali užfiksuoti ir atsižvelgti į kodo naudojimo kontekstą. Konvertuojant iš vienos programavimo kalbos į kitą, kontekstas yra toks pat svarbus, kaip ir verčiant iš vienos žmogaus kalbos į kitą. Būtent kontekstinio supratimo trūkumas neleidžia kodui konvertuoti iš senų kalbų, tokių kaip COBOL.

Didelė algoritmų diegimo bazė įvairiomis kalbomis padės sukurti universaliąsias mašininio mokymosi sistemas, kurios vietoj tiesioginio vertimo tarp konkrečių kalbų manipuliuoja abstrakčiau kodo atvaizdavimu, nepriklausomai nuo konkrečių programavimo kalbų.

Tokia sistema gali būti naudojama kaip vertėjas, kuris perduoda perduotą kodą bet kuria palaikoma kalba į savo vidinį abstraktų vaizdą, iš kurio galima sugeneruoti kodą daugeliu kalbų.

Įskaitant sistemą, galite atlikti dvikryptes transformacijas. Pavyzdžiui, bankai ir vyriausybinės agentūros ir toliau naudoja senus COBOL projektus. Mašininis mokantis vertėjas gali konvertuoti COBOL kodą į „Java“ vaizdą ir pasirinktinai išversti „Java“ fragmentą į COBOL kodą.

Be vertimo tarp kalbų, minimos „CodeNet“ taikymo sritys tokių kaip intelektualių kodų paieškos sistemų sukūrimas ir klonų aptikimo automatizavimas, taip pat automatizuoto kodo taisymo optimizatorių ir sistemų kūrimas.

Visų pirma „CodeNet“ pateikiami pavyzdžiai pateikiami su metaduomenimis, apibūdinančiais našumo testų rezultatus, gautos programos dydis, atminties sąnaudos ir būsena, leidžianti atskirti teisingą kodą nuo kodo su klaidomis (norint atskirti teisingą kodą nuo neteisingo kodo, pavyzdžiai su klaidomis yra specialiai įtraukti į kolekciją, kurios dalis yra 29,5, XNUMX%).

Mašininio mokymosi sistema gali atsižvelgti į šiuos metaduomenis, kad sugeneruotų optimaliausią kodą arba aptiktų analizuojamo kodo regresijas (sistema gali suprasti, kad algoritmas nėra optimaliai įdiegtas perduodamame kode arba jame yra klaidų).

Pagaliau Jei norite sužinoti daugiau apie „CodeNet“, galite patikrinti išsamią informaciją Šioje nuorodoje.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.