Facebook kodu bir proqramlaşdırma dilindən digərinə tərcümə etmək üçün TransCoder-i inkişaf etdirir

Facebook mühəndisləri transkompilyator nəşr ediblər Transcoder, mənbə kodunu bir yüksək səviyyəli proqramlaşdırma dilindən digərinə çevirmək üçün maşın öyrənmə üsullarından istifadə edir. Hazırda Java, C++ və Python arasında kodun tərcüməsi üçün dəstək verilir. Məsələn, TransCoder Java mənbə kodunu Python koduna, Python kodunu isə Java mənbə koduna çevirməyə imkan verir. Layihə inkişafları praktiki olaraq həyata keçirilir nəzəri tədqiqat kodun səmərəli avtomatik transkompilyasiyası üçün neyron şəbəkənin yaradılmasına dair və yayılma yalnız qeyri-kommersiya məqsədləri üçün Creative Commons Attribution-Qeyri-Kommersiya 4.0 lisenziyası əsasında lisenziyalaşdırılıb.

Maşın öyrənmə sisteminin tətbiqi Pytorch-a əsaslanır. Yükləmək üçün iki hazır model təklif olunur: ilk C++ dilini Java-ya, Java-nı C++-a və Java-nı Python-a çevirmək üçün və Ikinci yayım üçün
C++-dan Python-a, Python-dan C++-a və Python-dan Java-ya. Modelləri öyrətmək üçün GitHub-da yerləşdirilən layihələrin mənbə kodlarından istifadə etdik. Arzu edilərsə, digər proqramlaşdırma dilləri üçün tərcümə modelləri yaradıla bilər. Yayım keyfiyyətini yoxlamaq üçün vahid testlər toplusu, həmçinin 852 paralel funksiyanı özündə birləşdirən test dəsti hazırlanmışdır.

İddia edilir ki, çevrilmə dəqiqliyi baxımından TransCoder konversiya qaydalarına əsaslanan metodlardan istifadə edən kommersiya tərcüməçilərindən xeyli üstündür və iş prosesində mənbə və hədəf dildə ekspertlərin ekspert qiymətləndirməsi olmadan bunu etməyə imkan verir. Modelin işləməsi zamanı yaranan xətaların çoxu, yaradılan funksiyaların sintaktik cəhətdən düzgün olmasını təmin etmək üçün dekoderə sadə məhdudiyyətlər əlavə etməklə aradan qaldırıla bilər.

Facebook kodu bir proqramlaşdırma dilindən digərinə tərcümə etmək üçün TransCoder-i inkişaf etdirir

Tədqiqatçılar ardıcıllığın modelləşdirilməsi üçün yeni “Transformer” neyron şəbəkəsi arxitekturasını təklif etdilər, burada təkrarlanma “diqqət"(diqqətlə seq2seq modeli), bu, hesablama qrafikindəki bəzi asılılıqlardan qurtulmağa və əvvəllər paralelləşdirmə üçün uyğun olmayanları paralelləşdirməyə imkan verir. Bütün dəstəklənən dillər üç prinsipdən istifadə etməklə öyrədilmiş vahid ümumi modeldən istifadə edir - başlanğıclaşdırma, dil modelləşdirmə və geri tərcümə.

Facebook kodu bir proqramlaşdırma dilindən digərinə tərcümə etmək üçün TransCoder-i inkişaf etdirir

Mənbə: opennet.ru

Добавить комментарий