Facebook нь нэг програмчлалын хэлнээс нөгөө хэл рүү код хөрвүүлэхийн тулд TransCoder-ийг хөгжүүлж байна

Фэйсбүүкийн инженерүүд хөрвүүлэгчийг нийтлэв 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-ийг хөгжүүлж байна

Судлаачид дарааллыг загварчлахад зориулсан мэдрэлийн сүлжээний шинэ архитектурыг "Transformer" санал болгосон бөгөөд энэ нь дахилтыг "анхаарал"(seq2seq загвар нь анхаарал хандуулсан) бөгөөд энэ нь тооцооллын график дахь зарим хамаарлаас ангижрах, урьд өмнө нь параллель болгох боломжгүй байсан зүйлийг зэрэгцүүлэх боломжийг олгодог. Бүх дэмжигдсэн хэлүүд нь нэг нийтлэг загварыг ашигладаг бөгөөд үүнийг эхлүүлэх, хэлийг загварчлах, буцааж орчуулах гэсэн гурван зарчмаар сургадаг.

Facebook нь нэг програмчлалын хэлнээс нөгөө хэл рүү код хөрвүүлэхийн тулд TransCoder-ийг хөгжүүлж байна

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх