IBM avas CodeNet'i masinõppesüsteemide jaoks, mis tõlgivad ja kontrollivad koodi

IBM esitles algatust CodeNet, mille eesmärk on pakkuda teadlastele andmekogumeid, mis võimaldavad katsetada masinõppe meetodite rakendamist tõlkijate loomisel ühest programmeerimiskeelest teise, samuti koodigeneraatorite ja -analüsaatorite loomisel. CodeNet sisaldab kogumit, mis hõlmab 14 miljonit koodinäidet, mis lahendavad 4053 tüüpilist programmeerimisprobleemi. Kogu kogumis on umbes 500 miljonit koodirea ja see katab 55 programmeerimiskeelt, sealhulgas kaasaegsed keeled nagu C++, Java, Python ja Go, samuti vananenud keeled, sealhulgas COBOL, Pascal ja FORTRAN. Projekti tulemused levitatakse Apache 2.0 litsentsi alusel ja andmekogusid plaanitakse jagada avaliku omandina.

Näidised on varustatud märkustega ja rakendavad identseid algoritme erinevates programmeerimiskeeltes. Eeldatakse, et pakutud komplekt aitab masinõppesüsteemide treeningut ja uuenduste arendamist kodeerimise ja masinategemise valdkonnas, analoogia tõttu, kuidas annotatsioonitud piltide andmebaas ImageNet toetab mustrite tunnustamise ja masinavaate süsteemide arengut. Ühe kollektsiooni peamise allikana nimetatakse erinevaid programmeerimise konkursse.

Erinevalt traditsioonilistest reeglite põhistel teisenditel põhinevatest tõlkijat süsteemidest suudavad masinõppesüsteemid tabada ja arvesse võtta kodeerimise konteksti. Koodide teisendamisel ühest programmeerimiskeelest teise on kontekst sama oluline, nagu tõlkimisel ühest inimkeelest teise. Just konteksti.ignoreerimine takistab koodi muutmist vanadelt keeltest, nagu COBOL.

Suur hulk erinevatel t autod ja keeles olemine aitab luua universaalseid masinõppesüsteeme, mis ei kasuta mitte otsest tõlget konkreetsete keelte vahel, vaid manipuleerivad koodi abstraktse, keele sõltumatult esitusega. Sellist süsteemi saab kasutada tõlkena, mis tõlgib edastatud koodi ükskõik milliseks toetatud keeles oma sisemisse abstraktse esitusse, millest saab hiljem genereerida koodi mitmesugustes keeltes.

Samuti suudab süsteem teostada kaheastmelisi teisendusi. Näiteks jätkavad pangad ja riigiasutused vananenud COBOL-keele projekte. Masinõppel põhinev tõlkija suudab COBOL-koodi tõlkida Java keele esituseks ning vajadusel tõlkida Java osa tagasi COBOL-koodiks.

CodeNet'i rakendused hõlmavad mitte ainult tõlkimist erinevate keelte vahel, vaid ka nutikate koodiotsingusüsteemide ja kloonide tuvastamise automatiseerimise loomist, samuti optimeerijat ja koodi automaatset parandamist. Eriti CodeNet'is esitatud näidised on varustatud metainfoga, mis kirjeldab jõudluse testimise tulemusi, programmi lõplikku suurust, mälu kasutamist ja olekut, mis võimaldab eristada korrektset koodi vigasest (et eristada õiget koodi valest, on kogusse spetsiaalselt kaasatud näiteks vead, mida on kokku 29,5%). Masinõppesüsteem võib neid metaandmeid arvesse võtta, et genereerida kõige optimaalsemat koodi või tuvastada regressioone analüüsitavas koodis (süsteem suudab mõista, et edastatud koodi algoritm on realiseeritud mitteoptimaalselt või sisaldab vigu).

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster