
بقلم: نور | محررة الأبحاث والدراسات · صوت تحريري بإشراف بشري
أسرع بـ 989 ضعفاً من HuggingFace Tokenizers، وبـ 681 ضعفاً من tiktoken عند معالجة نموذج GPT-2 على معالج AMD EPYC 9565 — هذه ليست مبالغة تسويقية، بل أرقام قياسية موثّقة أفرزتها GigaToken، المكتبة التي صنعها مارسيل رود لتحطيم سقف أداء عمليات الترميز في نماذج اللغة الكبيرة.
الترميز (tokenization) هو الخطوة التي تحوّل النص الخام إلى أرقام يفهمها النموذج، وكان يُعدّ حتى الآن خطوةً “جيدة بما يكفي” طالما كانت المكتبات القائمة مكتوبةً بـ Rust وتعمل بتعدد خيوط التنفيذ. GigaToken أثبتت أن “جيد بما يكفي” لم يكن كافياً أبداً.
اختبر المطوّر الأداءَ على ملف owt_train.txt بحجم 11.9 GB من مجموعة بيانات OpenWebText، وهي بيانات قريبة من مخرجات CommonCrawl الفعلية، مما يجعل الاختبار ممثلاً لأعباء التدريب الحقيقية. (وفقاً لـ GigaToken GitHub) النتائج جاءت متسقةً عبر ثلاثة معالجات مختلفة تمثّل بيئات الإنتاج الأكثر شيوعاً:
على AMD EPYC 9565 (144 نواة، مقبستان)، سجّلت GigaToken 24.53 GB/s لـ GPT-2 مقابل 24.8 MB/s لـ HuggingFace، أي تفوقاً بمقدار 989×. Phi-4 وصلت إلى 24.00 GB/s مقابل 29.9 MB/s (801×). OLMo 2/3 حققت 23.06 GB/s مقابل 27.7 MB/s (833×). Qwen 3 سجّلت 22.16 GB/s مقابل 34.2 MB/s (648×). Llama 3/3.1/3.2 وصلت إلى 22.15 GB/s مقابل 48.5 MB/s (457×). DeepSeek V3/R1/V4 حققت 19.69 GB/s مقابل 26.2 MB/s (750×). أما Gemma 4 فجاءت الأبطأ نسبياً بـ 4.82 GB/s مقابل 334.1 MB/s، أي تفوق بـ 14× فقط. (وفقاً لـ GigaToken GitHub)
على Apple M4 Max (16 نواة)، تصاعدت الفجوة أكثر لصالح GigaToken: GPT-2 بلغت 8.79 GB/s مقابل 6.9 MB/s من HuggingFace — فارق 1,268×. OLMo 2/3 وصلت إلى 7.56 GB/s بتفوق 1,299×. Phi-4 سجّلت 7.76 GB/s بتفوق 1,012×. Qwen 2/2.5 حققت 6.37 GB/s بتفوق 1,105×. Qwen 3 سجّلت 6.36 GB/s بتفوق 918×. DeepSeek V3/R1/V4 وصلت إلى 5.68 GB/s بتفوق 788×. (وفقاً لـ GigaToken GitHub)
على AMD Ryzen 7 9800X3D (16 نواة)، التي تمثّل بيئة المطوّر الفردي، حققت GPT-2 6.27 GB/s مقابل 59.0 MB/s (106×). Phi-4 سجّلت 6.09 GB/s (110×). Qwen 3 حققت 5.34 GB/s (98×). Llama 4 وصلت إلى 5.03 GB/s (64×). ModernBERT سجّلت 2.84 GB/s (54×). الأبطأ كانت Gemma 3 بـ 1.12 GB/s مقارنة بـ 83.0 MB/s (13×). (وفقاً لـ GigaToken GitHub)
ما الذي يجعل هذا الأداء ممكناً تقنياً؟ رود يشرح في قسم الأسئلة الشائعة أن التحسين جاء من ثلاثة محاور متوازية: تحسين خطوة ما قبل الترميز (pretokenization) باستخدام SIMD بدلاً من محرك Regex، والتحكم الدقيق في التفريع لتقليل التنبؤات الخاطئة للمعالج، ثم بناء نظام تخزين مؤقت (caching) فعّال لتعيينات الرموز الأولية — وهو تحدٍّ غير تافه لأن التوزيع الذيلي لتكرار الكلمات يجعل الـ cache ينمو بسرعة. يضاف إلى ذلك تقليص التواصل بين الخيوط وتجنّب العبور غير الضروري عبر Python. (وفقاً لـ GigaToken GitHub)
من الناحية العملية، الأداة تدعم ثلاثة أوضاع للاستخدام. الوضع الأول هو التوافق مع HuggingFace عبر استبدال سطر واحد: gt.Tokenizer(hf_tokenizer).as_hf(). والثاني التوافق مع tiktoken عبر gt.Tokenizer(tiktokenizer).as_tiktoken(). لكن الأسرع هو الـ API الأصلي الذي يتجاوز Python تماماً ويسمح لـ Rust بقراءة الملفات مباشرةً مع أقصى قدر من التوازي. والتثبيت لا يستغرق أكثر من أمر واحد: pip install gigatoken.
السياق الذي يجعل هذه الأرقام مثيرة بشكل حقيقي: بالسرعة المسجّلة على معالج EPYC، يمكن ترميز كامل بيانات Common Crawl — التي تُعادل فعلياً نسخة كاملة من الإنترنت وتبلغ 130 تريليون رمز — في أقل من 6.5 ساعات. (وفقاً لـ GigaToken GitHub) هذا يعني أن الزجاجة الضيقة في خطوط تدريب النماذج الكبيرة قد تنتقل بشكل حقيقي من مرحلة الترميز إلى مراحل أخرى كلياً.
ثمة تحفظات جوهرية ينبغي أخذها بعين الاعتبار: النمط المتوافق مع HuggingFace يضمن مطابقة المخرجات بدقة لكنه يتضمن تكلفة أداء مقارنةً بالـ API الأصلي، لذا “السرعة الكاملة” تتطلب تغيير طريقة قراءة البيانات. المحللات القائمة على SentencePiece كنماذج Gemma وMistral هي الأبطأ — وتنخفض مكاسبها إلى 7-22× — إذ إن دعمها غير مُحسَّن بعد. كذلك لم يُختبر الدعم على Windows بشكل كافٍ ويُنصح باستخدام WSL. وورد في القسم المتعلق بالمشكلات المعروفة أن Python iteration تعمل عبر ABI3 وهي أبطأ من APIs مخصصة لكل إصدار من Python — وهو تحسين مخطط له يتوقع رود أن يعطي تسريعاً إضافياً بمعامل 2×. File sinks وWordPiece غير مدعومَين حتى الآن.
لافتٌ في هذا المشروع أن رود أفصح عن استخدامه للذكاء الاصطناعي في المراحل الأخيرة فقط — لمساعدته في بناء واجهة المستخدم، وتوسيع التوافق مع مزيد من المحللات، والمراحل الأخيرة من تحسين الأداء بعد إزالة التفريع وتحسين هرم الـ cache — بينما كتب الجوهر التقني بالكامل بالكود اليدوي. هذا توثيق نادر ومفيد لمن يريد فهم أي أجزاء هندسة الأداء العالي لا تزال تتطلب خبرة بشرية عميقة.







