Facebook кодун бир программалоо тилинен экинчисине которуу үчүн TransCoderди иштеп чыгууда

Facebook инженерлери транскомпиляторду чыгарышты TransCoder, бул баштапкы кодду бир жогорку деңгээлдеги программалоо тилинен экинчисине которуу үчүн машина үйрөнүү ыкмаларын колдонот. Учурда Java, C++ жана Python тилдеринин ортосунда код которууга колдоо көрсөтүлөт. Мисалы, TransCoder Java баштапкы кодун Python кодуна, ал эми Python кодун Java булак кодуна айландырууга мүмкүндүк берет. Долбоорлорду иштеп чыгуулар практикага киргизилүүдө теориялык изилдөө кодду эффективдүү автоматтык транскомпиляциялоо үчүн нейрон тармагын түзүү боюнча жана жайылуу коммерциялык эмес максатта гана колдонуу үчүн Creative Commons Attribution-NonCommercial 4.0 лицензиясынын негизинде лицензияланган.

Машина үйрөнүү системасын ишке ашыруу Pytorch негизделген. Жүктөп алуу үчүн эки даяр моделдер сунушталат: биринчи C++ти Java, Javaны C++ жана Javaны Python тилине которуу үчүн жана экинчи берүү үчүн
C++ – Python, Python – C++ жана Python – Java. Моделдерди үйрөтүү үчүн биз GitHub сайтында жарыяланган долбоорлордун баштапкы коддорун колдондук. Кааласа, котормо моделдерин башка программалоо тилдерине түзсө болот. Берүүнүн сапатын текшерүү үчүн бирдик тесттеринин жыйнагы, ошондой эле 852 параллелдүү функцияны камтыган тесттик топтом даярдалды.

Конверсиянын тактыгы жагынан TransCoder конвертация эрежелерине негизделген ыкмаларды колдонгон коммерциялык котормочулардан бир топ жогору экени жана иш процессинде булак жана котормо тил боюнча эксперттердин эксперттик баалоосу жок кылууга мүмкүндүк берет деп айтылат. Моделди иштетүүдө пайда болгон каталардын көбүн декодерге жөнөкөй чектөөлөрдү кошуу менен, түзүлүүчү функциялардын синтаксистик жактан туура болушун камсыз кылууга болот.

Facebook кодун бир программалоо тилинен экинчисине которуу үчүн TransCoderди иштеп чыгууда

Окумуштуулар ырааттуулукту моделдөө үчүн жаңы нейрондук тармак архитектурасын “Трансформатор” сунушташты, анда кайталануу “көңүл буруу"(seq2seq модели көңүл буруу менен), бул эсептөө графигиндеги кээ бир көз карандылыктан арылууга жана мурда параллелдештирүүгө мүмкүн болбогон нерселерди параллелдештирүүгө мүмкүндүк берет. Колдоого алынган бардык тилдер үч принцип — инициализация, тилди моделдөө жана кайра которуу аркылуу үйрөтүлгөн бирдиктүү жалпы моделди колдонушат.

Facebook кодун бир программалоо тилинен экинчисине которуу үчүн TransCoderди иштеп чыгууда

Source: opennet.ru

Комментарий кошуу