عن المشروع
Swift Tokenizers هي حزمة Swift تغلّف مكتبة `tokenizers` المكتوبة بلغة Rust من Hugging Face، وتوفر ترميزًا عالي الأداء لتطبيقات Swift. وخلافًا لـ Swift Transformers، فإنها تركز فقط على الترميز ولا تعتمد على Hugging Face Hub، لذا تُنزَّل ملفات النموذج بشكل منفصل وتُحمَّل من دليل محلي.
المتطلبات ودعم المنصات: Swift 6.2 أو أحدث (Xcode 26 على منصات Apple)، وmacOS 14+، وiOS 17+، وLinux على x86_64 وaarch64. تُشحن الواجهة الخلفية المكتوبة بلغة Rust كحزمة artifactbundle واحدة من نوع staticLibrary وفق SE-0482 تحتوي على شرائح لمنصات Apple وLinux، لذا تعمل تبعية واحدة عبر المنصات دون منطق شرطي في ملف manifest. تستهدف ثنائيات Linux مكتبة glibc على Ubuntu 22.04 وهي متوافقة مع إصدارات Ubuntu LTS الأحدث؛ ولا تُدعم musl. لا تستطيع سلاسل الأدوات الأقدم حلّ الحزمة لأن نوع artifact ظهر في Swift 6.2.
القدرات الأساسية:
- تحميل المُرمِّزات من دليل محلي يحتوي على tokenizer.json وملفات جانبية مثل tokenizer_config.json وconfig.json وchat_template.jinja.
- ترميز النص إلى معرّفات رموز وفك ترميز معرّفات الرموز إلى نص.
- تُرجع encodeWithMetadata بيانات ترميز أغنى تشمل سلاسل الرموز والأقنعة ومؤشرات التسلسل ومؤشرات الكلمات ونطاقات الإزاحة.
- يُصدر StreamingDetokenizer أجزاء نصية بمجرد توفر وحدات Unicode scalar كاملة، مع حالة داخلية محدودة لا تنمو مع طول التدفق. ويمكن تهيئته برموز سابقة عند استئناف تدفق متقطع.
- تطبيق قالب الدردشة عبر applyChatTemplate، بما في ذلك استدعاء الأدوات مع تعريفات الدوال.
- عمليات الترميز على دفعات وعمليات tokenize.
تطرح واجهة API الخطأ TokenizerError عند الفشل (معرّفات رموز غير صالحة، وعدم تطابق الإعدادات، وأخطاء Rust الداخلية)، باستخدام typed throws حتى يتمكن المستدعون من التقاط الحالات بشكل شامل. ويوثّق قسم خاص بالترحيل التغيير من إرجاع نتائج فارغة بصمت إلى طرح الأخطاء، ويغطي قسم آخر الترحيل من Swift Transformers، بما في ذلك استبدال تبعية الحزمة والانتقال من التحميل المعتمد على hub إلى التحميل من دليل محلي.
يتضمن README جدول قياسات أداء يقارن Swift Tokenizers 0.5.0 مع Swift Transformers 1.3.2 على جهاز MacBook Pro بمعالج M3، ويُبلّغ عن أوقات أسرع لتحميل المُرمِّز والترميز وفك الترميز وتحميل النموذج. قياسات الأداء محجوبة خلف متغير البيئة TOKENIZERS_ENABLE_BENCHMARKS حتى لا يجلب المستهلكون العاديون mlx-swift-lm، الذي يتطلب Metal ويعمل على macOS فقط. تتطلب قياسات أداء تحميل النموذج وجود Metal ويجب تشغيلها عبر xcodebuild؛ أما قياسات أداء الترميز فقط فيمكن تشغيلها باستخدام swift test في إعداد release.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.