CODESIM: Multi-Agent Code Generation and Problem Solving through Simulation-Driven Planning and Debugging
تقدم الورقة البحثية CodeSim، وهو إطار عمل جديد متعدد الوكلاء يحقق أداءً رائدًا في توليد الكود البرمجي من خلال توظيف نهج يحاكي البشر ويعتمد على المحاكاة للتحقق من الخطط وتصحيح الأخطاء الداخلي عبر سبعة معايسات اختبارية صعبة.
المؤلفون الأصليون:Md. Ashraful Islam, Mohammed Eunus Ali, Md Rizwan Parvez
تخيل أنك تحاول تعليم روبوت ذكي جداً، ولكنه حرفي التفكير قليلاً، كيفية حل لغز معقد. في الماضي، إذا طلبت من هذا الروبوت كتابة برنامج حاسوبي لحل مسألة رياضية، فغالباً ما كان يخمن حلاً، ثم يشغله، ويرى فشله، ثم يحاول إصلاح الأجزاء المعطلة. كان ذلك يشبه مطالبة طالب بكتابة مقال، ثم إعادته إليه وهو مليء بالأخطاء بالقلم الأحمر، ومطالبته بإصلاحها دون شرح سبب الخطأ المنطقي في المقام الأول.
تقدم الورقة البحثية نظاماً جديداً يسمى CODESIM (محاكاة الكود). فكر في CODESIM ليس كـروبوت واحد، بل كـفريق من ثلاثة خبراء متخصصين يعملون معاً، مستخدمين خدعة فريدة: المحاكاة الذهنية.
إليك كيف يعمل الفريق، باستخدام تشبيه طاقم إنتاج فيلم:
1. المخرج (وكيل التخطيط)
قبل كتابة سطر واحد من الكود، يتدخل "المخرج".
ماذا يفعل: ينظر إلى المشكلة ويقول: "حسناً، كيف سنحل هذا؟". بدلاً من مجرد التخمين، يسترجع فيلماً مشابهاً رآه من قبل (مشكلة سابقة) ليستلهم منه.
الخدعة السحرية (المحاكاة): قبل إعطاء السيناريو للممثلين، يقوم المخرج بتشغيل الفيلم ذهنياً مشهداً بمشهد. يتساءل: "إذا مر البطل عبر هذا الباب، هل ستستقيم الحبكة؟".
النتيجة: إذا وجد ثغرة في الحبكة أثناء "الفيلم الذهني"، يعيد المخرج كتابة الخطة فوراً. هو لا ينتظر حتى يتم تصوير الفيلم ليدرك أن القصة معطلة. هذا يضمن أن يكون المخطط متيناً قبل بدء البناء.
2. كاتب السيناريو (وكيل البرمجة)
بمجرد موافقة المخرج على الخطة، يتولى "كاتب السيناريو" المهمة.
ماذا يفعل: يترجم خطة المخرج التفصيلية إلى اللغة الفعلية للفيلم (الكود).
العملية: يكتب السيناريو بناءً بدقة على الخطة التي تم التحقق منها مسبقاً. إذا كانت الخطة جيدة، فمن المرجح أن يكون السيناريو جيداً.
3. المحرر (وكيل تصحيح الأخطاء)
أحياناً، حتى مع وجود خطة رائعة، قد يرتكب كاتب السيناريو خطأ مطبعياً أو خطأ صغيراً في السيناريو. وهنا يأتي دور "المحرر" للإمساك بهذه الأخطاء.
الطريقة القديمة: عادةً، يقوم المحرر بتشغيل الفيلم فقط ويرى أين تعطل، ثم يخمن ما الذي يجب إصلاحه.
طريقة CODESIM: لا يقوم المحرر بالتخمين فحسب. بل يحاكي الفيلم مرة أخرى، ولكن هذه المرة يشاهد المشهد المحدد الذي فشل فيه. إنه يتتبع الأحداث إطاراً تلو الآخر (خطوة بخوة) ليرى بالضبط أين اتخذت الشخصية مساراً خاطئاً.
النتيجة: لأن المحرر شاهد "المحاكاة الذهنية" للفشل، فهو يعرف بالضبط كيفية إصلاح المشهد. لا يحتاج إلى توليد مشاهد اختبار عشوائية جديدة؛ بل يقوم فقط بإصلاح الخطأ المنطقي المحدد الذي رآه في المحاكاة.
لماذا يعد هذا أمراً هاماً؟
تجادل الورقة بأن الطرق السابقة كانت تشبه بناء منزل، والانتظار حتى ينهار السقف، ثم محاولة ترقيعه. أما CODESIM فهو يشبه فحص المخططات والتجول داخل المنزل في مخيلتك قبل أن تضع لبنة واحدة.
إنه يشبه البشر: غالباً ما يحل البشر المشكلات عن طريق تصور الخطوات ("إذا فعلت س، سيحدث ص"). CODESIM يجبر الذكاء الاصطناعي على القيام بالشيء نفسه.
إنه فعال: نظرًا لأن الفريق يتحقق من المنطق مبكراً (التخطيط) ويتتبع الأخطاء بعناية (تصحيح الأخطاء)، فإنهم لا يضيعون الوقت في كتابة كود معيب جوهرياً.
النتائج: اختبر المؤلفون هذا الفريق في سبعة "مسابقات" مختلفة (ألغاز رياضية وبرمجية صعبة). فاز الفريق في هذه المسابقات أكثر من أي طريقة أخرى تم اختبارها، محققاً درجات قياسية. على سبيل المثال، في اختبار قياسي يسمى HumanEval، حصلوا على 95.1% صحيحة، وهو رقم قياسي جديد.
الخلاصة
CODESIM هو طريقة أذكى لجعل الذكاء الاصطناعي يكتب الكود. فبدلاً من مجرد "التخمين والتحقق"، فإنه يستخدم نهجاً قائماً على المحاكاة حيث "يفكر" الذكاء الاصطناي في المشكلة خطوة بخطوة، ويتحقق من منطقه الخاص قبل الكتابة، ويتتبع أخطاءه بعناية عندما تسوء الأمور. إنه يشبه منح الذكاء الاصطناعي نظارات تسمح له برؤية منطق أفكاره الخاصة، مما يؤدي إلى أخطاء أقل وحلول أفضل.
إليك ملخص تقني مفصل لورقة البحث بعنوان: "CODESIM: توليد الكود وحل المشكلات عبر وكلاء متعددين من خلال التخطيط والتصحيح القائم على المحاكاة."
1. بيان المشكلة
بينما حققت النماذج اللغوية الكبيرة (LLMs) تقدماً ملحوظاً في توليد الكود، تواجه الأساليب المتطنة الحالية عائقاً حرجاً: الاعتماد على جودة توليد الكود الأولي.
القيود الحالية: تعتمد معظم الطرق الموجودة على عملية ذات مرحلتين؛ حيث يقوم النموذج اللغوي الكبير بتوليد برنامج أولي، يليه مصحح أخطاء خارجي يعتمد على الأدوات لتصحيح الأخطاء بناءً على ملاحظات المترجم (Compiler).
المشكلة الجوهرية: إذا كان التوليد الأولي معيباً بشكل جوهري (على سبيل المثال: منطق خاطئ أو خوارزمية غير صحيحة)، فإن المصححات الخارجية غالباً ما تفشل في التعافي، مما يؤدي إلى اعتماد ثقيل على المرحلة الأولى. علاوة على ذلك، تركز العديد من أطر العمل متعددة الوكلاء على توسيع الخطوات دون التحقق من الفرضيات الأساسية قبل البرمجة، مما يؤدي إلى عدم الكفاءة ومكاسب محدودة.
2. المنهجية: إطار عمل CODESIM
يقدم CODESIM إطار عمل متعدد الوكلاء مبتكر يحاكي حل المشكلات لدى البشر من خلال دمج التخطيط والتصحيح القائم على المحاكاة. بدلاً من الاعتماد فقط على ملاحظات المترجم الخارجية، يقوم النظام بإجراء محاكاة داخلية خطوة بخوة للمدخلات والمخرجات للتحقق من المنطق قبل وأثناء توليد الكود.
يتكون إطار العمل من ثلاثة وكلاء متخصصين:
أ. وكيل التخطيط (Planning Agent)
الوظيفة: توليد خطة حل بناءً على وصف المشكلة.
الآلية:
استدعاء النماذج (Exemplar Recall): يستدعي الوكيل نموذجاً مثالياً واحداً ذا صلة (مختلف عن النموذج الحالي) لتوجيه النهج الخوارزمي، محاكياً بذلك كيفية استرجاع البشر لتجاربهم السابقة.
توليد الخطة: يضع خطة خطوة بخطوة.
التحقق القائم على المحاكاة: من الناحية الجوهرية، يقوم الوكيل بـ محاكاة الخطة باستخدام مدخلات عينة خطوة بخطوة. ويقوم بمقارنة المخرجات المحاكات مع النتائج المتوقعة.
التحسين: إذا فشلت المحاكاة، يتم تعديل الخطة فوراً. يضمن هذا سلامة المنطق قبل كتابة أي كود.
ب. وكيل البرمجة (Coding Agent)
الوظيفة: ترجمة الخطة التي تم التحقق منها إلى كود قابل للتنفيذ.
الآلية: يأخذ الخطة المعتمدة ويولد الكود بلغة البرمجة المستهدفة. ثم يتم اختبار الكود مقابل أزواج المدخلات/المخرجات (I/O) العينة. إذا نجح، يتم إرجاعه؛ وإلا، ينتقل إلى مرحلة تصحيح الأخطاء.
ج. وكيل تصحيح الأخطاء (Debugging Agent)
الوظيفة: تحديد وإصلاح الأخطاء في الكود المولد.
الآلية:
المحاكاة المستهدفة: بدلاً من توليد حالات اختبار جديدة أو الاعتماد فقط على سجلات الأخطاء، يقوم الوكيل بمحاكاة الكود الفاشل على المدخل المحدد الذي فشل عنده.
التتبع خطوة بخطوة: يقوم النموذج اللغوي الكبير بتتبع منطق التنفيذ خطوة بخطوة لتحديد موقع التباين بين المخرج الفعلي والمخرج المتوقع.
التصحيح: بناءً على تتبع المحاكاة، يقوم الوكيل بتعديل الكود لحل الخطأ المنطقي المحدد.
التكرار التكيفي: يعمل النظام في حلقة تكرارية. إذا فشل وكيل تصحيح الأخطاء في إصلاح الكود بعد عدد d من المحاولات، تعود العملية إلى وكيل التخطيط لإعادة تقييم المنطق الأساسي. وتتكرر الدورة بأكملها حتى p من المرات.
3. المساهمات الرئيسية
التحقق القائم على المحاكاة: على عكس الطرق السابقة التي تعامل التخطيط وتصحيح الأخطاء كعمليات منفصلة أو نصية بحتة، يستخدم CODESIM بشكل فريد محاكاة المدخلات/المخرجات خطوة بخطوة للتحقق من كل من الخطة (ما قبل البرمجة) والكود (ما بعد البرمجة). وهذا يحاكي العمليات الإدراكية البشرية لتصور الخوارزميات.
التصحيح الداخلي: يقلل إطار العمل من الاعتماد على ملاحظات المترجم الخارجية للأخطاء المنطقية الأولية من خلال استخدام النموذج اللغوي الكبير نفسه لمحاكاة تتبع التنفيذ، مما يسمح بتصحيح منطقي أعمق.
الكفاءة: يحقق النهج نتائج رائدة (SOTA) مع استهلاك أقل بكثير للرموز (Tokens) واستدعاءات واجهة برمجة التطبيقات (API) مقارنة بالمنافسين مثل MapCoder.
المصدر المفتوح: قام المؤلفون بجعل إطار العمل مفتوح المصدر لتسهيل المزيد من الأبحاث.
4. النتائج التجريبية
قيم المؤلفون CODESIM على سبعة معايير مرجعية، بما في ذلك المهام التأسيسية (HumanEval, MBPP) وتحديات البرمجة التنافسية (APPS, CodeContests).
الأداء الرائد (SOTA):
HumanEval: بنسبة 95.1% (pass@1) باستخدام GPT-4o.
MBPP: بنسبة 90.7% (pass@1).
APPS: بنسبة 22.0% (pass@1).
CodeContests: بنسبة 29.1% (pass@1). تتفوق هذه النتائج باستمرار على النماذج القوية مثل MapCoder وReflexion وLATS عبر نماذج مختلفة (ChatGPT, GPT-4, GPT-4o, LLaMa3.1, Gemma, Mixtral).
التعميم: أظهر إطار العمل أداءً قوياً عبر النماذج مفتوحة المصدر (حقق LLaMa3.1-70B متوسط دقة 80.1%)، مما يثبت أن بنيته مستقلة عن نوع النموذج.
التعزيز الهجين: عندما تم دمجه مع مصححات خارجية (مثل LDB)، حقق CODESIM مستوى قياسيًا جديدًا قدره 97.6% في HumanEval، مما يثبت توافقه مع الأدوات الخارجية.
الكفاءة: قلل CODESIM من استهلاك الرموز بمعدل 4.13 ألف رمز وقلل من استدعاءات واجهة برمجة التطبيقات مقارنة بـ MapCoder، مع زيادة الدقة بنسبة 7.1%.
5. الأهمية والعمل المستقبلي
تحول في النموذج الفكري: ينقل CODESIM التركيز من "التوليد والإصلاح" إلى "المحاكاة والتحقق"، معالِجًا السبب الجذري للفشل في المهام الخوارزمية المعقدة: المنطق الأولي المعيب.
التفكير الشبيه بالبشر: من خلال إجبار النموذج اللغوي الكبير على محاكاة المدخلات وتصور خطوات التنفيذ، يجسّر إطار العمل الفجوة بين فهم اللغة الطبيعية والتنفيذ الخوارزمي الصارم.
الاتجاهات المستقبلية: يخطط المؤلفون لتوسيع نهج المحاكاة هذا ليشمل الاستدلال الرياضي والإجابة على الأسئلة. كما يهدفون إلى تقليل استهلاك الرموز بشكل أكبر واستكشاف طرق لتوليد حالات اختبار إضافية دقيقة دون تراجع الأداء.
في الختام، يمثل CODESIM قفزة نوعية في البرمجة المدعومة بالذكاء الاصطنا_ي عبر دمج المحاكاة كآلية تحقق أساسية ضمن سير عمل متعدد الوكلاء، محققًا دقة وكفاءة فائقتين في حل المشكلات البرمجية المعقدة.