فیسبوک در حال توسعه TransCoder برای ترجمه کد از یک زبان برنامه نویسی به زبان دیگر است

مهندسان فیس بوک یک تران کامپایلر منتشر کرده اند TransCoder، که از تکنیک های یادگیری ماشین برای تبدیل کد منبع از یک زبان برنامه نویسی سطح بالا به زبان دیگر استفاده می کند. در حال حاضر، پشتیبانی برای ترجمه کد بین جاوا، سی پلاس پلاس و پایتون ارائه شده است. به عنوان مثال، TransCoder به شما اجازه می دهد کد منبع جاوا را به کد پایتون و کد پایتون را به کد منبع جاوا تبدیل کنید. پیشرفت های پروژه در حال اجرا شدن است تحقیق نظری در ایجاد یک شبکه عصبی برای تبدیل خودکار کارآمد کد و گسترش دارای مجوز Creative Commons Attribution-NonCommercial 4.0 فقط برای استفاده غیرتجاری.

پیاده سازی سیستم یادگیری ماشین بر پایه Pytorch است. دو مدل آماده برای دانلود ارائه می شود: اول برای ترجمه C++ به جاوا، جاوا به C++ و جاوا به پایتون و دوم برای پخش
سی پلاس پلاس به پایتون، پایتون به سی پلاس پلاس و پایتون به جاوا. برای آموزش مدل ها، از کد منبع پروژه های ارسال شده در GitHub استفاده کردیم. در صورت تمایل می توان مدل های ترجمه را برای سایر زبان های برنامه نویسی ایجاد کرد. برای بررسی کیفیت پخش مجموعه ای از تست های واحد و همچنین مجموعه آزمایشی شامل 852 تابع موازی تهیه شده است.

ادعا می شود که از نظر دقت تبدیل، TransCoder به طور قابل توجهی نسبت به مترجم های تجاری که از روش های مبتنی بر قوانین تبدیل استفاده می کنند برتری دارد و در روند کار به شما امکان می دهد بدون ارزیابی کارشناسی متخصصان در زبان مبدأ و مقصد انجام دهید. بسیاری از خطاهایی که در طول عملکرد مدل ایجاد می‌شوند را می‌توان با افزودن محدودیت‌های ساده به رمزگشا حذف کرد تا اطمینان حاصل شود که عملکردهای تولید شده از نظر نحوی درست هستند.

فیسبوک در حال توسعه TransCoder برای ترجمه کد از یک زبان برنامه نویسی به زبان دیگر است

محققان یک معماری شبکه عصبی جدید "Transformer" را برای مدل‌سازی دنباله‌ها پیشنهاد کرده‌اند که در آن تکرار با "تبدیل" جایگزین می‌شود.توجه(مدل seq2seq با توجه)، که به شما امکان می دهد از شر برخی وابستگی ها در نمودار محاسباتی خلاص شوید و آنچه را که قبلاً قابل موازی سازی نبودند موازی کنید. همه زبان‌های پشتیبانی‌شده از یک مدل مشترک استفاده می‌کنند که با استفاده از سه اصل آموزش داده می‌شود: راه‌اندازی، مدل‌سازی زبان و ترجمه برگشتی.

فیسبوک در حال توسعه TransCoder برای ترجمه کد از یک زبان برنامه نویسی به زبان دیگر است

منبع: opennet.ru

اضافه کردن نظر