أحمد حايس
الرئيسيةمن أناالدوراتالمدونةالمناهج والباقات
أحمد حايس

دورات عربية متخصصة في التقنية والبرمجة والذكاء الاصطناعي.

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

تعلم أسرعوصول مباشر للدورات والمسارات من الموبايل.
تنقل أوضحالروابط الأساسية والدعم في مكان واحد بدون تشتيت.

المنصة

  • الرئيسية
  • من أنا
  • الدورات
  • المناهج والباقات
  • المدونة

الدعم

  • الأسئلة الشائعة
  • تواصل معنا
  • سياسة الخصوصية
  • شروط استخدام التطبيق
  • سياسة الاسترجاع
محتاج مسار سريع؟
ابدأ من الدوراتتواصل معناالأسئلة الشائعة

© 2026 أحمد حايس. جميع الحقوق محفوظة.

الرئيسيةالدوراتالمناهجالمدونةالدخول
الذكاء الاصطناعي

Tokenization للمبتدئ: ليه الذكاء الاصطناعي بيحسبلك العربي ضعف الإنجليزي

مبتدئ١٥ يونيو ٢٠٢٦5 دقائق قراءة
Tokenization للمبتدئ: ليه الذكاء الاصطناعي بيحسبلك العربي ضعف الإنجليزي

المستوى: مبتدئ — المقال ده مناسب لأي حد بيستخدم ChatGPT أو Claude API، شايف الفاتورة بتطلع أعلى من المتوقع، ومش فاهم التوكنز (tokens) دي بتتحسب إزاي. مش محتاج خلفية رياضيات، بس محتاج تعرف تشغّل أمر Python واحد.

Tokenization: إزاي الذكاء الاصطناعي بيقرأ كلامك فعلاً

النص العربي بياخد تقريبًا ضعف إلى تلات أضعاف التوكنز اللي بياخدها نفس المعنى بالإنجليزي. يعني نفس الرسالة، نفس النموذج، بتدفع فيها أكتر لمجرد إنها بالعربي. المقال ده هيوريك ليه بيحصل كده، وإزاي تقيسه بنفسك في دقيقتين، وإمتى الموضوع يستاهل تتعب فيه أصلًا.

المشكلة باختصار

النموذج زي Claude أو GPT مابيشوفش حروف ولا كلمات. بيشوف أرقام. علشان يحوّل كلامك لأرقام، بيقطّع النص لقطع صغيرة اسمها "توكنز". وانت بتدفع بالتوكن: توكنز الدخل + توكنز الخرج. هنا بالظبط بتظهر المشكلة: العربي بيتقطّع لعدد توكنز أكتر بكتير من الإنجليزي لنفس الجملة.

النتيجة العملية: chatbot عربي بيكلّفك أكتر من نفس chatbot إنجليزي، وكمان بيوصل أسرع لحد الـ context window (الحد الأقصى للنص اللي النموذج يقدر يشيله في المرة الواحدة).

رسم تجريدي لشبكة عصبية تعالج وحدات نصية صغيرة ترمز لطريقة تقطيع نماذج الذكاء الاصطناعي للكلام إلى توكنز

يعني إيه "توكن"؟ خلينا نقطّع بيتزا الأول

تخيّل إنك طلبت بيتزا واحدة، بس صاحب المحل مابيبيعش بيتزا كاملة — بيبيع بالقطعة. البيتزا الإنجليزي بيقطّعها 4 قطع كبيرة، فتدفع 4 وحدات. نفس البيتزا بالظبط لما تكون "عربي" بيقطّعها 10 قطع صغيرة، فتدفع 10 وحدات. أكلت نفس الكمية، بس دفعت أكتر، عشان السكينة بتقطّع العربي أنعم.

السكينة دي اسمها الـ Tokenizer. القطعة الواحدة اسمها token. الفاتورة بتتحسب على عدد القطع، مش على "كمية المعنى".

دلوقتي بعد ما المثال وضّح الفكرة، نرجع للتعريف الدقيق: الـ token هو أصغر وحدة نصية بيتعامل معاها النموذج. ممكن تكون كلمة كاملة، أو جزء من كلمة، أو حتى حرف واحد. كل token بيتحول لرقم (id) موجود في "قاموس" النموذج اسمه الـ vocabulary.

ليه العربي بياخد قطع أكتر؟ الشرح العلمي

أغلب النماذج بتستخدم خوارزمية اسمها Byte Pair Encoding (BPE). الفكرة باختصار: الخوارزمية بتتدرّب على كميات ضخمة من النصوص، وبتكوّن قاموس من أكتر تتابعات الحروف تكرارًا. التتابع اللي بيتكرر كتير بياخد token واحد. التتابع النادر بيتقطّع لحروف أو بايتات.

