Facebook กำลังพัฒนา TransCoder เพื่อแปลโค้ดจากภาษาโปรแกรมหนึ่งไปยังอีกภาษาหนึ่ง

วิศวกรของ Facebook ได้เผยแพร่ทรานส์คอมไพเลอร์ ทรานส์โค้ดเดอร์ซึ่งใช้เทคนิคการเรียนรู้ของเครื่องเพื่อแปลงซอร์สโค้ดจากภาษาการเขียนโปรแกรมระดับสูงภาษาหนึ่งเป็นอีกภาษาหนึ่ง ปัจจุบันมีการรองรับการแปลโค้ดระหว่าง 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 นั้นเหนือกว่านักแปลเชิงพาณิชย์อย่างมากที่ใช้วิธีการตามกฎการแปลง และในกระบวนการทำงาน TransCoder ช่วยให้คุณดำเนินการได้โดยไม่ต้องมีการประเมินโดยผู้เชี่ยวชาญจากผู้เชี่ยวชาญในภาษาต้นทางและภาษาเป้าหมาย ข้อผิดพลาดส่วนใหญ่ที่เกิดขึ้นระหว่างการทำงานของโมเดลสามารถกำจัดได้โดยการเพิ่มข้อจำกัดง่ายๆ ให้กับตัวถอดรหัสเพื่อให้แน่ใจว่าฟังก์ชันที่สร้างขึ้นนั้นถูกต้องทางวากยสัมพันธ์

Facebook กำลังพัฒนา TransCoder เพื่อแปลโค้ดจากภาษาโปรแกรมหนึ่งไปยังอีกภาษาหนึ่ง

นักวิจัยได้เสนอสถาปัตยกรรมโครงข่ายประสาทเทียมแบบใหม่ “Transformer” สำหรับลำดับการสร้างแบบจำลอง ซึ่งแทนที่การเกิดซ้ำด้วย “วนิมานิเอม"(โมเดล seq2seq พร้อมความสนใจ) ซึ่งช่วยให้คุณกำจัดการพึ่งพาบางอย่างในกราฟการคำนวณและทำให้ขนานสิ่งที่ก่อนหน้านี้ไม่คล้อยตามการขนาน ภาษาที่รองรับทั้งหมดใช้โมเดลทั่วไปเพียงโมเดลเดียว ซึ่งได้รับการฝึกฝนโดยใช้หลักการ XNUMX ประการ ได้แก่ การเริ่มต้น การสร้างแบบจำลองภาษา และการแปลกลับ

Facebook กำลังพัฒนา TransCoder เพื่อแปลโค้ดจากภาษาโปรแกรมหนึ่งไปยังอีกภาษาหนึ่ง

ที่มา: opennet.ru

เพิ่มความคิดเห็น