← أحدث الأبحاث
🤖 machine learning

Enhancing the Code Reasoning Capabilities of LLMs via Consistency-based Reinforcement Learning

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

المؤلفون الأصليون: Zhanyue Qin, Jia Feng, Yibo Lyu, Yun Peng, Dianbo Sui, Cuiyun Gao, Qing Liao

نُشر 2026-05-19
📖 4 دقيقة قراءة☕ قراءة في استراحة قهوة

المؤلفون الأصليون: Zhanyue Qin, Jia Feng, Yibo Lyu, Yun Peng, Dianbo Sui, Cuiyun Gao, Qing Liao

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

تخيل أنك تقوم بتعليم طالب ذكي جداً ولكنه مغرور أحياناً (نموذج لغوي كبير) كيفية حل لغز معقد: التنبؤ بما سيفعله برنامج كمبيوتر قبل تشغيله فعلياً.

تقدم الورقة البحثية طريقة تعليمية جديدة تسمى CodeThinker. وإليك كيف تعمل، مشروحة من خلال تشبيهات بسيطة.

المشكلة: الطالب الذي يعتمد على "التخمين المحظوظ"

في السابق، عندما كان المعلمون يعلمون هؤلاء الطلاب من الذكاء الاصطناعي، كانوا ينظرون فقط إلى الإجابة النهائية.

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

الحل: CodeThinker

ابتكر المؤلفون إطار عمل جديداً يجبر الطالب على إظهار عمله خطوة بخطوة، ويتحقق مما إذا كانت كل خطوة منطقية قبل منحه أي مكافأة. هم يسمون هذا "التعلم التعزيزي القائم على الاتساق" (Consistency-Based Reinforcement Learning).

إليك الأدوات الثلاث الرئيسية التي استخدموها لتعليم الطالب:

1. دفتر "التتبع المباشر" (تتبع الاتساق - Consistency Tracing)

بدلاً من مجرد طلب الإجابة النهائية، يجب على الطالب ملء دفتر ملاحظات خاص أثناء العمل.

  • كيف يعمل: لكل جزء صغير من الكود، يجب على الطالب كتابة:
    1. ما يقوله الكود.
    2. ما يفكر فيه.
    3. الحالة الدقيقة للمتغيرات (مثل لقطة شاشة للأرقام في الذاكرة).
  • التشبيه: تخيل محققاً يحل جريمة. بدلاً من قول "الخادم هو الفاعل"، يجب على المحقق تقديم سجل: "في الساعة 5:00 مساءً، كان الخادم في المطبخ. وفي الساعة 5:05 مساءً، انتقل إلى المكتبة". إذا قال السجل إنه كان في المطبخ في الساعة 5:05 بينما تشير الأدلة إلى أنه كان في المكتبة، فسيحصل المحقق على علامة حمراء فوراً.
  • لماذا يساعد: إنه يمنع الطالب من تخطي الخطوات أو "الهلوسة" (اختلاق أشياء غير حقيقية). إذا لم تتطابق "لقطة المتغيرات" في الدفتر مع الواقع، تُعتبر المحاولة بأكملها خاطئة.

2. استراتيجية "الكشاف الذكي" (أخذ العينات الشعاعي الديناميكي - Dynamic Beam Sampling)

عندما يحاول الطالب حل مشكلة، فقد يولد مسارات عديدة مختلفة (مثل تجربة طرق مختلفة على خريطة).

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

3. قاعدة "عدم التراجع" (مكافأة الاتساق - Consistency Reward)

هذه هي القاعدة الأهم لمنع "اختراق المكافأة".

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

النتائج

اختبر المؤلفون طريقة التدريس الجديدة هذه على عدة نماذج ذكاء اصطناعي مختلفة (مثل Qwen وDeepSeek وLlama) باستخدام مجموعة بيانات لمشكلات البرمجة تسمى LeetCodeReasoning.

  • نتائج أفضل: حققت النماذج التي تدربت باستخدام CodeThinker درجات أعلى بكثير في اختبارات البرمجة مقارنة بالنماذج التي تدربت بالطرق القديمة. على سبيل المثال، في أحد الاختبارات، كان التحسن حوالي 4.3% عن أفضل طريقة سابقة.
  • تفكير أعمق: بدأت النماذج في توليد شروحات أطول وأكثر تفصيلاً (المزيد من "رموز التفكير" - thinking tokens)، مما يثبت أنها تقوم بالعمل فعلياً بدلاً من مجرد التخمين.
  • مهارات عامة: على الرغم من أن النماذج تم تدريبها فقط على لغة بايثون (Python)، إلا أنها أصبحت أفضل في:
    • حل المسائل الرياضية (دون تدريب إضافي على الرياضيات).
    • فهم الكود في 17 لغة برمجة أخرى (دون تدريب إضافي على اللغات).

الملخص

CodeThinker هو بمث de مدرب صارم وعادل في آن واحد. هو لا يهتم فقط بفوزك في اللعبة، بل يهتم أيضاً بما إذا كنت قد التزمت بالقواعد في كل لحظة. من خلال إجبار الذكاء الاصطناعي على تتبع تقدمه خطوة بخوة ومعاقبته على أي عدم اتساق، فإنه يعلمه كيف "يفكر" حقاً بدلاً من مجرد "التخمين".

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

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

جرّب Digest →