تخيّل أن تقرأ كتاباً وأنت لا تعرف سوى حروف منفردة: سيكون ذلك بطيئاً ومكلفاً. وفي المقابل، حفظ كل كلمة ممكنة أمر غير واقعي. يجد الترميز بأزواج البايتات (Byte Pair Encoding، BPE) الحلّ الوسط: فهو يقسّم النص إلى كلمات فرعية متكرّرة، وهي المفردات التي تفكّر بها فعلاً النماذج اللغوية الكبيرة.
من خوارزمية ضغط إلى تجزئة
نشأ الـ BPE كتقنية لـضغط البيانات: نستبدل بشكل متكرّر زوج الرموز المتجاورة الأكثر تكراراً برمز جديد. وعند تطبيقه على النص يصبح المبدأ تعلّماً للمفردات:
- نبدأ من الوحدات الأساسية (الحروف أو البايتات).
- نعدّ كل الأزواج المتجاورة في المتن.
- ندمج الزوج الأكثر تكراراً في رمز جديد.
- نكرّر العملية حتى الوصول إلى حجم مفردات مستهدف.
رياضياً، نختار في كل خطوة الزوج $(a, b)$ الذي يعظّم تكراره:
$$ (a, b) = \arg\max_{(x, y)} \; \text{count}(x, y) $$
لماذا تعشقه النماذج اللغوية
يحلّ الـ BPE مشكلة الكلمات المجهولة (out-of-vocabulary): فحتى الكلمة التي لم تُرَ من قبل تتفكّك إلى أجزاء معروفة. أما النسخة على مستوى البايت (المستخدمة في GPT-2 ومن تلاه) فتنطلق من البايتات الخام، ما يضمن أن لا حرف يخرج عن المفردات أبداً، أياً كانت اللغة أو الرمز التعبيري.
| المقاربة | المفردات | الكلمات المجهولة |
|---|---|---|
| على مستوى الكلمة | ضخمة | متكرّرة |
| على مستوى الحرف | صغيرة جداً | معدومة لكن بتسلسلات طويلة |
| BPE (الكلمات الفرعية) | معتدلة | شبه معدومة |
الـ BPE هو الحلّ الوسط الذي يتيح للنماذج تغطية كل اللغات بمفردات محدودة: أبجدية أُعيد ابتكارها من أجل الآلات.