Tokenization في نماذج اللغة: كيف تُقسَّم الكلمات لأرقام؟
شرح تقني لتقنيات التوكينزيشن، BPE، WordPiece، SentencePiece، Tiktoken، وكيف تؤثّر على الأداء، التكلفة، ودعم اللغات (خصوصاً العربية).
Tokenization، تحويل النصّ لأرقام يفهمها النموذج، يبدو تفصيلاً هندسياً بسيطاً، لكنه يُحدّد التكلفة، السرعة، وحتى جودة الفهم اللغوي. هذا المقال يشرح لماذا يجب أن يهمّك، خصوصاً إذا كنت تعمل بالعربية.
المشكلة الأساسية
الشبكات العصبية تعمل على أرقام، لا نصوص. نحتاج تحويل "مرحباً بالعالم" إلى شيء مثل [15234, 87, 5623].
الحلول المُبكِّرة (وفشلها)
1. Character-level
كل حرف = token واحد.
الفائدة: قاموس صغير (~256 لـ ASCII، أكبر لليونيكود). المشكلة: النصّ يُصبح طويلاً جداً، "الذكاء الاصطناعي" 18 حرف = 18 token.
2. Word-level
كل كلمة = token.
الفائدة: نصوص قصيرة. المشكلة:
- قاموس ضخم (ملايين الكلمات).
- كلمات جديدة (نيولوجيزم، أسماء علم) =
<UNK>. - أخطاء إملائية تكسر النظام.
- العربية خصوصاً: تصريفات كثيرة (كتب، يكتب، كاتب، مكتوب، كتابة...)، كل واحد token منفصل.
الحلّ: Subword tokenization، بين الحرف والكلمة.
Byte-Pair Encoding (BPE)
الأشهر عالمياً. تستخدمه GPT-3, GPT-4, Llama, وأكثر النماذج.
كيف يعمل التدريب
- ابدأ بمفردات = كل الحروف الفردية.
- اعدد أزواج الحروف المتتالية في corpus كبير.
- ادمج الزوج الأكثر شيوعاً في token واحد جديد.
- كرّر حتى الوصول لحجم القاموس المستهدف (مثلاً 50k).
مثال مبسّط:
- Corpus: "the cat sat on the mat"
- بعد إحصاء: الزوج "th" يظهر مرّتين، الأكثر شيوعاً.
- ادمج: مفردات جديدة تحوي "th".
- كرّر: قد نجد "the" ثمّ "ing" ثمّ...
نتيجة نهائية على GPT-4
- "Hello world" → ["Hello", " world"] = 2 tokens.
- "artificial intelligence" → ["art", "ificial", " intelligence"] = 3 tokens.
- "supercalifragilisticexpialidocious" → ~10 tokens (كلمة نادرة تُقسّم كثيراً).
كيف يُطبَّق على نصّ جديد
خوارزمية جشعة (greedy): تجد أطول match في المفردات، ثمّ تنتقل.
WordPiece
تستخدمه BERT. مشابه لـ BPE مع فرق:
- بدل دمج الزوج الأكثر تكراراً، تدمج الزوج الذي يزيد احتماله بأقصى قدر.
- تستخدم
##لتمييز subword في وسط كلمة: "playing" → ["play", "##ing"].
SentencePiece
من Google. مصمّم للعمل مباشرة على النصّ الخام (بدون tokenization مسبق للكلمات).
- الميزة الكبرى: يعمل على لغات بدون فواصل واضحة بين الكلمات (الصينية، اليابانية، التايلاندية).
- يُعامل الفضاء
_كحرف عادي. - تستخدمه Llama, T5, PaLM.
Tiktoken
مكتبة OpenAI مفتوحة المصدر لتشغيل tokenizers نماذجها.
النماذج الشائعة:
- cl100k_base: GPT-3.5-turbo, GPT-4.
- o200k_base: GPT-4o.
- p50k_base: Codex, GPT-3 المبكّر.
استخدام Python:
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4")
tokens = enc.encode("مرحباً بالعالم")
print(len(tokens)) # سيُظهر عدد tokens
مشكلة العربية
مثال مباشر:
جملة: "الذكاء الاصطناعي يُغيّر العالم"
- بالإنجليزية "Artificial intelligence changes the world" = ~7 tokens في GPT-4.
- بالعربية = ~14-18 tokens.
السبب:
- tokenizer دُرِّب على corpus 90%+ إنجليزي.
- الحرف العربي في UTF-8 يأخذ 2 بايت غالباً، أحياناً كل حرف token منفصل.
- الاشتقاق العربي الغني (السوابق واللواحق) لا يُلتقط جيّداً.
- علامات التشكيل تضيف tokens إضافية.
الأثر العملي:
- تكلفة API أعلى (تدفع per token).
- context window يُستنزَف أسرع (100k token عربي = 25k-50k token إنجليزي).
- جودة أدنى أحياناً، الاستبيان قد يُقسّم كلمة "المتحف" لـ ["ال", "مت", "حف"] ما يفقد معنى الجذر.
Tokenizers محسَّنة عربياً
ALLaM (السعودية، SDAIA)
- نموذج سعودي بتوكينايزر خاص.
- مبني على SentencePiece مع corpus عربي غالب.
- كفاءة أعلى بكثير من tiktoken على العربية.
Jais (الإمارات، G42 + Cerebras)
- تدريب على 116B token عربي + إنجليزي.
- tokenizer مخصّص بمفردات 84k.
AraBERT / MARBERT
- نماذج بحثية بتوكينايزر WordPiece عربي.
Command R+ من Cohere
- ادّعى دعم عربي محسَّن، النتائج جيّدة نسبياً.
قياس كفاءة Tokenizer
Fertility = متوسط عدد tokens لكل كلمة.
| النموذج | إنجليزي | عربي | |---|---|---| | GPT-4 (cl100k) | 1.3 | 4.5 | | GPT-4o (o200k) | 1.2 | 2.8 | | ALLaM | 1.9 | 1.5 | | Jais | 1.7 | 1.4 |
ملاحظة: GPT-4o حسّن العربي كثيراً عن GPT-4 السابق.
Special Tokens
كل tokenizer له tokens خاصّة بأغراض محدّدة:
<|endoftext|>: نهاية النصّ.<|im_start|>,<|im_end|>: بداية/نهاية رسالة (ChatML).<s>,</s>: بداية/نهاية جملة.<PAD>: للحشو.<UNK>: كلمة غير معروفة.
هجمات وطرائف
Glitch Tokens
بعض tokens نادرة جداً في التدريب تجعل النموذج يتصرّف غريباً.
قصّة شهيرة: token SolidGoldMagikarp في GPT-3 كان يجعل النموذج يُنتج نصوصاً عشوائية أو يرفض الاستجابة. أُصلح في GPT-4.
Prompt Injection عبر Tokens
تقنيات تستغلّ طريقة الـ tokenization لتخريب النموذج (مثل إخفاء تعليمات في tokens غير مرئية).
متى يهمّ Tokenization في مشروعك؟
1. حساب التكلفة
API prices بـ tokens. نصّ عربي طويل = فاتورة أعلى.
2. Context Window
Claude 3.5 Sonnet = 200k tokens. عربي طويل قد يتخطّى الحدّ بسرعة.
3. جودة اللغات
إذا كان تطبيقك عربياً/متعدد اللغات، اختر نموذجاً بـ tokenizer محسَّن.
4. تدريب نموذج مخصّص
إذا تُدرّب نموذجاً على مجال متخصّص (طبّي، قانوني، برمجي)، درّب tokenizer جديداً:
- من مكتبة
tokenizersمن Hugging Face. - يُقلّل عدد الـ tokens 20-40% على المجال المحدّد.
أدوات مفيدة
- OpenAI Tokenizer: عرض بصري لكيف يُقسَّم نصّك.
- Anthropic Token Counter: لـ Claude.
- Hugging Face Tokenizers: مكتبة Python سريعة (بـ Rust).
- tiktoken (Python): سريع، رسمي من OpenAI.
المستقبل
- Byte-level models (مثل MegaByte): تعمل مباشرة على البايتات، بلا tokenizer. جذّاب فكرياً، لكن لم يُثبت جدواه على المقياس الكامل.
- Token-free models: Byte Latent Transformer، بديل ناشئ.
- Multilingual tokenizers أفضل: كل جيل جديد يُحسّن العربية والصينية والهندية.
توصيات عملية
للاستخدام العام:
- GPT-4o أو Claude 3.5+ للعربية (تحسين ملحوظ).
- تجنّب النماذج القديمة إذا كان مشروعك عربياً، 4x تكلفة زائدة.
للأبحاث/التطوير:
- ALLaM أو Jais للعربية النقية.
- Llama 3 + fine-tune للأداء المفتوح المصدر.
للاختيار الاستراتيجي:
- احسب تكلفة نموذجيّة على نصوصك الفعلية باستخدام tokenizer الفعلي، لا تعتمد على "عدد الكلمات".
اقرأ أيضاً:
هل أفادك هذا المقال؟
الأسئلة الشائعة
مقالات ذات صلة
الذكاء الاصطناعي العام (AGI): هل قريب؟ الجدل الكامل
شرح لجدل AGI، ما هو تعريفه الحقيقي، آراء Sam Altman و Demis Hassabis و Yann LeCun و Gary Marcus، الاختبارات المقترحة، والتوقّعات الواقعية للوصول إليه.
AGI و Superintelligence، النقاش الحقيقي بلا خيال
شرح تفصيلي للذكاء العام (AGI) والذكاء الفائق (ASI): التعاريف، المتفائلون، المتحفّظون، ماذا يعني للحياة اليومية.
مصنّعو رقائق الذكاء الاصطناعي، NVIDIA، AMD، TSMC، Intel
دليل لصناعة رقائق AI: NVIDIA، AMD، Intel، Broadcom، TSMC، Samsung، الحصص، الحرب الجيوسياسية، والسعودية.
نشرة مقالات الأسبوعية
اشترك تصلك أحدث المقالات + مختارات نادرة كل أحد. بلا سبام، ألغي الاشتراك بضغطة.
لا نشارك بريدك مع أي طرف ثالث. راجع سياسة الخصوصية.