Facebook disvolvas TransCoder por traduki kodon de unu programlingvo al alia

Facebook-inĝenieroj publikigis transkompilon transkodilo, kiu uzas maŝinlernajn teknikojn por konverti fonttekstojn de unu altnivela programlingvo al alia. Subteno estas nuntempe disponigita por tradukado de kodo inter Java, C++, kaj Python. Ekzemple, TransCoder permesas vin konverti Java fontkodon al Python-kodo, kaj Python-kodon al Java fontkodo. Projektaj atingoj estas praktikitaj teoria esploro krei neŭralan reton por efika aŭtomata kodtranspilado kaj disvastigi permesite laŭ la permesilo Krea Komunaĵo Atribuite-Nekomerca 4.0 nur por nekomerca uzo.

La efektivigo de la maŝinlernado estas bazita sur Pytorch. Du pretaj modeloj estas ofertitaj por elŝuti: unue traduki C++ al Java, Java al C++, kaj Java al Python, kaj dua por elsendo
C++ al Python, Python al C++ kaj Python al Java. Por trejni la modelojn, la fontkodo de la projektoj gastigitaj sur GitHub estis uzata. Se vi deziras, tradukmodeloj povas esti kreitaj por aliaj programlingvoj. Por kontroli la kvaliton de la traduko, oni preparis kolekton de unuotestoj, kaj ankaŭ testkompleton, kiu inkluzivas 852 paralelajn funkciojn.

TransCoder estas asertita esti signife supera en konverta precizeco al komercaj tradukistoj uzantaj konvertajn regul-bazitajn metodojn, kaj en la procezo eliminas la bezonon de kolega revizio de ekspertoj en la fonto kaj cellingvoj. La plej multaj el la eraroj kiuj okazas dum la operacio de la modelo povas esti eliminitaj aldonante simplajn restriktojn al la malĉifrilo por certigi ke la generitaj funkcioj estos sintakse ĝustaj.

Facebook disvolvas TransCoder por traduki kodon de unu programlingvo al alia

Esploristoj proponis novan neŭralan retan arkitekturon "Transformilo" por modeligado de sekvencoj, en kiuj ripetiĝo estas anstataŭigita per "atenton” (seq2seq-modelo kun atento), kiu ebligas vin forigi iujn dependecojn en la komputila grafeo kaj paraleligi tion, kio antaŭe ne povus esti paraleligita. Ununura komuna modelo estas uzata por ĉiuj subtenataj lingvoj, kiu estas trejnita per tri principoj - inicialigo, lingvomodelado kaj inversa tradukado.

Facebook disvolvas TransCoder por traduki kodon de unu programlingvo al alia

fonto: opennet.ru

Aldoni komenton