SkillForge: Self-Distilling Agents for Project-Specific Issue Resolution
تُعد SkillForge إطار عمل للتقطير الذاتي يعمل على تعزيز قدرة وكلاء النماذج اللغوية الكبيرة استباقياً على حل مشكلات البرمجيات في مستودعات محددة، وذلك عبر توليد وحل مشكلات اصطناعية مشتقة من الوظائف الجوهرية، مما يسمح بتقطير معرفة مشروع قابلة لإعادة الاستخدام ومرتكزة على الكيانات دون الاعتماد على بيانات إصلاح تاريخية أو استكشاف مكلف في وقت الاختبار.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
في المشهد الواسع والمعقد للبرمجيات الحديثة، يمثل الكود البرمجي الأساس الذي يقوم عليه عالمنا الرقمي. وعندما يتعطل شيء ما في برنامج معقد، فإن إصلاحه يتطلب غالباً فهماً عميقاً ليس فقط للقطعة المعطلة، بل لكيفية ملاءمة تلك القطعة للآلة بأكملها. ولعقود من الزمن، كان البشر هم الميكانيكيون الأساسيون لهذا العمل، ولكن مؤخراً، بدأت الذكاء الاصطناعي في الإمساك بالأدوات. فقد أظهرت النماذج اللغوية الكبيرة، وهي برامج حاسوبية قوية مدربة على كميات هائلة من النصوص والأكواد، قدرتها على التنقل في هذه المستودعات الرقمية، وإيجاد الأخطاء، وكتابة الإصلاحات. ومع ذلك، لا تزال هناك عقبة كبيرة: فغالباً ما تعاني وكلاء الذكاء الاصطناعي هذه عندما تواجه مشروعاً معيناً غير مألوف. فهي تفتقر إلى السياق المحلي — القواعد غير المكتوبة، والطرق المحددة التي تتواصل بها الأجزاء المختلفة من الكود مع بعضها البعض، والتاريخ الفريد لكيفية بناء ذلك البرنامج تحديداً. وبدون هذه المعرفة الداخلية، يكون الذكاء الاصطناعي مثل ميكانيكي بارع أُلقي به في ورشة لم يسبق له رؤيتها، ومُجبر على تخمين كيفية عمل المحرك في كل مرة يواجه فيها مشكلة جديدة.
لقد طور باحثون في جامعة شانغهاي جياو تونغ نهجاً جديداً لحل هذه المشكلة، وهو أسلوب يسمونه "SkillForge". فبدلاً من انتظار الذكاء الاصطناعي ليتعثر في الأخطاء الواقعية ويتعلم من أخطائه بمرور الوقت، يقوم هذا النظام بتعليم الذكاء الاصطناعي عن المشروع المحدد بشكل استباقي قبل أن يحاول إجراء أي إصلاح حقيقي. أدرك الفريق أنه لكي يفهم الذكاء الاصطناعي مشروعاً ما، يجب عليه التدرب عليه أولاً. لذا، أنشأوا ساحة تدريب حيث يولد الذكاء الاصطناعي مشكلاته الوهمية الخاصة. ومن خلال أخذ الوظائف الجوهرية لمشروع برمجي — تلك الأجزاء التي تم اختبارها بالفعل ومن المعروف أنها تعمل — والطلب من الذكاء الاصطناعي إعادة كتابتها من الصفر، يجبر النظام الذكاء الاصطناعي على ارتكاب الأخطاء. ولأن الذكاء الاصطنا_ي لا يملك إمكانية الوصول إلى الكود الأصلي، فعليه الاعتماد على معرفته العامة، مما يؤدي حتماً إلى أخطاء خاصة بكيفية بناء ذلك المشروع فعلياً. وهذه الأخطاء، التي يسميها الباحثون "المشكلات الاصطناعية"، تُستخدم بعد ذلك كأداة للتعلم. يحاول الذكاء الاصطناعي إصلاح هذه الأخطاء الوهمية، ومن خلال القيام بذلك، يكشف عن الأنماط المخفية والقواعد المحددة لذلك المشروع البرمجي.
ثم يأخذ النظام المسارات التي سلكها الذكاء الاصطناعي لحل هذه المشكلات الوهمية ويقوم بتقطيرها إلى مجموعة من "المهارات". فكر في هذه المهارات كدليل إرشادي مخصص لذلك البرنامج المحدد. وقد نظم الباحثون هذه المعرفة في نوعين. النوع الأول هو خريطة عالية المستوى تساعد الذكاء الاصطناعي على فهم الهيكل العام للمشروع، مثل ما يُفترض أن تفعله الأجزاء المختلفة من الكود وكيف تتفاعل عادةً. والنوع الثاني هو مجموعة من التعليمات المحددة لوقت قيام الذكاء الاصطناعي بتعديل الكود فعلياً، حيث تحذره من العثرات الشائعة وتذكره بالخصائص الغريبة والفريدة للمشروع. وعندما يُطلب من الذكاء الاصطناعي لاحقاً حل مشكلة حقيقية في نفس البرنامج، فإنه يستشير هذا الدليل الإرشادي. حيث يقوم أولاً بتحميل الخريطة عالية المستوى ليتعرف على الاتجاهات، ثم، وبينما يتعمق في الكود، يتلقى تذكيرات في الوقت المناسب بالقواعد المحددة التي يتعين عليه اتباعها. ويحدث هذا تلقائياً، مما يضمن امتلاك الذكاء الاصطناعي للسياق الصحيح في اللحظة التي يحتاجه فيها تماماً.
اختبر الباحثون هذا الأسلوب على مجموعة واسعة من المشاريع البرمجية الواقعية، مستخدمين نموذجين مختلفين من نماذج الذكاء الاصطناعي القوية لمعرفة مدى نجاحه. وقارنوا نظامهم بطرق أخرى تحاول مساعدة الذكاء الاصطناعي على التعلم من الإصلاحات البشرية السابقة أو من خلال استكشاف الكود أثناء حل مشكلة ما. وكانت النتائج واضحة: تفوق نهج SkillForge باستمرار على غيره. وفي اختبار قياسي لمهام هندسة البرمجيات، حسّن النظام معدل نجاح الذكاء الاصطناعي بنحو ست نقاط مئوية مقارنة بنموذج أساسي يفتقر إلى معرفة خاصة بالمشروع. وظل هذا التحسن ثابتاً حتى عندما اختبر الباحثون النظام على مجموعة مختلفة وأكثر صعوبة من التحديات. وأظهرت الدراسة أنه من خلال تعليم الذكاء الاصطناعي عن المشروع المحدد قبل بدء العمل الحقيقي، يمكن للنظام حل المشكلات بدقة وكفاءة أكبر من الطرق التي تحاول التعلم أثناء العمل أو التي تعتمد على البيانات التاريخية التي قد لا تغطي المشكلة الحالية.
كان أحد أكثر الجوانب كشفاً في البحث هو مراقبة كيفية تغير سلوك الذكاء الاصطناعي مع هذه المعرفة الجديدة. ففي حالة محددة تتعلق بخطأ تنسيق معقد في إطار عمل ويب شهير، استقر الذكاء الاصطناعي الذي لا يملك هذا التدريب بسرعة على حل بسيط وخاطئ بدا صحيحاً للوهلة الأولى ولكنه فشل عند اختباره مقابل النطاق الكامل للمتطلبات؛ إذ فاته المنطق الدقيق الخاص بالمشروع المطلوب للتعامل مع البيانات بشكل صحيح. في المقابل، اتخذ الذكاء الاصطناعي المجهز بدليل SkillForge نهجاً أكثر حذراً وهيكلية؛ حيث توقف ليفكر في القواعد المحددة للمشروع، وتجنب الفخ الشائع الذي وقع فيه الذكاء الاصطناعي غير المدرب، ووجد في النهاية حلاً اجتاز جميع الاختبارات اللازمة. أثبت هذا أن النظام لم يكن يمنح الذكاء الاصطناعي مزيداً من المعلومات فحسب، بل كان يغير بشكل جوهري طريقة تفكيره في الكود، مما يساعده على تجنب أنواع الأخطاء التي تأتي من تطبيق القواعد العامة على بيئة محددة وفريدة.
استكشف الباحثون أيضاً ما إذا كان بالإمكان نقل المعرفة المكتسبة من نموذج ذكاء اصطناعي واحد إلى نموذج آخر. ووجدوا أن المهارات التي تم تقطيرها بواسطة نموذج واحد كانت أكثر فعالية عند استخدامها من قبل نفس النموذج. وهذا يشير إلى أن المعرفة مرتبطة بعمق بكيفية تفكير نموذج ذكاء اصطناعي معين وكتابته للكود، بدلاً من كونها مجموعة حقائق عالمية حول البرنامج. يسلط هذا الاكتشاف الضوء على أن قيمة النظام تكمن في قدرته على التقاط الطريقة المحددة لتفاعل ذكاء اصطناعي معين مع مشروع معين. علاوة على ذلك، أظهرت الدراسة أن النظام يعمل بشكل أفضل عندما يركز على إعادة كتابة أجزاء متعددة متصلة من الكود معاً، بدلاً من مجرد وظائف فردية منعزلة. هذا النهج يلتقط التفاعلات المعقدة بين الأجزاء المختلفة للبرنامج، وهي المنطقة التي تختبئ فيها غالباً أكثر المعارف المحددة للمشروع أهمية.
في نهاية المطاف، يقدم هذا العمل طريقة لسد الفجوة بين الذكاء الاصطناعي العام القوي والاحتياجات المحددة لهندسة البرمجيات في العالم الحقيقي. ومن خلال الانتقال من النهج التفاعلي، حيث يتعلم الذكاء الاصطناعي من الأخطاء بعد وقوعها، إلى نهج استباقي، حيث يتعلم قواعد اللعبة قبل بدء المباراة، أظهر الباحثون مساراً نحو وكلاء برمجيات أكثر موثوقية وقدرة. لا يتطلب النظام تاريخاً ضخماً من الإصلاحات البشرية السابقة ليعمل، كما لا يتطلب من الذكاء الاصطناعي إضاعة الوقت والموارد في استكشاف الكود بشكل عشوائي أثناء عملية الإصلاح الفعلية. بدلاً من ذلك، يبني قاعدة معرفية مستهدفة وفعالة تسمح للذكاء الاصطناعي بالبدء بقوة. وتشير النتائج إلى أنه لكي يصبح الذكاء الاصطناعي شريكاً حقيقياً في تطوير البرمجيات، يجب منحه الفرصة لتعلم اللغة والتقاليد المحددة للمشروع الذي يعمل عليه، ويوفر SkillForge طريقة عملية وفعالة للقيام بذلك بالضبط.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.