HyperAIHyperAI
منذ 2 أشهر

تعلم تمثيل الشفرة المقارن

Paras Jain; Ajay Jain; Tianjun Zhang; Pieter Abbeel; Joseph E. Gonzalez; Ion Stoica
تعلم تمثيل الشفرة المقارن
الملخص

العمل الحديث يتعلم التمثيلات السياقية للكود المصدر من خلال إعادة بناء الرموز من سياقها. بالنسبة للمهام ذات الصلة بالفهم الدلالي مثل تلخيص الكود باللغة الإنجليزية، يجب أن تلتقط هذه التمثيلات وظائف البرنامج بشكل مثالي. ومع ذلك، نوضح أن النموذج الشائع القائم على إعادة البناء BERT حساس للتعديلات في الكود المصدر، حتى عندما تحافظ هذه التعديلات على المعنى الدلالي. نقترح ContraCode (كونتراكود): مهمة تعليم مسبق تضادية تتعلم وظائف الكود وليس شكله. يقوم ContraCode بتعليم شبكة عصبية مسبقة لتحديد المتغيرات الوظيفية المتشابهة لبرنامج بين العديد من المقاطع غير المكافئة. نولد هذه المتغيرات بشكل قابل للتوسع باستخدام مترجم مصدر إلى مصدر آلي كشكل من أشكال زيادة البيانات. يحسن التعليم المسبق التضادي دقة تلخيص JavaScript ودقة استدلال الأنواع في TypeScript بنسبة تتراوح بين 2% و13%. كما نقترح مجموعة بيانات جديدة لا تحتوي على أي أمثلة سابقة للكشف عن النسخ المكررة للكود JavaScript، مما يظهر أن ContraCode أكثر صلابة ومعنى دلالياً. في هذا الإطار، نتفوق على RoBERTa بنسبة 39% في مؤشر AUROC في بيئة معادية، وفي حدود 5% على الكود الطبيعي.

تعلم تمثيل الشفرة المقارن | أحدث الأوراق البحثية | HyperAI