في عالم هندسة البرمجيات، يُعتبر تقطيع البرامج الثابت (Static Program Slicing) تقنية أساسية تهدف إلى عزل الأكواد ذات الصلة بمتغيرات معينة. ومع تقدم مجالات التعلم الآلي، برزت الوعود الكبيرة لاستخدام نماذج اللغة (Language Models) في أتمتة توقعات التقطيع. لكن، ورغم الإمكانيات، كانت هناك تحديات تتعلق بنمذجة الاعتماديات (Dependency Modeling) وتقنيات التوليد غير المقيدة (Unconstrained Generation).
للتغلب على هذه التحديات، تم تقديم Sliceformer كنهج جديد يُعيد صياغة تقطيع البرامج الثابت كمسألة تسلسلية (Sequence-to-Sequence Task) باستخدام نماذج لغوية صغيرة مثل CodeT5+. يعتمد Sliceformer على ابتكاريْن رئيسيين:
1. **أهداف ما قبل التدريب المعتمدة على تدفق البيانات (Dataflow-Aware Pretraining Objectives)**: يجري هذا الأمر من خلال الاستفادة من رسومات تدفق البيانات (Data Flow Graphs) لتعليم النماذج الاعتماديات بين البيانات، عبر إعادة ترتيب الجمل بطريقة تحافظ على تدفق البيانات.
2. **آلية تشفير مقيدة (Constrained Decoding Mechanism)**: تساعد هذه الآلية في القضاء على مشكلة الهلاوس (Hallucination) التي يعاني منها العديد من النماذج اللغوية، من خلال فرض قيود على الجانب المعجمي (Lexical) والنحوي (Syntactic).
أثبت Sliceformer فعاليته من خلال تقييمه على معايير تقطيع البرامج بلغة Java وPython، إذ أظهر تحسينات ملحوظة مقارنةً بأفضل المعايير الحالية، مع تحقيق زيادات تصل إلى 22% في دقة المطابقة الدقيقة (Exact Match). هذا الابتكار يعد خطوة مهمة نحو تحقيق تقنيات تقطيع برامج أكثر دقة وكفاءة.
ما رأيكم في هذا التطور المذهل؟ شاركونا في التعليقات!
ابتكار Sliceformer: ثورة في تقنيات تقطيع البرامج باستخدام نماذج اللغة!
تقدم Sliceformer طريقة رائدة في تقطيع البرامج بشكل دقيق يعتمد على فهم تدفق البيانات. بفضل الأهداف المدربة مسبقاً والآلية الجديدة للتشفير، تحقق نهج Sliceformer تقدمًا ملحوظًا في تحسين دقة النماذج اللغوية.
المصدر الأصلي:أركايف للذكاء
زيارة المصدر الأصلي ←جاري تحميل التفاعلات...
