Program Semantic Inequivalence Game with Large Language Models
تقدم هذه الورقة البحثية "لعبة عدم التكافؤ الدلالي" (SInQ) شبه التنافسية، حيث يقوم وكلاء التوليد والتقييم بتخليق بيانات تدريب تعاونياً لتعزيز الاستدلال الدلالي البرمجي للنماذج اللغوية الكبيرة، مما يظهر تحسينات ملحوظة في اكتشاف الثغرات الأمنية عبر اللغات ومهام تبديل المعرفات المعقدة.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أنك تعلم روبوتاً عبقرياً ولكنه حرفي التفكير كيفية كتابة كود برمجي. قد تعتقد: "إذا أريته مليون مثال لكيفية بناء منزل، فسيعرف كيف يبني ناطحة سحاب". لكن الحواسيب مخادعة؛ فهي بارعة في نسخ الأنماط، لكنها غالباً ما تتعثر عندما يُطلب منها فهم "المنطق العميق" وراء الكود — مثل لماذا قد يؤدي تغيير طفيف في وصفة ما إلى انهيار كعكة، أو كيف يمكن لثغرة خلفية مخفية أن تسمح للصوص بالدخول إلى منزل رقمي. هذا هو عالم "دلالات البرامج" (program semantics)، وهو دراسة ما يفعله الكود فعلياً مقابل ما يبدو أنه يفعله.
لتعليم الروبوت هذا المنطق العميق، نحتاج عادةً إلى معلم بشري يشير إلى كل خطأ، وهو أمر بطيء ومكلف. بدلاً من ذلك، يمكننا ترك الروبوت يتدرب بمفرده، لكنه غالباً ما يكتفي بالتدرب على الأشياء السهلة ويتجاهل الألغاز الصعبة. تستكشف هذه الورقة طريقة جديدة لتدريب هؤلاء "المبرمجين" من الذكاء الاصطناعي عبر تحويلهم إلى لاعبين في لعبة منطقية عالية المخاطر. فبدلاً من مجرد حفظ الإجابات، يتعين على الذكاء الاصطناعي تعلم كيفية رصد الاختلافات غير المرئية بين قطعتين من الكود تبدوان متطابقتين تقريباً. إذا تمكن من إتقان هذه اللعبة، فقد يصبح أفضل بكثير في اكتشاف الثغرات الأمنية وكتابة برمجيات أكثر أماناً، حتى في لغات لم يسبق له رؤيتها من قبل.
لعبة محقق الكود العظيم
ابتكر مؤلفو هذه الورقة، أنطونيو فاليريو ميتشي باروني، وفيشاك بيل، وعلي باياني، طريقة تدريب ذكية تسمى لعبة عدم التكافؤ الدلالي (Semantic Inequivalence Game أو SInQ للاختصار). فكر فيها كنسخة رقمية من لعبة "أوجد الفروق"، ولكنها تُلعب بواسطة وكيلين من الذكاء الاصطناعي يحاولان باستمرار التفوق على بعضهما البعض.
اللاعبون: أليس وبوب
تخيل محققين من الذكاء الاصطناعي، أليس وبوب، يجلسان في مواجهة بعضهما البعض.
- أليس هي الماكرة. تُعطى قطعة من الكود (لنسمها البرنامج P) ومهمتها هي إنشاء نسخة "مزيفة" (البرنامج Q) تبدو مطابقة تماماً تقريباً ولكنها تتصرف بشكل مختلف قليلاً. كما يجب عليها أيضاً إيجاد "مدخل اختبار" محدد (مثل رقم أو كلمة معينة) يثبت أن البرنامجين مختلفان. إذا لم تتمكن من إيجاد فرق، فإنها تخسر.
- بوب هو المحقق. يُعرض عليه كلا البرنامجين، P و Q. مهمته هي معرفة: "هل هما مختلفان حقاً؟" إذا كانا كذلك، فعليه إيجاد مدخل الاختبار المحدد الذي يكشف الفرق. إذا وجده، يفوز. وإذا فاته، تفوز أليس.
حلقة التدريب
في البداية، تكون أليس سيئة في صنع تزييفات مخادعة، ويكون بوب جيداً في رصدها. ولكن مع استمرار اللعب مراراً وتكراراً، يصبحان أفضل. تتعلم أليس صنع تزييفات أصعب في الرصد، ويتعلم بوب البحث عن أدلة أعمق وأكثر دقة. إنهما يدربان بعضهما البعض في حلقة "اللعب الذاتي"، تماماً كما قد يتدرب لاعب شطرنج عظيم ضد كمبيوتر يصبح أكثر ذكاءً في كل مرة يلعب فيها.
السحر هنا هو أنهما لا يحتاجان إلى معلم بشري ليقول لهما "عمل جيد!" أو "إجابة خاطئة". فلدينا حكم مدمج في اللعبة: بيئة تجريبية (sandbox) للحاسوب. يقومان ببساطة بتشغيل البرنامجين باستخدام مدخل الاختبار. إذا كانت النتائج مختلفة، فإن المدخل صالح واللعبة عادلة. إذا كانت النتائج متطابقة، فقد فشلت الخدعة. وهذا يعني أن الذكاء الاصطناعي يتعلم من خلال التجربة والخطأ، وليس من خلال التخمين.
ما وجدوه
اختبر الباحثون هذه اللعبة على نموذجين مختلفين من الذكاء الاصطناعي (gpt-4o-mini و gpt-4.1-nano) لمعرفة ما إذا كان لعب هذه اللعبة يجعلهم أفضل في مهام البرمجة الواقعية.
1. تحدي "تبديل المعرفات المدمجة في بايثون"
اختبروا الذكاء الاصطناعي في لغز صعب للغاية يسمى "تبديل المعرفات المدمجة في بايثون" (Python builtin identifier swap). تخيل برنامجاً حيث تم تبديل الكلمات print و len (وهي أدوات قياسية في بايثون) حول بعضهما البعض. بالنسبة للإنسان، الأمر مربك؛ أما بالنسبة للذكاء الاصطناعي، فهو كابوس لأن الكود يبدو طبيعياً ولكنه يتصرف بغرابة.
- النتيجة: الذكاء الاصطناعي الذي لعب اللعبة (بوب) أصبح أفضل بكثير في رصد الخدعة في أحد النماذج. بالنسبة لـ gpt-4o-mini، قفزت الدقة من نسبة منخفضة جداً بلغت 1.65% إلى 5.35% دون أي تلميحات إضافية. ومع ذلك، كانت النتائج مختلطة بالنسبة للنموذج الآخر: في gpt-4.1-nano، جعل التدريب الأداء يسوء قليلاً دون تلميحات إضافية، وتسبب استخدام نهج "سلسلة الأفكار" (حيث يتحدث الذكاء الاصطناعي عن استنتاجاته) في انخفاض الدقة بشكل أكبر. يشير هذا إلى أنه بينما علمت اللعبة الذكاء الاصطناعي البحث بعمق أكبر، فإن الفوائد تعتمد بشدة على النموذج المحدد المستخدم.
2. العثور على الثغرات الأمنية (اكتشاف نقاط الضعف)
اختبر الفريق أيضاً ما إذا كان هذا التدريب يساعد الذكاء الاصطناعي في العثور على الثغرات الأمنية في الكود. استخدموا معيارين:
- PySecDB: مجموعة بيانات لتغييرات كود بايثون لمعرفة ما إذا كانت قد أصلحت المشكلات الأمنية.
- CodeXGLUE: مجموعة بيانات لكود C/C++ (لغة برمجة مختلفة عن التي تدرب عليها الذكاء الاصطناعي!) للعثين على أخطاء معروفة.
- النتيجة: أظهر الذكاء الاصطناعي الذي لعب اللعبة تحسينات صغيرة ولكن ثابتة في العثور على هذه الأخطاء، حتى في لغة C/C++ التي لم يسبق له رؤيتها أثناء التدريب! هذا أمر كبير لأنه يشير إلى أن الذكاء الاصطناعي تعلم مهارة عامة لـ "رصد المنطق" بدلاً من مجرد حفظ إجابات بايثون.
3. كتابة كود جديد
أخيراً، تحققوا مما إذا كانت اللعبة تساعد الذكاء الاصطناعي على كتابة كود جديد من الصفر. كانت النتائج مختلطة. لم يتحسن الذكاء الاصطناعي كثيراً في كتابة الكود، لكنه لم يصبح أسوأ أيضاً. يشير المؤلفون إلى أن هذا منطقي: لقد دربوا "المحقق" (بوب)، وليس "الكاتب" (أليس)، لذا أصبح المحقق أكثر حدة في رصد الأخطاء، لكنه لم يصبح بالضرورة كاتباً أفضل.
الصورة الكبيرة
تشير الورقة إلى أن "لعبة عدم التكافؤ الدلالي" هذه هي وسيلة قوية لتعليم الذكاء الاصطناعي فهم منطق الكود، وليس فقط الأنماط. فمن خلال إجبار الذكاء الاصطناعي على إيجاد الاختلافات الصغيرة وغير المرئية بين برنامجيْن، فإنه يتعلم أن يكون أكثر حذراً ومنطقية.
ومع ذلك، يلاحظ المؤلفون بحذر أن هذا ليس عصا سحرية تحل جميع مشاكل البرمجة. التحسينات كانت حقيقية ولكنها متواضة في بعض المجالات، وتعتمد الطريقة على قدرة الذكاء الاصطناعي على تشغيل الكود للتحقق من الإجابات. كما أشاروا إلى أنهم دربوا الذكاء الاصطناعي لعدة جولات فقط بسبب قيود الميزانية، لذا قد يكون هناك إمكانات أكبر إذا لعبوا اللعبة لفترة أطول.
باختصار، من خلال تحويل تدريب الكود إلى لعبة "أوجد الفروق"، أظهر الباحثون أن الذكاء الاصطناعي يمكنه أن يتعلم أن يكون محققاً أكثر حدة ومنطقية، قادراً على رصد المخاطر الأمنية والمنطق المربك الذي قد تغفل عنه النماذج الأخرى. إنها خطوة نحو جعل الذكاء الاصطناعي ليس مجرد مولد للكود، بل مفكراً حقيقياً في الكود.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.