How Do LLMs Read Bug Reports? An Empirical Study of Attention in LLMs for Automated Program Repair
تقدم هذه الورقة أول دراسة تجريبية تثبت أن الإصلاح التلقائي للبرامج القائم على النماذج اللغوية الكبيرة (LLM) والناجح يعتمد على توزيع الانتباه عبر مكونات تشخيصية متنوعة في تقارير الأخطاء، بينما تعود حالات الفشل إلى تركيز الانتباه المفرط على البيانات الوصفية، مما يسلط الضوء على سوء تخصيص الانتباه كعامل رئيسي في عدم اتساق عملية الإصلاح.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
معضلة المحقق: لماذا يغفل الذكاء الاصطناعي أحياناً عن الأدلة
تخيل أنك محقق تحاول حل لغز ما. لديك دفتر ملاحظات مليء بالأدلة: قصة شاهد، صورة ضبابية، قائمة مشتبه بهم، وخريطة لمسرح الجريمة. لحل القضية، تحتاج إلى قراءة كل صفحة، وربط النقاط ببعضها، ومعرفة أي دليل هو المهم حقاً. الآن، تخيل أنك استأجرت روبوتاً فائق الذكاء ليقوم بنفس المهمة. قدمت له الدفتر، فكتب هو الحل فوراً. لكن الجزء الغريب هنا هو: أحياناً يحل الروبوت اللغز بشكل مثالي، وأحياناً أخرى يفشل تماماً—حتى عندما تعطيه نفس الدفتر بالضبط!
هذا هو عالم النماذج اللغوية الكبيرة (LLMs) والإصلاح التلقائي للبرامج (Automated Program Repair). النماذج اللغوية الكبيرة تشبه تلك الروبوتات فائقة الذكاء؛ فهي أنظمة ذكاء اصطناعي تدربت على كميات هائلة من النصوص والأكواد البرمجية. يمكنها كتابة القصص، والإجابة على الأسئلة، وحتى إصلاح الأخطاء (bugs) في البرامج الحاسوبية. "الإصلاح التلقائي للبرامج" هو مجرد مصطلح تقني معقد لطلب من الذكاء الاصطناعي النظر في برنامج معطل ووصف للمشكلة، ثم كتابة الكود لإصلاحه. لكن المطورين لاحظوا شيئاً محبطاً: هؤلاء المحققون الآليون غير متسقين. قد يصلحون خطأً واحداً بسهولة، لكنهم يفشلون في خطأ آخر مشابه جداً بجانبه مباشرة. يريد العلماء معرفة: لماذا؟ هل الذكاء الاصطناعي يخمن فحسب، أم أنه ينظر إلى الأدلة الخاطئة؟ تغوص هذه الورقة البحثية في "عقل" الذكاء الاصطناعي لترى بالضبط ما الذي يركز عليه عندما يحاول إصلاح برنامج معطل.
الاكتشاف الكبير للورقة البحثية: أين ينظر الذكاء الاصطناعي أمرٌ بالغ الأهمية
في هذه الدراسة، قرر الباحثون لعب لعبة "أوجد الفروق" مع انتباه الذكاء الاصطناعي. أخذوا 319 خطأً حقيقياً من مشاريع برمجية شهيرة (مكتوبة بلغتي بايثون وجافا) وطلبوا من ثلاثة نماذج مختلفة من الذكاء الاصطناعي إصلاحها. بعض هذه النماذج كانت نماذج ضخمة ومكلفة ومغلقة المصدر (مثل claude-4-sonnet المملوك لشركة)، والبعض الآخر كان نماذج مفتوحة المصدر (مثل gpt-oss-20b و qwen-3-32b).
ولمعرفة ما كان يفكر فيه الذكاء الاصطناعي، استخدم الباحثون حيلة ذكية تسمى تحليل الاضطراب (perturbation analysis). تخيل أن لديك وصفة لصنع كعكة، وتريد معرفة أي مكون هو الأكثر أهمية. يمكنك تجربة خبز الكعكة بدون الدقيق، ثم بدون السكر، لترى أيهما سيفسد الكعكة أكثر. فعل الباحثون الشيء نفسه مع تقارير الأخطاء. أخذوا تقرير الخطأ—الذي يحتوي عادةً على أقسام مثل "ما الذي حدث خطأ"، "كيف نجعل الخطأ يتكرر"، "ما هو إصدار البرنامج المستخدم"، و"كيف يبدو الكود"—وقاموا بحذف قسم واحد في كل مرة سراً. ثم طلبوا من الذكاء الاصطناعي محاولة إصلاح الخطأ مرة أخرى. إذا تغير إصلاح الذكاء الاصطناعي كثيراً بعد حذف قسم ما، فهذا يعني أن الذكاء الاصطناعي كان يولي اهتماماً كبيراً لهذا الجزء. أما إذا ظل الإصلاح كما هو، فهذا يعني أن الذكاء الاصطناعي لم يهتم بهذا الجزء.
أنماط الانتباه "المشتت" مقابل "المتمركز"
وجد الباحثون طريقتين مختلفتين تماماً لكيفية نظر الذكاء الاصطناعي إلى الأدلة، وهذه الأنماط أخبرتهم بكل شيء عن ما إذا كان الإصلاح سينجح أم لا.
1. المحقق "المشتت" (الفائز):
عندما نجح الذكاء الاصطناعي، كان يعمل كمحقق دقيق. فقد وزع انتباهه عبر أجزاء مختلفة من تقرير الخطأ. لقد نظر إلى وصف الخطأ (قصة ما حدث خطأ)، وتتبع المكدس (stacktrace) (السجل التقني للخطأ الذي يشير إلى السطر المحدد في الكود)، وحالات الاختبار (test cases) (أمثلة لكيفية عمل الكود المفترض). يطلق الباحثون على هذا اسم الانتباه المشتت (diffused attention). كان الأمر كما لو أن الذكاء الاصطناعي يقرأ الدفتر بأكمله، ويربط قصة الشاهد بالخريطة والصورة.
- النتيجة: عندما فعل الذكاء الاصطناعي ذلك، كان أكثر عرضة لإصلاح الخطأ. في الواقع، وجدت الدراسة أن "الانتباه المشتت" كان مرتبطاً بقوة بالنجاح.
2. المحقق ذو "الرؤية النفقية" (الخاسر):
عندما فشل الذكاء الاصطناعي، كان يعمل كمحقق يعاني من رؤية نفقية. لقد أصبح مهووساً بتفصيل صغير وغير مهم وتجاهل كل شيء آخر. غالباً ما كان يركز على معلومات الإصدار (مثل "إصدار البرنامج 1.2.3" أو "نظام التشغيل: لينكس"). هذا يشبه محققاً يتجاهل سلاح الجريمة والشاهد، وبدلاً من ذلك يقضي كل وقته في التحديق في مقاس حذاء المشتبه به.
- النتيجة: عندما ركز الذكاء الاصطناعي أكثر من اللازم على هذه التفاصيل الوصفية المملة، فإنه عادة ما يفشل في إصلاح الخطأ. أظهرت الدراسة أن "الانتباه المتمركز" (التركيز على شيء واحد فقط) كان علامة قوية على أن عملية الإصلاح ستفشل.
هل يتفق الذكاء الاصطناعي والبشر على ما هو مهم؟
أراد الباحثون أيضاً معرفة ما إذا كان الذكاء الاصطناعي ينظر إلى نفس الأدلة التي ينظر إليها المطورون البشر. لمعرفة ذلك، طلبوا من أربعة مطورين بشريين ذوي خبرة قراءة 100 من تقارير الأخطاء نفسها وتحديد الأجزاء التي اعتبروها الأكثر أهمية.
كانت النتائج مزيجاً من الأخبار الجيدة والسيئة:
- الأخبار الجيدة: عندما نجح الذكاء الاصطناعي، كان عادةً ينظر إلى نفس الأقسام التي اعتقد البشر أنها مهمة. اتفق الذكاء الاصطناعي والبشر على الأدلة الرئيسية (مثل وصف الخطأ) بنسبة 54% من الوقت.
- الأخبار السيئة: عندما فشل الذكاء الاصطناعي، كان غالباً ما يتجاهل أدلة البشر الرئيسية ويركز على الأشياء الخاطئة (مثل أرقام الإصدارات). وجدت الدراسة أنه كلما تطابق انتباه الذكاء الاصطناعي مع انتباه البشر، زادت فرصة النجاح في الإصلاح.
ما الذي استبعدته الورقة البحثية
من المهم ملاحظة ما لم تجده هذه الدراسة. تحقق الباحثون مما إذا كانت صعوبة الخطأ هي السبب الرئيسي للفشل. لقد نظروا في الأخطاء "السهلة"، "المتوسطة"، و"الصعبة". ووجدوا أنه بينما كانت الأخطاء الأصعب بالفعل أصعب في الإصلاح، فإن صعوبة الخطأ وحدها لم تفسر سبب فشل الذكاء الاصطناعي. حتى في الأخطاء السهلة، يمكن للذكاء الاصطناعي أن يفشل إذا كان يعاني من "الرؤية النفقية" وتجاهل الأدلة الصحيحة. وهذا يشير إلى أن المشكلة ليست فقط في أن الأخطاء صعبة للغاية؛ بل المشكلة هي أن الذكاء الاصطناعي ينظر أحياناً في المكان الخاطئ.
الخلاصة
تشير هذه الورقة إلى أن سر جعل الذكاء الاصطناعي أفضل في إصلاح الكود ليس مجرد إعطائه المزيد من البيانات أو جعله أكثر ذكاءً. بل يتعلق الأمر بتعليمه كيف يقرأ. تظهر الدراسة أن عمليات الإصلاح الناجحة تحدث عندما يوزع الذكاء الاصطناعي انتباهه عبر القصة بأكملها—الأعراض، سجلات الأخطاء، والسلوك المتوقع—بدلاً من التعلق بالتفاصيل المملة مثل إصدارات البرامج.
من خلال فهم أن الذكاء الاصطناعي يمكن أن يعاني من "الرؤية النفقية"، يمكن للمطورين الآن تصميم تعليمات (prompts) أفضل لإجبار الذكاء الاصطناعي على النظر إلى الأدلة الصحيحة. إنه يشبه تعليم المحقق التوقف عن التحديق في أحذية المشتبه به والبدء في النظر إلى سلاح الجريمة. لقد أنشأ الباحثون أيضاً مجموعة بيانات جديدة من تقارير الأخطاء الموضحة بشرياً للمساعدة في تدريب نماذج الذكاء الاصطناعي المستقبلية على الانتباه للأشياء الصحيحة، آملين في جعلها أكثر موثوقية كشركاء في إصلاح البرمجيات التي تدير عالمنا.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.