← أحدث الأبحاث
🤖 machine learning

Understanding Robustness of Model Editing in Code LLMs

تقدم هذه الورقة معياراً مضبوطاً وبيئة اختبارية (sandbox) لتقييم تعديل النماذج في النماذج اللغوية الكبيرة الخاصة بالبرمجة (code LLMs) في ظل تحديثات واجهات برمجة التطبيقات (API)، كاشفةً أن طرق التعديل الحالية تواجه صعوبة في تعميم عمليات نقل واجهات برمجة التطبيقات الصحيحة إلى المهام غير المرئية، وغالباً ما تعتمد على حلول مؤقتة، وتعاني من تدهور حاد في الأداء وتداخل عند تطبيقها بشكل متتالٍ.

المؤلفون الأصليون: Vinaik Chhetri, Moghis Fereidouni, A. B Siddique, Umar Farooq

نُشر 2026-05-11
📖 4 دقيقة قراءة☕ قراءة في استراحة قهوة

المؤلفون الأصليون: Vinaik Chhetri, Moghis Fereidouni, A. B Siddique, Umar Farooq

البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل

تخيل أن لديك مساعداً آلياً (روبوت) موهوباً جداً وذكياً للغاية، يقوم بكتابة الأكواد البرمجية من أجلك. لقد تم تدريب هذا الروبوت على مكتبة ضخمة من الأكواد القديمة، لذا فهو يعرف كيف يؤدي المهام بالطريقة "القديمة". ولكن في العالم الحقيقي، تخضع أدوات البرمجيات (التي تسمى واجهات برمجة التطبيقات أو APIs) لتحديثات مستمرة، مثل تحديث الأزرار في تطبيق هاتف ذكي أو تغيير طريقة حفظ الملفات فيه.

المشكلة هي أن هذا الروبوت لا يتعلم هذه القواعد الجديدة تلقائياً. إذا طلبت منه استخدام نسخة جديدة من أداة ما، فقد يستمر بعناد في استخدام النسخة القديمة، أو قد يصاب بالارتباك ويكتب كوداً يتسبب في تعطل البرنامج.

تعديل النموذج (Model Editing) هو تقنية يستخدمها الباحثون لمحاولة "تعليم" الروبوت هذه القواعد الجديدة دون الحاجة إلى إعادة بناء الروبوت بأكده من الصفر. الأمر يشبه محاولة إعطاء تعليمات محددة لعقل ممتلئ بالفعل بالذكريات، على أمل أن يقوم بتحديث ذلك الجزء المحدد فقط دون أن ينسى كل شيء آخر.

هذه الورقة البحثية هي بمثابة اختبار جهد صارم لمعرفة ما إذا كانت "حيل التعليم" هذه تعمل حقاً. وإليك ما وجدوه، مشروحاً ببساطة:

1. فخ "النجاح الزائف"

قام الباحثون ببناء مطبخ اختبار خاص يحتوي على 2,040 لغزاً برمجياً. قاموا بتغيير القواعد لأدوات معينة (مثل إعادة تسمية دالة أو إضافة خطوة مطلوبة) وطلبوا من الروبات حل الألغاز باستخدام القواعد الجديدة.

وجدوا أن العديد من الروبوتات بدت وكأنها تجتاز الاختبارات، لكنها كانت تغش.

  • التشبيه: تخيل أنك قلت لطاهٍ: "استخدم السكين الكهربائي الجديد لتقطيع هذه الجزرة". يقطع الطاهي الجزرة بشكل مثالي، ولكن بدلاً من استخدام السكين الكهربائي، استخدم سكيناً عادياً باهتاً كان يخفيه في جيبه.
  • النتيجة: الاختبار قال "نجاح!" لأن الجزرة قُطعت. لكن الروبوت لم يتعلم القاعدة الجديدة فعلياً؛ بل وجد "طريقة للالتفاف" لتجاوز الأداة الجديدة تماماً. عندما أجبر الباحثون الروبوتات على استخدام الأداة الجديدة فقط (بإزالة طريقة الالتفاف)، انخفض معدل النجاح بشكل حاد.

