لو بتدفع لـ Claude API أو OpenAI 80 دولار في الشهر، وزميلك بيدفع 25 دولار على نفس عدد الطلبات تقريبًا، الفرق غالبًا مش في الكود. الفرق إنك بتبعت نص عربي وهو بيبعت نص إنجليزي. الكلمة العربية الواحدة في المتوسط بتتكسّر لـ 2 إلى 4 وحدات تسمى tokens، بينما الإنجليزية بتتكسّر لتوكن واحد. ده معناه إن نفس المعنى بيكلّفك ضعفين أو ثلاثة. نهاية المقال هتفهم ليه ده بيحصل، وهتعرف بالظبط إزاي تعد التوكنز قبل ما تبعت أي طلب.
Tokens: الوحدة اللي بتدفع عليها فعلًا
المشكلة باختصار
كل نموذج لغوي — Claude وGPT وLlama وغيرهم — مش بيشوف الكلام كحروف ولا ككلمات. بيشوفه كأرقام. الجسر بين النص اللي بتكتبه والأرقام اللي النموذج بيفهمها اسمه tokenizer. الـ tokenizer بياخد الجملة ويكسّرها لقطع صغيرة (tokens)، وكل قطعة ليها رقم ثابت في معجم النموذج. الفاتورة بتتحسب على عدد التوكنز الداخلة والخارجة، مش على عدد الكلمات ولا الحروف.
مثال صناديق الكرتون (للي مش مبرمج)
تخيّل إنك بتشحن بضاعة في شركة شحن، والشركة بتحاسبك مش على وزن البضاعة، بل على عدد الصناديق اللي حطّيت فيها البضاعة. شركة الشحن عندها صناديق جاهزة بمقاسات معينة. لو بضاعتك "هاتف"، فيه صندوق جاهز اسمه "هاتف" بيدخل فيه كله، فبتدفع صندوق واحد. لكن لو بضاعتك "تليسكوب"، مفيش صندوق بالاسم ده، فبيقسّموه لـ 3 صناديق: واحد "تلي" + واحد "س" + واحد "كوب". نفس البضاعة، لكن بـ 3 صناديق بدل واحد.
الـ tokenizer بيشتغل بنفس المنطق. كلمة "hello" موجودة في معجمه كـ token جاهز، فهي توكن واحد. كلمة "السلام" غالبًا مش في المعجم كوحدة كاملة، فبيتكسّرها لـ "ال" + "سل" + "ام" — تلات صناديق.
التعريف العلمي: Byte Pair Encoding
الخوارزمية الأكثر استخدامًا في tokenizers الحديثة (Claude، GPT-4، Llama 3) اسمها Byte Pair Encoding، اختصارًا BPE. الفكرة باختصار: ابدأ بمعجم فيه كل الحروف الفردية، وبعدين اعمل إحصائية على أكثر زوجَين متجاورَين تكرارًا في بيانات تدريب ضخمة، ضم الزوج ده ك token واحد جديد، وكرّر آلاف المرات لحد ما يتكوّن معجم بحجم 50,000 إلى 200,000 توكن.
المعاجم دي اتدرّبت على نصوص أغلبها إنجليزي — بحوالي 90% في GPT، ونسبة أقل في Claude. النتيجة: الكلمات الإنجليزية الشائعة دخلت المعجم ك tokens كاملة، أما العربية والكورية واليابانية فأخذت نصيب أقل، فبتتكسّر لقطع أصغر.
الكود اللي يثبت الفرق
الكود ده بيستخدم Anthropic SDK لعد التوكنز فعلًا قبل إرسال أي طلب. ركّز على الفرق في النتيجة: