Mae Facebook yn datblygu TransCoder i gyfieithu cod o un iaith raglennu i'r llall

Mae peirianwyr Facebook wedi cyhoeddi traws-grynhoad TrawsCoder, sy'n defnyddio technegau dysgu peiriant i drawsnewid cod ffynhonnell o un iaith raglennu lefel uchel i'r llall. Ar hyn o bryd, darperir cefnogaeth ar gyfer cyfieithu cod rhwng Java, C++ a Python. Er enghraifft, mae TransCoder yn caniatáu ichi drosi cod ffynhonnell Java yn god Python, a chod Python yn god ffynhonnell Java. Mae datblygiadau prosiect yn cael eu rhoi ar waith ymchwil damcaniaethol ar greu rhwydwaith niwral ar gyfer traws-grynhoi awtomatig effeithlon o god a lledaenu trwyddedig o dan drwydded Creative Commons Attribution-NonCommercial 4.0 at ddefnydd anfasnachol yn unig.

Mae gweithrediad y system dysgu peiriant yn seiliedig ar Pytorch. Cynigir dau fodel parod i'w lawrlwytho: yn gyntaf ar gyfer cyfieithu C++ i Java, Java i C++ a Java i Python, a ail ar gyfer darlledu
C++ i Python, Python i C++ a Python i Java. I hyfforddi'r modelau, gwnaethom ddefnyddio codau ffynhonnell prosiectau a bostiwyd ar GitHub. Os dymunir, gellir creu modelau cyfieithu ar gyfer ieithoedd rhaglennu eraill. Er mwyn gwirio ansawdd y darllediad, mae casgliad o brofion uned wedi'i baratoi, yn ogystal â chyfres brawf sy'n cynnwys 852 o swyddogaethau cyfochrog.

Honnir, o ran cywirdeb trosi, bod TransCoder gryn dipyn yn well na chyfieithwyr masnachol sy'n defnyddio dulliau sy'n seiliedig ar reolau trosi, ac yn y broses o weithio mae'n caniatáu ichi wneud heb asesiad arbenigol arbenigwyr yn yr iaith ffynhonnell a'r iaith darged. Gellir dileu'r rhan fwyaf o'r gwallau sy'n codi yn ystod gweithrediad y model trwy ychwanegu cyfyngiadau syml i'r datgodiwr i sicrhau bod y swyddogaethau a gynhyrchir yn gywir yn syntactig.

Mae Facebook yn datblygu TransCoder i gyfieithu cod o un iaith raglennu i'r llall

Mae ymchwilwyr wedi cynnig pensaernïaeth rhwydwaith niwral newydd “Trawsnewidydd” ar gyfer dilyniannau modelu, lle mae ailadrodd yn cael ei ddisodli gan “sylw"(model seq2seq gyda sylw), sy'n eich galluogi i gael gwared ar rai dibyniaethau yn y graff cyfrifiannol a chyfochrogu'r hyn nad oedd yn barod i gyfochrogeiddio. Mae pob iaith a gefnogir yn defnyddio un model cyffredin, sydd wedi'i hyfforddi gan ddefnyddio tair egwyddor—cychwyn, modelu iaith, ac ôl-gyfieithu.

Mae Facebook yn datblygu TransCoder i gyfieithu cod o un iaith raglennu i'r llall

Ffynhonnell: opennet.ru

Ychwanegu sylw