ToolTrain: إطار عمل جديد لتعزيز البحث العميق في مخازن الأكواد البرمجية
يُعَدّ تحديد موقع المشكلة في الأكواد البرمجية، أي تحديد المواقع الدقيقة التي تحتاج إلى تعديل لإصلاح مشاكل البرنامج، مهمة شاقة تتطلب جهدًا يدويًا كبيرًا من المطورين، خاصةً في المخازن الكبيرة. ونظرًا لتعقيد هذه العملية وطبيعتها التي تستهلك الكثير من الوقت، أصبح أتمتة هذه المهمة محورًا رئيسيًا للبحث.
نماذج اللغات الكبيرة و تحديات البحث العميق في مخازن الأكواد
تتيح وكلاء نماذج اللغات الكبيرة (LLMs) استخدام أدوات متنوعة لاستكشاف مخازن الأكواد ديناميكيًا. ومع ذلك، تواجه هذه النماذج تحديات في إجراء ما يُعرف بـ “البحث العميق في المخازن” (Repo Deep Search)، وهي مهمة تنقل متسلسلة تتطلب استدلالًا متعدد الخطوات واستخدامًا فعالًا للأدوات. غالبًا ما تعاني نماذج LLMs الحالية من هذه المتطلبات العالية، مما يؤدي إلى استدعاءات أدوات غير صحيحة أو انهيار في الحفاظ على سلاسل استدلال متماسكة خلال عملية الاستكشاف.
المحاولات السابقة:
- تحديد مواقع الأخطاء: تستخدم طرق مثل DeepFL و DeepRL4FL الشبكات العصبية العميقة وشبكات CNN لتحديد الأكواد الخاطئة من خلال تحليل تغطية الاختبار، واعتماد البيانات، والتمثيلات الثابتة للكود.
- التطورات الحديثة باستخدام نماذج LLMs: تساعد نماذج LLMs مثل Agentless على تضييق نطاق مواقع الأكواد المحتملة. ومع ذلك، غالبًا ما تفتقر هذه النماذج إلى التعقيد اللازم للاستدلال المعقد واستخدام الأدوات في استكشاف مخازن الأكواد.
- طرق التدريب الوكيلية: تعمل طرق مثل SWE-Gym و SEAlign على ضبط نماذج LLMs بدقة باستخدام مسارات عالية الجودة. كما تُعد طريقة LocAgent طريقة أخرى تقوم ببناء الحقيقة الأرضية لتحديد مواقع المشاكل بناءً على الوظائف التي تم تعديلها بواسطة التصحيحات المثالية من GitHub.
ToolTrain: الحلّ المُبتكر
اقترح باحثون من جامعة بكين وByteDance ومعهد بكين للتكنولوجيا، ToolTrain، وهو إطار عمل تدريب مدمج بالأدوات لتعزيز قدرات الاستدلال متعدد الخطوات في نماذج LLMs أثناء تحديد مواقع المشاكل.
RepoSearcher: الوكيل الخفيف الوزن
يُقدم ToolTrain RepoSearcher
، وهو وكيل خفيف الوزن مزود بأدوات استرجاع بسيطة تمكّن نماذج LLMs من تحديد مواقع تعريفات الوظائف أو الفئات حسب الاسم.
عملية التدريب المبتكرة:
لبناء قدرات نماذج LLMs على استخدام هذه الأدوات في الاستدلال متعدد الخطوات، قام الباحثون ببناء بيانات مُعلّمة من مخازن مفتوحة المصدر واتبعوا عملية من مرحلتين:
- التعلم المُعزز المُحسّن (Rejection-sampled SFT): لضمان تعلم النموذج استخدام الأدوات بشكل استراتيجي، وتجنب عمليات الاستكشاف الزائدة عن الحاجة مع التركيز على مسارات الأكواد الواعدة.
- التعلم المُعزز المُدمج بالأدوات: لتعزيز قدرة النموذج على استخدام الأدوات بشكل فعال في عملية الاستدلال.
تقييم الأداء
قام الباحثون ببناء مجموعة بيانات التقييم الخاصة بهم باستخدام SWE-Bench-Verified، وهو مقياس مُشتق من مشاكل GitHub الحقيقية وتم التحقق منه يدويًا بواسطة مطورين محترفين. توفر هذه المجموعة بيانات إجابات دقيقة لتحديد مواقع المشاكل من خلال تحديد الوظائف والملفات التي تم تعديلها في التصحيحات المثالية.
للتقييم، تم استخدام مقاييس مثل Recall@k، وMAP، وMRR، وnDCG@k، و%Resolved. تم تطبيق ToolTrain على نموذجين، Qwen-7B و Qwen-32B، ثم تم مقارنتهما بأربعة أطر عمل متطورة: Agentless، وCrcaLoca، وCoSIL، وLocAgent.
النتائج
حقق RepoSearcher مع ToolTrain أداءً متطورًا بين النماذج ذات الحجم المماثل، بل وتفوق على نماذج تجارية أكبر في مقاييس محددة. على سبيل المثال، حقق RepoSearcher مع ToolTrain-32B درجة Recall@5 على مستوى الوظائف بلغت 68.55، متجاوزًا Claude-3.7-Sonnet (66.38). كما تفوق النموذج ذو 7 مليار بارامتر على أطر عمل أخرى تستخدم نماذج 32 مليار بارامتر، مما يعزز قدرات استدعاء الأدوات في النماذج الأصغر.
في حلّ المشكلات، حقق RepoSearcher مع ToolTrain-7B درجة Recall@5 بلغت 62.38 ومعدل حلّ بلغ 14.00، وهو الأفضل بين نماذج 7 مليار بارامتر. ومع ذلك، ظهرت اختلافات عند استخدام نماذج توليد تصحيحات مختلفة، كما هو موضح في معدلات الحلّ 14.00 (ToolTrain-7B) مقابل 31.60 (ToolTrain-32B)، على الرغم من نتائج تحديد المواقع المتشابهة.
الخلاصة
قدم الباحثون ToolTrain لتعزيز تحديد مواقع المشاكل في نماذج LLMs. من خلال الجمع بين SFT و RL، يُمكّن ToolTrain نماذج مثل RepoSearcher من التنقل بفعالية في مخازن الأكواد وإجراء استدلال دقيق متعدد الخطوات. حققت النماذج المدربة بواسطة ToolTrain، عند تقييمها على معايير حقيقية، أداءً متطورًا بين النماذج ذات الحجم المماثل، بل وتفوقت على نماذج تجارية أكبر مثل Claude-3.7 في مهام محددة. يُظهر هذا قدرتها على تحسين استخدام الأدوات والاستدلال في النماذج الأصغر، مما يقلل من التكرار ويُحسّن الكفاءة. تُبرز الدراسة إمكانات ToolTrain في تغيير عملية تحديد مواقع المشاكل وتوفير حلّ فعال للتحديات البرمجية المعقدة.
[رابط الورقة البحثية](رابط افتراضي) [رابط صفحة GitHub](رابط افتراضي)
اترك تعليقاً