Cost-Effective Detection of Self-Admitted Technical Debt: A Collaborative Framework of Proxy Active Learning and Large Language Models
تقترح هذه الورقة إطار عمل تعاوني فعال من حيث التكلفة يجمع بين استراتيجية التعلم النشط بالوكالة القائمة على نموذج BERT وتدريب نموذج Flan-T5 بكامل المعلمات للكشف بدقة عن الديون التقنية ذاتية الاعتراف باستخدام 30% فقط من البيانات المصنفة المطلوبة بطرق الإشراف الكامل التقليدية.
المؤلفون الأصليون:Zhicheng Wang, Tianxin Lei, Tie Bao
في حياة المشاريع البرمجية، غالبًا ما تفوز السرعة على المثالية. فعندما يتسابق المطورون للوفاء بموعد نهائي، قد يتخذون أحيانًا قرارًا واعيًا بكتابة كود ليس دقيقًا تمامًا، مدركين أنهم سيضطرون لإصلاحه لاحقًا. إنهم يتركون ملاحظات داخل الكود نفسه، تعترف بأن هذا الجزء هو مجرد حل مؤقت أو تسوية. في عالم البرمجيات، يُعرف هذا باسم "الديون التقنية المعترف بها ذاتيًا". إنه ضريبة خفية على المستقبل؛ فبينما يساعد هذا الكود الفريق على إطلاق منتج اليوم، إلا أن هذا الكود الفوضوي يجعل البرمجيات أصعب في الفهم، وأكثر عرضة للتعطل، وأعلى تكلفة بكثير في الصيانة غدًا. إن العثور على هذه الملاحظات المخفية أمر بالغ الأهمية للحفاظ على سلامة البرمجيات، لكنها مهمة صعبة. فهذه الملاحظات مدفونة داخل ملايين الأسطر من النصوص، وهي نادرة، حيث تظهر غالبًا في واحد أو اثنين فقط من بين كل مائة تعليق. علاوة على على ذلك، فإن اللغة المستخدمة غير رسمية ومليئة باللمسات البشرية الدقيقة، مما يجعل من الصعب على البرامج الحاسوبية القياسية رصدها دون قدر هائل من المساعدة البشرية لتعليم النظام ما يجب البحث عنه.
لقد طور فريق من الباحثين من جامعة جيلين في الصين طريقة جديدة للعثور على هذا الدين التقني توفر الوقت والمال دون التضحية بالدقة. لقد واجهوا معضلة: فأقوى النماذج الحاسوبية المتاحة اليوم، والمعروفة بنماذج اللغات الكبيرة، ممتازة في فهم اللغة البشرية ويمكنها رصد ملاحظات الدين هذه بدقة عالية، لكنها مكلفة للغاية في التشغيل وتتطلب كميات هائلة من البيانات المصنفة للتعلم. ومن ناحية أخرى، فإن النماذج الأصغر والأسرع رخيصة التشغيل ولكنها غالبًا ما تخطئ في فهم المعنى الضمني وراء الملاحظات. وقد حل الباحثون هذه المشكلة من خلال إنشاء شراكة من خطوتين بين نموذج بسيط وسريع ونموذج قوي ومعقد. فقد استخدموا النموذج السريع أولاً ليعمل ككشاف، يقوم بغربلة آلاف تعليقات الكود للعثور على الأمثلة الأكثر إثارة للاهتمام وصعوبة. وفقط هذه الأمثلة المختارة ذات القيمة العالية هي التي يتم تمريرها بعد ذلك إلى النموذج القوي للتعلم العميق. سمح هذا النهج بتدريب نظام عالي الدقة باستخدام 30 بالمائة فقط من البيانات التي قد يتطلبها الأمر عادةً.
أظهرت الدراسة، التي اختبرت هذه الطريقة على عشرة مشاريع برمجية مفتوحة المصدر شهيرة مكتوبة بلغة البرمجة "جافا"، أن هذه الاستراتيجية التعاونية تعمل بشكل جيد بشكل ملحوظ. فمن خلال استخدام النموذج السريع لتصفية البيانات، تمكن الباحثون من تدريب النموذج القوي ليؤدي بنفس كفاءة تدريبه على مجموعة البيانات بأكملها، ولكن بكسر ضئيل من الجهد اليدوي. وفي الواقع، بالنسبة لعدة مشاريع تم اختبارها، تفوقت الطريقة الجديدة في الواقع على النهج القياسي الذي يستخدم كافة البيانات. ووجد الباحثون أنه عندما أوقفوا عملية التدريب بعد تصنيف 30 بالمائة فقط من التعليقات، كان النظام بالفعل بجودة، أو أحيانًا أفضل من، الأنظمة التي تم تدريبها على 100 بالمائة من البيانات. وهذا يشير إلى أن المفتاح للكفاءة ليس فقط في امتلاك المزيد من البيانات، بل في امتلاك البيانات الصحيحة. فقد نجح النموذج السريع في تحديد التعليقات المحددة الأكثر فائدة لتعليم النظام، مما سمح للنموذج القوي بالتعلم بسرعة وفعالية من مجموعة مختارة ومنسقة من الأمثلة.
تناول هذا العمل أيضًا ما إذا كان بإمكان الطريقة أن تعمل عبر مشاريع برمجية مختلفة، وهو سيناريو يُطلب فيه من نظام تم تدريبه على مشروع واحد البحث عن الدين في مشروع مختلف تمامًا. وهذا تحدٍ شائع لأن الفرق المختلفة تستخدم كلمات وأساليب مختلفة. ووجد الباحثون أن طريقتهم كانت جيدة جدًا في هذا أيضًا. فقد استطاع النموذج القوي، بعد تعلمه من الأمثلة المختارة بعناية، تعميم معرفته والعثور على الدين في مشاريع جديدة بدقة عالية، متفوقًا في كثير من الأحيان على الطرق الأخرى التي حاولت التعلم من نفس المشاريع دون خطوة التصفية هذه. وتشير النتائج إلى أنه من خلال الجمع بين سرعة النموذج البسيط والفهّم العميق للنموذج الكبير، يمكن لفرق البرمجيات تحديد وإصلاح ديونهم التقنية بكفاءة أكبر بكثير. وهذا يعني أنه يمكنهم قضاء وقت أقل في البحث يدويًا عن المشكلات، ووقت أكثر في بناء برمجيات موثوقة، مما يجعل عملية صيانة البرمجيات بأكملها أكثر استدامة وفعالية من حيث التكلفة.
ملخص تقني: الكشف الفعال من حيث التكلفة عن الديون التقنية المعترف بها ذاتياً
بيان المشكلة تشير الديون التقنية المعترف بها ذاتياً (SATD) إلى التنازلات في التصميم التي يوثقها المطورون صراحةً في تعليقات الشفرة المصدرية لتسهيل معالجتها مستقبلاً. وبينما يعد تحديد هذه الديون أمراً حاسماً لتقليل تكاليف الصيانة وتعزيز موثوقية البرمجيات، إلا أنه يفرض تحديات كبيرة. فالمهمة هي بطبيعتها مشكلة تصنيف نصوص ثنائية تتميز باختلال شديد في توازن الفئات (حيث تشكل حالات SATD غالباً أقل من 1.5% من التعليقات) وندرة في البيانات. وعلى الرغم من أن نماذج التعلم العميق قد حسنت دقة الكشف، إلا أنها تعتمد بشكل كبير على مجموعات بيانات ضخمة وعالية الجودة وموسومة. ويتطلب الحصول على مثل هذه البيانات خبرة في المجال وتكاليف وسم باهظة. علاوة على على ذلك، تواجه مناهج التعلم النشط الحالية صعوبة في الموازنة بين الحاجة إلى استخراج الميزات الدلالية العميقة وبين العبء الحسابي للنماذج اللغوية الكبيرة (LLMs)، والتي غالباً ما تكون مكلفة للغاية للتدريب التكراري عالي التردد.
المنهجية تقترح الورقة إطار عمل تعاوني منفصل يدمج التعلم النشط بالوكالة (Proxy Active Learning) مع النماذج اللغوية الكبيرة (LLMs). يتم هيكلة النهج في ثلاث مراحل أساسية:
إعداد البيانات واستراتيجية البداية الباردة (Cold-Start Strategy): لمعالجة مشكلة "البداية الباردة" حيث يفشل أخذ العينات العشوائي في التقاط الفئة الإيجابية النادرة، صمم المؤلفون استراتيجية تهيئة هجينة. استخدموا كلمات مفتاحية متخصصة في المجال (مثل "TODO" و"FIXME" و"HACK") لتحديد عينات مرشحة إيجابية. وضمن هذا المجمع الغني بالكلمات المفتاحية، تقوم خوارزمية "أقرب الجيران" (KNN) بحساب درجات التمثيل بناءً على تمثيل (TF-IDF). تشكل أعلى 10% من العينات ذات درجات التمثيل الأعلى مجموعة التدريب الأولية، مما يضمن توفير إمداد كافٍ من الحالات الإيجابية والنماذج النموذجية دون إدخال تحيز من نموذج التعلم العميق نفسه.
استراتيجية الفحص بالوكالة (مكون "الوكيل"): لتجنب تكاليف الاستدلال الباهظة لتشغيل النماذج اللغوية الكبيرة أثناء كل دورة تعلم نشط، يستخدم الإطار نموذجاً تمييزياً خفيف الوزن، وهو BERT، كـ "محرك استعلام وكيل".
استراتيجية الاستعلام الهجين: ينفذ وكيل BERT استراتيجية استعلام تدمج بين عدم اليقين (باستخدام مقياس أقل ثقة) والتمثيل (باستخدام تقدير كثافة KNN في الفضاء الدلالي).
آلية الدمج: بدلاً من المجموع الموزون، يستخدم النهج دمجاً ضربياً مباشراً لدرجات عدم اليقين والتمثيل المعيرة لتصنيف العينات غير الموسومة.
العملية: في كل دورة، يقوم وكيل BERT بفحص المجمع غير الموسوم لاختيار العينات الأكثر إفادة (تلك القريبة من حدود القرار والممثلة لفضاء الميزات). ثم تُرسل هذه العينات للوسم اليدوي.
التدريب التعاوني مع النموذج اللغوي المستهدف: المتعلم المستهدف هو Flan-T5-Large، وهو نموذج توليدي معروف بقدراته القوية في الاستنتاج عبر الضبط الدقيق للتعليمات. وخلافاً للوكيل، لا يُستخدم Flan-T5 للاستعلام التكراري، بل يخضع لعملية ضبط دقيق كامل المعلمات لمرة واحدة فقط بعد وصول عملية التعلم النشط إلى عتبة توقف محددة (أي عندما يصل حجم مجموعة البيانات الموسومة إلى حجم معين). يتم تعديل رأس التصنيف الخاص بـ Flan-T5 (باستبدال طبقة التوليد برأس تصنيف) لأداء مهمة كشف SATD. يسم هذا الفصل النظام من الاستفادة من العمق الدلالي للنموذج اللغوي الكبير للوصول إلى الأداء النهائي، مع الاعتماد على وكيل BERT الفعال في حلقة اختيار البيانات المكلفة.
المساهمات الرئيسية
التعلم النشط العميق مع استعلام هجين: يقترح المؤلفون استراتيجية تجمع بين عدم اليقين والتمثيل، معززة بكلمات مفتاحية متخصصة وTF-IDF للتهيئة في مرحلة البداية الباردة. وهذا يعالج تكرار العينات ويضمن أن تكون مجموعة التدريب الأولية ممثلة للفئة الإيجابية النادرة.
إطار عمل تعاوني بين الوكيل والنموذج اللغوي الكبير: بنية مبتكرة تفصل بين عملية فحص العينات وتدريب النموذج. فهي تستخدم BERT كوكيل فعال حسابياً لتحديد العينات الرئيسية، والتي تُستخدم لاحقاً لتدريب نموذج Flan-T5 واسع النطاق. هذا التصميم يوفق بين الفهم الدلالي العميق والكفاءة الحسابية، متجاوزاً اختناقات الاستدلال للنماذج اللغوية الكبيرة في حلقات التعلم النشط.
التحقق التجريبي: تم التحقق من المنهجية عبر عشرة مشاريع مفتوحة المصدر شهيرة بلغة Java (مثل Dubio وMaven وSpringFramework) في سيناريوهات داخل المشروع وعبر المشاريع.
النتائج
الأداء: حققت طريقة Flan-T5-AL المقترحة أداءً يضاهي، وفي عدة حالات يتجاوز، النماذج المرجعية الخاضعة للإشراف الكامل. في السيناريوهات داخل المشروع، حققت متوسط درجة F1 قدرها 0.771، متفوقة على نموذج BERT المرجعي الخاضع للإشراف الكامل (0.739) ونموذج Flan-T5 المرجعي الخاضع للإشراف الكامل (0.754).
كفاءة التكلفة: قلل الإطار بشكل كبير من متطلبات الوسم اليدوي. وتشير النتائج التجريبية إلى أن استخدام 30% فقط من البيانات الموسومة (عتبة التوقف μ=0.3) يسمح للنموذج بتحقيق نسب أداء تصل إلى 100% أو أكثر مقارنة بنماذج الإشراف الكامل في مشاريع مثل Groovy وMaven وStorm.
التعميم: في سيناريوهات عبر المشاريع (Leave-One-Project-Out)، أظهر الإطار التعاوني قدرات فائقة على نقل النطاق، محققاً متوسط درجة F1 قدرها 0.776، متفوقاً على كل من BERT الخاضع للإشراف الكامل (0.736) وFlan-T5 (0.761). وقد نجح مكون التعلم النشط في تصفية الضوضاء الخاصة بالمشاريع بفعالية، مختاراً الميزات الدلالية العالمية للديون التقنية.
الأهمية تزعم الورقة أن أهميتها الرئيسية تكمكمن في حل معضلة "الدقة العالية تتطلب تكلفة عالية" في كشف SATD. فمن خلال فصل عملية الفحص عن تدريب النموذج النهائي، يتيح الإطار نشر كاشفات مدفوعة بالنماذج اللغوية الكبيرة ذات دقة عالية مع تقليل ميزانية الوسم بشكل جذري (حوالي 30% من المتطلبات الأصلية). يقلل هذا النهج من الحاجة العملية لتحديد SATD، مما يجعل دمج آليات قوية لكشف الديون في سير عمل صيانة البرمجيات أمراً ممكناً دون التكاليف الحسابية والبشرية الباهظة المرتبطة بتدريب النماذج اللغوية الكبيرة على مجموعات بيانات ضخمة موسومة. وتشير الدراسة إلى أن هذا النموذج التعاوني يتجاوز بفعالية السقوف الأدائية للنماذج التمييزية التقليدية مع الحفاظ على الجدوى الحسابية.