Facebook inatengeneza TransCoder ili kutafsiri msimbo kutoka lugha moja ya programu hadi nyingine

Wahandisi wa Facebook wamechapisha transcompiler TransCoder, ambayo hutumia mbinu za kujifunza kwa mashine ili kubadilisha msimbo wa chanzo kutoka lugha moja ya kiwango cha juu ya programu hadi nyingine. Hivi sasa, usaidizi umetolewa kwa kutafsiri msimbo kati ya Java, C++ na Python. Kwa mfano, TransCoder hukuruhusu kubadilisha msimbo wa chanzo cha Java kuwa msimbo wa Python, na msimbo wa Python kuwa msimbo wa chanzo cha Java. Maendeleo ya mradi yanatekelezwa utafiti wa kinadharia juu ya kuunda mtandao wa neva kwa upitishaji bora wa kiotomatiki wa msimbo na kuenea iliyopewa leseni chini ya leseni ya Creative Commons Attribution-NonCommercial 4.0 kwa matumizi yasiyo ya kibiashara pekee.

Utekelezaji wa mfumo wa kujifunza mashine unategemea Pytorch. Mifano mbili zilizotengenezwa tayari hutolewa kwa kupakuliwa: kwanza kwa kutafsiri C++ hadi Java, Java hadi C++ na Java hadi Python, na pili kwa matangazo
C++ hadi Python, Python hadi C++ na Python kwa Java. Ili kutoa mafunzo kwa mifano, tulitumia misimbo ya chanzo ya miradi iliyotumwa kwenye GitHub. Ikiwa inataka, mifano ya tafsiri inaweza kuundwa kwa lugha nyingine za programu. Ili kuangalia ubora wa utangazaji, mkusanyiko wa majaribio ya vitengo umeandaliwa, pamoja na kitengo cha majaribio ambacho kinajumuisha vipengele 852 sambamba.

Inadaiwa kuwa kwa upande wa usahihi wa ubadilishaji, TransCoder ni bora zaidi kuliko watafsiri wa kibiashara wanaotumia mbinu kulingana na sheria za ubadilishaji, na katika mchakato wa kazi hukuruhusu kufanya bila tathmini ya kitaalamu ya wataalam katika lugha chanzi na lengwa. Hitilafu nyingi zinazotokea wakati wa uendeshaji wa mfano zinaweza kuondolewa kwa kuongeza vikwazo rahisi kwa decoder ili kuhakikisha kuwa kazi zinazozalishwa ni sahihi kisintaksia.

Facebook inatengeneza TransCoder ili kutafsiri msimbo kutoka lugha moja ya programu hadi nyingine

Watafiti wamependekeza usanifu mpya wa mtandao wa neural "Transformer" kwa mlolongo wa modeli, ambapo urudiaji hubadilishwa na "umakini"(mfano wa seq2seq kwa umakini), ambayo hukuruhusu kuondoa utegemezi fulani kwenye grafu ya hesabu na kusawazisha yale ambayo hapo awali hayakuweza kusawazishwa. Lugha zote zinazotumika hutumia muundo mmoja wa kawaida, ambao umefunzwa kwa kutumia kanuni tatu—uanzishaji, uundaji wa lugha na utafsiri wa nyuma.

Facebook inatengeneza TransCoder ili kutafsiri msimbo kutoka lugha moja ya programu hadi nyingine

Chanzo: opennet.ru

Kuongeza maoni