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

From Where Words Come: Efficient Regularization of Code Tokenizers Through Source Attribution

تقدم هذه الورقة تقنية "تجزئة بايت على مستوى البايت منسوبة المصدر" (SA-BPE)، وهي تقنية تنظيمية تعدل هدف تدريب "تجزئة بايت على مستوى البايت" (BPE) القياسي للتخفيف من عدم توازن الرموز وفرط التخصيص الناتج عن تنوع مصادر البيانات، مما يؤدي إلى تقليل الرموز غير المدربة كفاية في أجهزة ترميز الكود مع الحفاظ على كفاءة الاستدلال وسلامته.

المؤلفون الأصليون: Pavel Chizhov, Egor Bogomolov, Ivan P. Yamshchikov

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

المؤلفون الأصليون: Pavel Chizhov, Egor Bogomolov, Ivan P. Yamshchikov

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

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

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

المشكلة: تأثير "درج الكراكيب"

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

بسبب كون بيانات التدريب تأتي من ملايين مستودعات الأكواد المختلفة (المشاريع)، يصاب نظام (BPE) القياسي بالارتباك بسبب أشياء محددة وعابرة.

  • التشبيه: تخيل أنك تتعلم اللغة الإنجليزية عبر قراءة كل كتاب كُتب على الإطلاق. إذا كتب مؤلف ما بالخطأ كلمة "ipsum" بدلاً من "ipsum" في نص توضيحي، فقد يقرر نظام (BPE) القياسي: "أوه، 'ipsum' هي كلمة حقيقية!" ويصنع لها قطعة خاصة!
  • النتيجة: أصبح لدى الروبوت قطعة لكلمة "ipsum" (مع خطأ إملائي)، وقطعة لاسم متغير كان موجوداً فقط في مشروع واحد محدد قبل 5 سنوات، أو قطعة لسلسلة عشوائية من الأرقام لا تظهر مرة أخرى أبداً.
  • لماذا هذا مهم؟ هذه "القطع الخردة" تشغل مساحة في ذاكرة الروبوت. والأسوأ من ذلك، هو أن الروبوت لا يستخدمها فعلياً لبناء أي شيء حقيقي، لذا فهو لا يعرف معناها. وعندما يراها لاحقاً، قد يصاب بالارتباك، أو يهلوس (يخترع أشياء من عنده)، أو حتى يتم خداعه من قبل المخترقين (Jailbreaks) الذين يستخدمون هذه القط অদ্ভুত الغريبة لتجاوز قواعد السلامة.

الحل: ترميز زوج البايت المنسوب للمصدر (SA-BPE)

يقترح المؤلفون طريقة جديدة تسمى SA-BPE. فبدلاً من مجرد السؤال: "كم مرة يظهر هذا الزوج من الحروف؟"، يسأل النظام: "أين يظهر هذا الزوج؟"

لقد استحدثوا قاعدتين جديدتين لصنع قطع الليغو:

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

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

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

ماذا يحدث عندما يستخدمون (SA-BPE)؟

اختبر الباحثون هذه الطريقة على عدة نماذج برمجية (مثل StarCoder2 و CodeGemma) ووجدوا ما يلي:

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

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

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

  1. أذكى (أقل عرضة للهلوسة).
  2. أكثر أماناً (يصعب خداعها).
  3. أكثر كفاءة (أقل هدراً للذاكرة).

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

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

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

جرّب Digest →