Facebook nuju ngembangkeun TransCoder pikeun narjamahkeun kode tina hiji basa pamrograman ka anu sanés

Insinyur Facebook parantos nyebarkeun transcompiler TransCoder, anu ngagunakeun téknik pembelajaran mesin pikeun ngarobih kode sumber tina hiji basa pamrograman tingkat luhur ka anu sanés. Ayeuna, dukungan disayogikeun pikeun narjamahkeun kode antara Java, C ++ sareng Python. Contona, TransCoder ngidinan Anjeun pikeun ngarobah kodeu sumber Java kana kode Python, sarta kode Python kana kode sumber Java. Pangwangunan proyék nuju dilaksanakeun panalungtikan tioritis dina nyieun jaringan saraf pikeun transcompilation otomatis efisien kode jeung nyebar dilisensikeun ku Creative Commons Attribution-NonCommercial 4.0 lisénsi pikeun pamakéan non-komérsial wungkul.

Palaksanaan sistem pembelajaran mesin dumasar kana Pytorch. Dua model siap-siap ditawarkeun pikeun diunduh: mimitina pikeun narjamahkeun C ++ ka Java, Java ka C ++ jeung Java ka Python, jeung kadua pikeun siaran
C ++ ka Python, Python ka C ++ jeung Python ka Java. Pikeun ngalatih modél, kami nganggo kode sumber proyék anu dipasang dina GitHub. Upami hoyong, modél tarjamahan tiasa diciptakeun pikeun basa pamrograman sanés. Pikeun mariksa kualitas siaran, kumpulan tés unit parantos disiapkeun, kitu ogé suite tés anu kalebet 852 fungsi paralel.

Diklaim yén dina hal akurasi konvérsi, TransCoder sacara signifikan punjul pikeun penerjemah komérsial anu ngagunakeun métode dumasar kana aturan konvérsi, sareng dina prosés damel ngamungkinkeun anjeun ngalakukeun tanpa penilaian ahli para ahli dina basa sumber sareng target. Kalolobaan kasalahan anu timbul salila operasi model bisa ngaleungitkeun ku nambahkeun larangan basajan ka decoder pikeun mastikeun yén fungsi dihasilkeun téh syntactically bener.

Facebook nuju ngembangkeun TransCoder pikeun narjamahkeun kode tina hiji basa pamrograman ka anu sanés

Panaliti parantos ngusulkeun arsitéktur jaringan neural énggal "Transformer" pikeun modél modél, dimana kambuh diganti ku "perhatian"(Modél seq2seq kalayan perhatian), anu ngamungkinkeun anjeun nyingkirkeun sababaraha katergantungan dina grafik komputasi sareng parallelize naon anu saacanna henteu cocog pikeun parallelization. Sadaya basa anu dirojong nganggo modél umum tunggal, anu dilatih nganggo tilu prinsip—inisialisasi, modél basa, sareng tarjamahan balik.

Facebook nuju ngembangkeun TransCoder pikeun narjamahkeun kode tina hiji basa pamrograman ka anu sanés

sumber: opennet.ru

Tambahkeun komentar