Facebook TransCoder garatzen ari da kodea programazio-lengoaia batetik bestera itzultzeko

Facebookeko ingeniariek transkonpiladore bat argitaratu dute TransCoder, ikaskuntza automatikoko teknikak erabiltzen dituena iturburu-kodea goi-mailako programazio-lengoaia batetik bestera eraldatzeko. Gaur egun, Java, C++ eta Python-en arteko kodea itzultzeko laguntza eskaintzen da. Adibidez, TransCoder-ek Java iturburu-kodea Python kode bihurtzeko aukera ematen du, eta Python-eko kodea Java iturburu-kodea. Proiektuaren garapenak praktikan jartzen ari dira ikerketa teorikoa kodearen transkonpilazio automatiko eraginkorrerako neurona-sare bat sortzean eta barreiatu Creative Commons Aitortu-EzKomertziala 4.0 lizentziapean erabilera ez-komertzialetarako soilik.

Ikaskuntza automatikoko sistemaren ezarpena Pytorch-en oinarritzen da. Deskargatzeko prest dauden bi modelo eskaintzen dira: lehenengo C++ Javara, Java C++ra eta Java Pythonera itzultzeagatik, eta bigarren emititzeko
C++-ra Python-era, Python-era C++-ra eta Python-era Javara. Ereduak trebatzeko, GitHub-en argitaratutako proiektuen iturburu-kodeak erabili ditugu. Nahi izanez gero, itzulpen ereduak sor daitezke beste programazio-lengoaia batzuetarako. Emisioaren kalitatea egiaztatzeko, unitate-testen bilduma bat prestatu da, baita 852 funtzio paralelo biltzen dituen test suite bat ere.

Bihurketa-zehaztasunari dagokionez, TransCoder-ek bihurketa-arauetan oinarritutako metodoak erabiltzen dituzten itzultzaile komertzialen gainetik nabarmenagoa dela esaten da, eta lan-prozesuan iturri eta xede-hizkuntzan adituen adituen ebaluaziorik gabe egitea ahalbidetzen du. Ereduaren funtzionamenduan sortzen diren akats gehienak deskodetzaileari murrizketa sinpleak gehituz ezaba daitezke, sortutako funtzioak sintaktikoki zuzenak direla ziurtatzeko.

Facebook TransCoder garatzen ari da kodea programazio-lengoaia batetik bestera itzultzeko

Ikertzaileek sare neuronalaren arkitektura berri bat proposatu dute "Transformer" sekuentziak modelatzeko, non errepikapena ordezkatzen duen "arreta"(seq2seq eredua arretaz), grafiko konputazionalaren mendekotasun batzuk kentzeko eta lehen paralelizaziorako egokia ez zena paralelizatzeko aukera ematen duena. Onartutako hizkuntza guztiek eredu komun bakarra erabiltzen dute, hiru printzipio erabiliz trebatzen dena: hasieratzea, hizkuntza modelatzea eta atzera-itzulpena.

Facebook TransCoder garatzen ari da kodea programazio-lengoaia batetik bestera itzultzeko

Iturria: opennet.ru

Gehitu iruzkin berria