منصوبے کے بارے میں

Swift Tokenizers ایک Swift پیکیج ہے جو Hugging Face کے Rust `tokenizers` crate کو لپیٹتا ہے، Swift ایپلیکیشنز کے لیے ہائی پرفارمنس ٹوکنائزیشن فراہم کرتا ہے۔ Swift Transformers کے برعکس، یہ صرف ٹوکنائزیشن پر توجہ مرکوز کرتا ہے اور Hugging Face Hub پر انحصار نہیں کرتا، اس لیے ماڈل فائلیں الگ سے ڈاؤن لوڈ کی جاتی ہیں اور مقامی ڈائریکٹری سے لوڈ کی جاتی ہیں۔ ضروری شرائط اور پلیٹ فارم سپورٹ: Swift 6.2 یا اس سے نیا ورژن (Apple پلیٹ فارمز پر Xcode 26)، macOS 14+، iOS 17+، اور Linux x86_64 اور aarch64 پر۔ Rust بیک اینڈ ایک واحد SE-0482 staticLibrary artifactbundle کے طور پر آتا ہے جس میں Apple اور Linux سلائسز شامل ہوتے ہیں، اس لیے ایک واحد انحصار مشروط منی فیسٹ لاجک کے بغیر تمام پلیٹ فارمز پر کام کرتا ہے۔ Linux بائنریز Ubuntu 22.04 پر glibc کو نشانہ بناتے ہیں اور نئے Ubuntu LTS امیجز کے ساتھ فارورڈ کمپیٹ ایبل ہوتے ہیں؛ musl سپورٹڈ نہیں ہے۔ پرانی ٹول چینز پیکیج کو ریزولव نہیں کر سکتیں کیونکہ آرٹیفیکٹ کی قسم Swift 6.2 میں شامل ہوئی تھی۔ بنیادی صلاحیتیں: - مقامی ڈائریکٹری سے ٹوکنائزرز لوڈ کریں جس میں tokenizer.json اور سائیڈکار فائلیں جیسے tokenizer_config.json، config.json اور chat_template.jinja شامل ہوں۔ - ٹیکسٹ کو ٹوکن IDs میں انکوڈ کریں اور ٹوکن IDs کو واپس ٹیکسٹ میں ڈی کوڈ کریں۔ - encodeWithMetadata مزید امیر انکوڈنگ ڈیٹا واپس کرتا ہے جس میں ٹوکن اسٹرنگز، ماسکس، سیکوینس انڈیکسز، ورڈ انڈیکسز اور آفسیٹ اسپینز شامل ہوتے ہیں۔ - ایک StreamingDetokenizer مکمل Unicode scalars دستیاب ہوتے ہی ٹیکسٹ چانکس خارج کرتا ہے، محدود اندرونی حالت کے ساتھ جو اسٹریم کی لمبائی کے ساتھ نہیں بڑھتی۔ یہ منقطع اسٹریم کو دوبارہ شروع کرتے وقت پچھلے ٹوکنز سے بیج (seed) کیا جا سکتا ہے۔ - applyChatTemplate کے ذریعے چیٹ ٹیمپلیٹ کا اطلاق، فنکشن ڈیفینیشنز کے ساتھ ٹول کالنگ سمیت۔ - بیچ انکوڈنگ اور ٹوکنائز آپریشنز۔ API ناکامی کی صورت میں TokenizerError پھینکتا ہے (غیر درست ٹوکن IDs، کنفیگریشن عدم مطابقت، اندرونی Rust errors)، ٹائپڈ تھروز کا استعمال کرتے ہوئے تاکہ کالرز معاملات کو مکمل طور پر کیچ کر سکیں۔ ایک مائگریشن سیکشن خاموشی سے خالی نتائج واپس کرنے سے تھرو کرنے کی تبدیلی کو دستاویزی کرتا ہے، اور ایک اور سیکشن Swift Transformers سے مائگریشن کو کور کرتا ہے، جس میں پیکیج انحصار کو بدلتا ہے اور hub-based لوڈنگ سے مقامی ڈائریکٹری لوڈنگ کی طرف سوئچ کرتا ہے۔ README میں ایک بینچ مارک ٹیبل شامل ہے جو M3 MacBook Pro پر Swift Tokenizers 0.5.0 کا موازنہ Swift Transformers 1.3.2 سے کرتا ہے، تیز ٹوکنائزر لوڈنگ، ٹوکنائزیشن، ڈی کوڈنگ، اور ماڈل لوڈنگ اوقات کی رپورٹنگ کرتا ہے۔ بینچ مارکس TOKENIZERS_ENABLE_BENCHMARKs ماحولیاتی متغیر کے پیچھے گیٹ کیے جاتے ہیں تاکہ عام صارفین mlx-swift-lm کو نہ کھینچیں، جس کے لیے Metal کی ضرورت ہوتی ہے اور یہ صرف macOS پر دستیاب ہوتا ہے۔ ماڈل لوڈنگ بینچ مارکس کے لیے Metal کی ضرورت ہوتی ہے اور انہیں xcodebuild کے ذریعے چلانا ہوگا؛ صرف ٹوکنائزر والے بینچ مارکس ریلیز کنفیگریشن میں swift test کے ذریعے چلائے جا سکتے ہیں۔