2. "الإصلاح لمرة واحدة" مقابل "تأثير كرة الثلج"

اختبر الباحثون سيناريوهين:

  • التعديل الفردي (Single Edit): تعليم الروبوت قاعدة جديدة واحدة.
  • التعدات المتتالية (Successive Edits): تعليم الروبوت قاعدة جديدة، ثم أخرى، ثم أخرى، مثل كرة ثلج تتدحرج من فوق تلة.

النتائج:

  • التعديل الفردي: حتى عند تعليم قاعدة واحدة فقط، واجهت الروبوتات صعوبة. فإما أنها كتبت كوداً لا يمكن تشغيله (أخطاء في بناء الجملة/Syntax errors) أو كتبت كوداً يعمل ولكنه لا يستخدم الأداة الجديدة بشكل صحيح.
  • التعديلات المتتالية: كان هذا كارثياً. بمجرد محاولة تعليم الروبوتات قواعد جديدة متتالية، بدا وكأن عقول الروبوتات قد تعطلت. انخفض أداؤها إلى ما يقرب من الصفر. كان الأمر يشبه محاولة إضافة مكونات جديدة إلى خليط الكيك بينما الفرن يعمل بالفعل؛ الخليط بأكمله ينهار.

3. أين فشلوا؟

لم يكتفِ الباحثون بعدّ حالات الفشل فحسب، بل نظروا في كيفية فشلها. لقد قسموا العملية إلى مراحل:

  1. التجميع/الترجمة (هل يمكن تشغيله؟): هل يمكن للكود أن يبدأ العمل أصلاً؟
  2. اعتماد واجهة البرمجة (هل استخدم الأداة الجديدة؟): هل استخدم التعليمات المحدثة فعلياً؟
  3. التنفيذ (هل يعمل؟): هل يحل المشكلة؟

الاكتشاف:

  • عند تعليم قاعدة واحدة جديدة، فشلت الروبوتات غالباً لأنها لم تستطع حتى جعل الكود يبدأ في العمل (أخطاء التجميع/Compilation errors).
  • عند تعليم قواعد عديدة، فشلت الروبوتات بشكل أكبر، حيث أنتجت غالباً كلاماً غير مفهوم أو تكراراً بلا معنى لا يمكن للحاسوب قراءته.

4. مشكلة "الذاكرة" مقابل "البحث"

اختبرت الورقة طرقاً مختلفة لـ "التعليم".

  • حاولت بعض الطرق حفظ القاعدة الجديدة في دفتر ملاحظات منفصل (القائم على الذاكرة/Memory-based). كانت هذه الطرق جيدة في الحفاظ على مهارات الروبوت الأخرى، لكنها لا تزال تعاني في تطبيق القاعدة الجديدة بشكل صحيح.
  • حاولت طرق أخرى البحث في عقل الروبوت وتغيير جزء محدد جراحياً (تحديد الموقع ثم التعديل/Locate-then-Edit). كانت هذه الطرق هشة للغاية؛ فقد أدت غالباً إلى إتلاف قدرة الروبوت على كتابة الأكواد لمهام أخرى، وليس فقط المهمة الجديدة.

الخلاصة

تخلص الورقة إلى أن الأساليب الحالية لـ "تعديل" الذكاء الاصطناعي الذي يكتب الأكواد ليست جاهزة للعالم الحقيقي.

  • غالباً ما تخدعنا بـ "طرق للالتفاف" تبدو كنجاح ولكنها ليست كذلك.
  • تتعطل بسهولة عندما تحاول تحديثها أكثر من مرة واحدة.
  • تعاني للتمييز بين "كتابة كود يعمل" وبين "كتابة كود يستخدم الأدا_ة الجديدة بشكل صحيح".

باختصار، لا يمكننا مجرد "ترقيع" هذه الروبوتات الذكية لمواكبة تحديثات البرامج بعد. نحن بحاجة إلى طرق أفضل لتعليمها بحيث لا تجعلها تنسى كل شيء آخر أو تبدأ في كتابة كلام غير مفهوم.

غارق في أبحاث مجالك؟

تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.

جرّب Digest →