وهنا المشكلة: أغلب بيانات التدريب إنجليزي. فكلمات إنجليزية شائعة زي "information" ممكن تبقى token أو اتنين. لكن كلمة عربية زي "المعلومات" مش متكررة بنفس الكثافة في بيانات التدريب، وكمان العربي بيتكتب بحروف Unicode بتاخد عدة بايتات لكل حرف. فبتتقطّع لكذا token. أضف على ده التشكيل والهمزات والتاء المربوطة اللي بتزوّد التقطيع.

الافتراض هنا: ده بيختلف حسب النموذج. الـ tokenizer القديم من OpenAI (cl100k_base المستخدم مع GPT-4) كان أسوأ مع العربي. الأحدث (o200k_base مع GPT-4o) حسّن الموضوع لكن الفجوة لسه موجودة.

قيسها بنفسك في 12 سطر Python

مش محتاج تصدّقني. الكود ده بيحسب التوكنز الفعلية لنفس الجملة بالعربي والإنجليزي:

Python

# pip install tiktoken
import tiktoken

enc = tiktoken.get_encoding("o200k_base")  # نفس tokenizer بتاع GPT-4o

ar = "الذكاء الاصطناعي بيغيّر طريقة شغلنا بشكل كبير"
en = "Artificial intelligence is changing the way we work a lot"

ar_tokens = enc.encode(ar)
en_tokens = enc.encode(en)

print("عربي:", len(ar_tokens), "token")
print("إنجليزي:", len(en_tokens), "token")
print("النسبة:", round(len(ar_tokens) / len(en_tokens), 2), "ضعف")

لو شغّلت الكود ده هتلاقي العربي بياخد تقريبًا 1.8 إلى 2.5 ضعف الإنجليزي على نفس المعنى. جرّبه بجمل من شغلك الحقيقي علشان تشوف نسبتك انت بالظبط.

شاشة محرر أكواد تعرض كود Python لحساب عدد التوكنز في نص عربي مقابل نص إنجليزي

سيناريو واقعي بالأرقام

لو عندك chatbot دعم فني بيعالج 50 ألف رسالة في اليوم، متوسط الرسالة + الرد حوالي 800 token بالإنجليزي. بالعربي نفس المحتوى ممكن يطلع 1,700 token تقريبًا.

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

الـ trade-off اللي لازم تعرفه

تقدر تقلّل التوكنز بإنك تكتب prompts أقصر، أو تترجم المحتوى الثابت (زي تعليمات النظام) للإنجليزي وتسيب رد المستخدم بس بالعربي. بتكسب: توفير 30–50% من توكنز الدخل. بتخسر: جزء من دقة النموذج في فهم النية لو خلطت لغتين بشكل عشوائي، وكمان صيانة أصعب للـ prompt.

بديل أنضف: استخدم prompt caching لو نفس التعليمات بتتكرر، علشان تدفع التوكنز التقيلة مرة واحدة بدل كل رسالة.

متى لا تهتم بهذا أصلًا

لو مشروعك صغير أو تجريبي، وعدد الطلبات في حدود المئات يوميًا، الفرق ده ممكن يبقى دولارات قليلة في الشهر — مش مستاهل وقتك. ركّز على إن المنتج يشتغل صح الأول. موضوع تحسين التوكنز بيبقى مهم فعلًا لما توصل لعشرات الآلاف من الطلبات يوميًا، أو لما تقترب من حد الـ context window في مهام طويلة زي تلخيص مستندات كبيرة.

الخطوة التالية

افتح terminal دلوقتي، نصّب tiktoken، وشغّل الكود اللي فوق على أطول prompt في مشروعك الحقيقي. لو لقيت النسبة فوق 2x، ابدأ فكّر تنقل تعليمات النظام للإنجليزي وتقيس الفرق في الفاتورة بعد أسبوع.

المصادر

  • Petrov et al., "Language Model Tokenizers Introduce Unfairness Between Languages", NeurIPS 2023 — قياس فروق عدد التوكنز بين اللغات.
  • OpenAI tiktoken — المكتبة الرسمية والـ encodings (cl100k_base و o200k_base): github.com/openai/tiktoken
  • Sennrich et al., "Neural Machine Translation of Rare Words with Subword Units", ACL 2016 — الورقة الأصلية لخوارزمية BPE.
  • OpenAI Tokenizer (أداة تفاعلية لرؤية التقطيع): platform.openai.com/tokenizer

هل استفدت من المقال؟

اطّلع على المزيد من المقالات والدروس المجانية من نفس المسار المعرفي.

تصفّح المدونة