← أحدث الأبحاث
💬 NLP

CodeEvo: Interaction-Driven Synthesis of Code-centric Data through Hybrid and Iterative Feedback

تقدم هذه الورقة CodeEvo، وهو إطار عمل ثنائي الوكلاء يعمل على تخليق أزواج تعليمات-أكواد عالية الجودة ومعقدة منطقياً من خلال التغذية الراجعة الهجينة التكرارية، مما ينتج عنه مجموعة بيانات CodeEvo-100K التي تعزز بشكل كبير أداء نماذج توليد الأكواد.

المؤلفون الأصليون: Qiushi Sun, Jinyang Gong, Lei Li, Qipeng Guo, Fei Yuan

نُشر 2026-07-28
📖 5 دقيقة قراءة🧠 قراءة متعمّقة

المؤلفون الأصليون: Qiushi Sun, Jinyang Gong, Lei Li, Qipeng Guo, Fei Yuan

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

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

تعتمد الفكرة الجوهرية على مفهومين رئيسيين. أولاً، هناك التعليمات (Instruction)، وهي نص المسألة (مثل "اكتب دالة تقوم بترتيب قائمة"). ثانياً، هناك الكود (Code)، وهو الحل. والهدف هو توليد أزواج من هذه التعليمات والأكواد بحيث لا تكون صحيحة فحسب، بل تصبح أيضاً أكثر صعوبة وإثارة للاهتمام بشكل تدريجي. يقترح المؤلفون أن الطريقة القديمة في فعل ذلك —أي مجرد سؤال الذكاء الاصطناعي "اجعل الأمر أصعب"— هي طريقة غامضة للغاية وتؤدي إلى نتائج معطلة. بدلاً من ذلك، هم يقترحون نظاماً يعمل فيه الذكاء الاصطناعي كفريق مكون من عضوين: المبرمج (Coder) الذي يحاول حل المسألة، والمراجع (Reviewer) الذي يقيم العمل ويصمم التحدي التالي.

رقصة العضوين: المبرمج والمراجع

بنى المؤلفون إطار عمل يسمى CodeEvo، وهو في جوهره ورشة عمل آلية عالية التقنية يعمل فيها وكيلان من الذكاء الاصطناعي معاً في حلقة مستمرة. فكر في الأمر كأنها لعبة فيديو حيث يحاول لاعب واحد (المبرمج) اجتياز مستوى ما، بينما يعمل لاعب ثانٍ (المراجع) كمصمم للمستوى وحَكَم في آن واحد.

في الطرق القديمة، كان "مصمم المستوى" يكتفي بالصراخ قائلاً: "اجعل هذا المستوى أصعب!" ثم يأمل في الحصول على نتيجة جيدة. وغالباً ما كانت النتيجة مستوى مستحيلاً أو غير منطقي. يغير CodeEvo قواعد اللعبة؛ فقبل أن يكتب المراجع مسألة جديدة، يقوم بإنشاء مخطط (Schema). تخيل هذا المخطط كأنه مخطط هندسي أو بطاقة وصفة طعام. ينظر المراجع إلى المسألة الحالية ويختار "مكونات" محددة (مثل الكلمات المفتاحية: مصفوفة Matrix، التكرار Recursion، الأعداد الكبيرة Big Integer) لخلطها معاً. المخطط هو خطة تقول: "حسناً، سنأخذ المنطق الحالي ونضيف إليه خطوة ضرب المصفوفات لجعله معقداً، ولكن يجب أن نحافظ على قابليته للحل". هذا يضمن أن المسألة الجديدة مبنية على منطق حقيقي، وليس مجرد كلمات عشوائية لا معنى لها.

بمجرد أن يصمم المراجع المخطط، يحاول المبرمج كتابة الكود لحل المسألة. ولكن هنا تكمن اللمسة السحرية: فالنظام لا يقبل الكود ببساطة، بل يمرر الكود عبر حلقة تغذية راجعة هجينة (Hybrid Feedback).

نظام التحقق المزدوج

عادةً، عندما يكتب الذكاء الاصطناعي كوداً، قد يبدو صحيحاً ولكنه يفشل عند تشغيله فعلياً. ولإصلاح ذلك، يستخدم CodeEvo عملية تحقق من خطوتين. أولاً، يتم تشغيل الكود عبر مترجم (Compiler) (وهي أداة تتحقق مما إذا كان الكود يتبع القواعد الصارمة للغة البرمجة). إذا تعطل الكود أو احتوى على خطأ في بناء الجملة (Syntax Error)، فإن المترجم يقول "لا". ولكن في بعض الأحيان، قد يعمل الكود دون أن يتعطل ومع ذلك يعطي إجابة خاطئة.

هنا يتدخل المراجع مرة أخرى. هذه المرة، يعمل كحكم بشري، حيث يقرأ الكود ووصف المسألة ليرى ما إذا كان المنطق متطابقاً بالفعل. يتساءل المراجع: "هل قمت بحل المسألة حقاً، أم أنك كنت محظوظاً فقط؟". ومن خلال الجمع بين الفحص الصارم وغير العاطفي للمترجم والفحص الذكي والسياقي للمراجع (الذكاء الاصطناعي)، يقوم النظام بتصفية البيانات السيئة. إذا فشل الكود، يحصل المبرمج على تقرير مفصل حول الخطأ ويحاول مجدداً. وتتكرر هذه العملية مراراً وتكراراً حتى يصبح الكود مثالياً.

بناء جبل من البيانات

باستخدام هذه الطريقة، أنشأ المؤلفون مجموعة بيانات ضخمة تسمى CodeEvo-100K. هذه ليست مجرد كومة عشوائية من 100,000 مسألة؛ بل هي مجموعة منسقة بعناية ذات "صعوبة متدرجة". بدأوا بمسائل بسيطة (بذور) وتركوا الوكلاء يطورونها. بقيت بعض المسائل سهلة، وأصبحت بعضها متوسطة، وتم إنشاء مجموعة خاصة "صعبة" عبر دفع الوكلاء عبر ثلاث جولات أو أكثر من عمليات الصقل.

النتائج مبهرة. فعندما أخذوا نماذج ذكاء اصطناعي أخرى ودربوها على هذه المجموعة الجديدة من البيانات، أصبحت تلك النماذج أفضل بكثير في حل المسائل البرمجية مقارنة بالنماذج التي تدربت على بيانات اصطناعية أخرى. في الواقع، كمية صغيرة من بيانات CodeEvo عالية الجودة (حوالي 17,000 مسألة صعبة) كانت تعمل بشكل أفضل من مجموعة بيانات أكبر بكثير (75,000 مسألة) تم إنتاجها بواسطة الطرق القديمة. وهذا يشير إلى أن جودة بيانات التدريب تهم أكثر من مجرد امتلاك حجم ضخم منها.

لماذا يهم هذا الأمر؟

تجادل الورقة البحثية صراحةً ضد فكرة أنه يمكنك ببساطة استخدام قواعد بسيطة وصارمة (Heuristics) لتوليد بيانات برمجية جيدة. فهم يظهرون أنه بدون خطة مهيكلة (المخطط/Schema) ونظام تحقق صارم (التغذية الراجعة الهجينة)، ستكون البيانات المولدة مليئة بالأخطاء أو المهام المستحيلة. كما وجدوا أنه بينما تكون هذه العملية أبطأ من مجرد طلب كتابة كود من الذكاء الاصطناعي لمرة واحدة، إلا أن البيانات الناتجة تتفوق بمراحل.

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

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

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

جرّب Digest →