المُجزّئ (Tokenizer) هو الخطوة التي تحوّل النصّ إلى أرقام يفهمها النموذج. تاريخيًا لم يكن عنق زجاجة، لكن مع تدريب النماذج على مجموعات بيانات ضخمة، وخدمة طلبات متزامنة كثيرة، ومعالجة مدخلات طويلة متكرّرة، قد يصبح المعالج المركزي هو ما يؤخّر بطاقات الرسوميات عن العمل. لهذا ركّزت Hugging Face في النسخة الأولى الكبرى من مكتبة tokenizers على الأداء.
ماذا تقدّم؟
- نفس المخرجات بالضبط: تنتج v1 معرّفات الرموز نفسها التي تنتجها النسخة 0.23، مع الحفاظ على الواجهة والمفردات وترتيب الدمج.
- سرعة أعلى: عبر عشر عائلات نماذج، تُرمّز النصّ أسرع من 3 إلى 30 ضعفًا مقارنة بالنسخة 0.23 على خيط واحد في Apple M4 Max. أقلّ تحسّن كان لـt5-base وأكبره لـgpt2.
- توازٍ حقيقي: تتوسّع بنسبة 76% من التوسّع الخطّي عبر ثمانية عمّال، لأن كل خيط يملك ذاكرته المؤقتة الخاصّة بدل الانتظار على قفل واحد.
من أين جاءت السرعة؟
أغلب النماذج المقاسة تستخدم ترميز أزواج البايتات (Byte Pair Encoding). وأبرز التغييرات:
- bitcannon: بدل محرّك التعابير النمطية لتقسيم النصّ، تُستخدم عمليات منطقية على تدفّقات البتّات بتعليمات SIMD، تفحص 64 بايتًا في العملية الواحدة. يغطّي حاليًا أنماط GPT-2 وcl100k وo200k وTekken وDeepSeek.
- ذاكرة الكلمات: الكلمة المكرّرة تُدمج مرّة واحدة، ثم تُسترجع نتيجتها مباشرة.
- حلقة دمج بلا تخصيص ذاكرة: تعمل داخل مخزن مؤقت مُعدّ مسبقًا، وتعالج دفعة من الأجزاء في استدعاء واحد.
كيف تجرّبها؟
النسخة المرشّحة متاحة حاليًا لـRust على crates.io:
cargo add tokenizers --pre
وإذا كنت تحتاج الترميز فقط دون التدريب، يمكنك استبعاد اعتمادية C++ الخاصّة بالتدريب:
cargo add tokenizers --pre --no-default-features --features http
الواجهة لم تتغيّر، وencode_batch هي الدالّة التي تتوسّع عبر الأنوية.
الحدود الحالية
- كل الأرقام مقاسة على مكتبة Rust نفسها. روابط بايثون تغلّف الكود نفسه لكنها تضيف عبئًا لكل استدعاء لم تشمله القياسات.
- المُجزّئ الذي لا يتعرّف bitcannon على نمطه يبقى على مسار التعابير النمطية، ولا يستفيد من هذا التسريع.
- ذاكرة الكلمات تفيد عندما يتكرّر النصّ؛ المدخلات قليلة التكرار قد تدفع تكلفة البحث دون فائدة تُذكر.
- ما زالت نسخة مرشّحة، ووصول التحسينات إلى مكتبة transformers سيأتي بعد استقرارها.
لمن تناسب؟
لفرق تدريب النماذج على بيانات ضخمة، ولخدمات الاستدلال التي تعالج آلاف الطلبات المتزامنة، ولمن يبني أدوات بـRust أو Node.js، إذ أضيفت روابط Node.js. وتخطّط Hugging Face قبل الإصدار 1.0.0 لروابط C وC++ لاستخدامها مع ExecuTorch وllama.cpp.
المصادر: Hugging Face — 2026-09-21



