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

Fine-Tuning Pre-Trained Code Models for AI-Generated Code Detection

تقدم الورقة البحثية نظام فريق "Archaeology" لمهمة SemEval-2026 رقم 13، والذي يستفيد من نماذج الأكواد البرمجية مسبقة التدريب والمعدلة بدقة واستراتيجيات متخصصة مثل التحقق المتقاطع بأسلوب "ترك لغة واحدة خارج المجموعة" وتعبئة الرموز بنظام "الساندوتش" لتحقيق أداء رفيع المستوى في كشف الكود المولد بواسطة الذكاء الاصطناعي وعزو مصدره.

المؤلفون الأصليون: Jany-Gabriel Ispas, Sergiu Nisioi

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

المؤلفون الأصليون: Jany-Gabriel Ispas, Sergiu Nisioi

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

تخيل وكالة تحري رقمية تدعى "Archaeology" (علم الآثار). مهمتهم ليست التنقيب عن الفخار القديم، بل غربلة أكوام من الأكواد البرمجية للإجابة على سؤالين كبيرين:

  1. من كتب هذا؟ هل كان مبرمجاً بشرياً أم روبوتاً (ذكاء اصطناعي)؟
  2. أيُّ روبوت كتبه؟ إذا كان روبوتاً، فأي نموذج ذكاء اصطناعي محدد هو الذي أنشأه؟

دخل هذا الفريق في مسابقة عالية المخاطر تسمى SemEval-2026 Task 13 لإثبات مهاراتهم. وإليكم كيف فعلوا ذلك، مشروحاً ببساطة.

التحدي: لغز من جزأين

تضمنت المسابقة لغزين متميزين، يتطلب كل منهما استراتيجية تحقيق مختلفة.

اللغز (أ): اختبار "البشر ضد الروبوتات" (التصنيف الثنائي)

  • الهدف: النظر إلى قطعة من الكود وقول: "بشري" أو "ذكاء اصطنا-عي".
  • الفخ: تم تدريب الفريق بشكل أساسي على لغة Python (91% من بيانات التدريب الخاصة بهم)، لكن الاختبار النهائي تضمن لغات لم يروها من قبل، مثل JavaScript وGo وC#. الأمر يشبه تعليم طاهٍ طبخ الطعام الإيطالي فقط، ثم سؤاله عما إذا كان طبقاً منزلي الصنع أم مصنعياً عندما يكون في الواقع طبق "كاري تايلاندي".
  • الدليل: يميل كود الذكاء الاصطنا-عي إلى أن يكون أطول وأكثر تجانساً، بينما يكون الكود البشري أقصر وأكثر فوضوية. ومع ذلك، فإن هذه القاعدة تنعكس اعتماداً على اللغة (على سبيل المثال، في لغة ++C، يكتب البشر كوداً أطول من الذكاء الاصطنا-عي).

اللغز (ب): اختبار "أيُّ روبوت؟" (الإسناد متعدد الفئات)

  • الهدف: إذا كان الكود مولداً بواسطة الذكاء الاصطنا-عي، حدد بالضبط أي نموذج من النماذج الـ 11 المختلفة هو الذي كتبه.
  • الفخ: كانت البيانات غير متوازنة بشكل صارخ. فئة واحدة (الكود المكتوب بواسطة البشر) شكلت 88% من البيانات، بينما امتلكت بعض نماذج الذكاء الاصطنا-عي المحددة أقل من 2,000 مثال. إنه يشبه محاولة العثور على إبرة في كومة قش، حيث الكومة هي 99% قش والإبر هي ألوان مختلفة، ولكن لديك إبرة حمراء واحدة فقط مقابل مليون إبرة زرقاء.
  • الدليل: تمتلك نماذج الذكاء الاصطنا-عي المختلفة أساليب "خط يد" دقيقة، لكن هذه الأساليب يصعب رصدها في الكود الطويل والمعقد.

أدوات المحقق

لم يكتفِ الفريق بالتخمين؛ بل استخدموا أربعة "عيون خارقة" (نماذج ذكاء اصطنا-عي مدربة مسبقاً) ومنحوها تقنيات تدريب خاصة لكل لغز.

للغز (أ) (البشر ضد الروبوتات)

  1. تمرين "تبديل اللغة": للتحضير للغات المفاجئة في الاختبار، قاموا بتدريب النماذج عن طريق إخفاء لغة واحدة في كل مرة. علموا النموذج التعرف على الأنماط دون الاعتماد على حيل لغوية محددة (مثل استخدام بايثون لـ # للتعليقات).
  2. تمرين "التنظيف والتمويه": قاموا بإزالة التعليقات واستبدال الأرقام بعلامات مؤقتة أثناء التدريب. أجبر هذا النماذج على النظر إلى المنطق الخاص بالكود، وليس فقط الزينة السطحية.
  3. استراتيجية "التقطيع": بما أن كود الاختبار كان غالباً طويلاً جداً بحيث لا يمكن قراءته دفعة واحدة، قاموا بتقسيمه إلى قطع متداخلة (مثل قراءة كتاب طويل عبر قراءة بضع صفحات في كل مرة). ثم أخذوا متوسط هذه القطع، متجاهلين أكثر التخمينات "الضوضائية" تطرفاً، لاتخاذ قرار نهائي.
  4. معايرة "الحالات الصعبة": أنشأوا "اختباراً صعباً" خاصاً باستخدام أمثلة أخطأ فيها برنامج كمبيوتر بسيط. قاموا بضبط عتبة القرار لديهم (الخط الفاصل بين "بشري" و"ذكاء اصطنا-عي") بناءً على هذه الحالات الصعبة لضمان عدم خداعهم ببيانات الاختبار.

للغز (ب) (أيُّ روبوت؟)

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

النتائج

لقد حقق فريق "Archaeology" نتائج جيدة جداً:

  • اللغز (أ): حصلوا على درجة 0.737، مما وضعهم في المركز السادس من بين 81 فريقاً. كانت أفضل أداة لهم هي CodeBERT، والتي يبدو أنها فهمت "منطق" الكود بشكل أفضل من غيرها.
  • اللغز (ب): حصلوا على درجة 0.422، مما وضعهم في المركز السابع من بين 34 فريقاً. كانت أفضل أداة لهم هنا هي UniXcoder، والتي استفادت من النظر إلى قطع أطول من الكود واستخدام استراتيجية "التصويت".

الخلاصة الكبرى

اكتشف الفريق أن كيفية تدريب النموذج تهم أكثر من حجمه.

  • النماذج الأصغر (125 مليون معلمة) التي تم تدريبها خصيصاً لـ فهم منطق الكود، كانت أفضل في اكتشاف الذكاء الاصطنا-عي.
  • النموذج العملاق (220 مليون معلمة) لم يفز، مما يشير إلى أنه بالنسبة لهذه المهمة المحددة، كونك "متخصصاً" أفضل من كونك "عاماً".

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

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

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

جرّب Digest →