کدوم روش توکنیزیشن برای زبان کم‌منبع زونگخا بهتر جواب میده؟ یه مقایسه دوستانه!

Fall Back

اگه اهل تکنولوژی و هوش مصنوعی باشی، حتماً این روزها زیاد اسم مدل‌های زبون بزرگ یا همون Large Language Models (LLMs) به گوشت خورده. مثلاً همین چت‌بات‌هایی که می‌بینی چقدر باهوشن و راحت باهات حرف می‌زنن. حالا یکی از بخش‌های خیلی مهم این مدل‌ها، یه چیزی به اسم «توکنیزر» هست. توکنیزر همون ابزاریه که متن رو ریزتر می‌کنه، یعنی جملات رو به بخش‌های کوچیک‌تر (که بهشون میگن token، یعنی مثلاً کلمه یا حتی بخشی از یه کلمه) تقسیم می‌کنه. این کار باعث میشه مدل بتونه راحت‌تر معنی حرفی که زدی رو بفهمه و جواب بده.

تقریباً همه توکنیزرها برای زبان‌های معروف و پرطرفدار مثل انگلیسی خیلی خوب کار می‌کنن. اما مشکلی که هست اینه که برای زبان‌های کم‌منبع یعنی زبان‌هایی که حجم کمی داده و متن براشون وجود داره، توکنیزرها معمولاً اوضاع خوبی ندارن. یکی از همین زبان‌ها زونگخا (Dzongkha) هست؛ این زبان رسمیه کشور بوتان و حدود ۷۰۰ هزار نفر باهاش حرف می‌زنن!

حالا داستان چیه؟ پژوهشگرها اومدن بررسی کنن که کدوم روش توکنیزیشن برای زبان زونگخا بهتر جواب میده، چون هم خود زبان خیلی پیچیده‌ست و هم ابزارها براش کم ساخته شدن. البته توکنیزیشن یعنی همون تکه تکه کردن متن به واحدهای کوچیک‌تر، بنویسیم ساده!

توی این مقاله، سه تا الگوریتم معروف توکنیزیشن رو بررسی کردن و دیدن که کدومشون روی زونگخا بهتر جواب میده. این سه تا روش اینان:

  1. Byte-Pair Encoding (BPE): این یه روش کلاسیکه که توکنیزر میاد دوتا حرف پرتکرار رو با هم جمع می‌کنه و هی ترکیب‌های رایج‌تر رو می‌سازه. این‌طوری کم‌کم کلمات یا بخش‌هایی از کلمات، تبدیل به یه سری توکن میشن.

  2. WordPiece: این الگوریتم هم تقریباً شبیه BPE کار می‌کنه، ولی تو انتخاب ترکیب‌ها یه ذره منطقی‌تر و دقیق‌تره. WordPiece رو مثلاً گوگل برای Translate و مدل‌هایی مثل BERT زیاد استفاده می‌کنه.

  3. SentencePiece (Unigram): این یکی یه روش جالبه که کلمات رو مستقل و جدا از هم می‌بینه و یه عالمه ترکیب ممکن رو می‌سازه، بعدش اونایی که استفاده بیشتری دارن رو نگه می‌داره. بهش میگن Unigram یعنی هر گزینه رو جدا جدا بررسی می‌کنه.

حالا اون‌ها اومدن این سه الگوریتم رو روی زبان زونگخا تست کردن. برای مقایسه‌ هم از یه‌سری شاخص استفاده کردن:

  • Subword Fertility: یعنی اینکه چند تا توکن لازمه تا یه کلمه کامل بشه.
  • Proportion of Continued Words: منظورش اینه که چند تا کلمه بین توکن‌ها تقسیم شدن.
  • Normalized Sequence Length: طول متوسط توکن‌ها نسبت به تعداد کلمات متن.
  • Execution Time: زمان اجرا و سرعت کدوم بیشتره.

همه‌ی این معیارها بهشون کمک کرد بفهمن کدوم روش روی زونگخا بهتر در میاد. نتیجه جالب بود: هر سه الگوریتم نشون دادن که پتانسیل خوبی دارن، ولی SentencePiece (Unigram) بهترین عملکرد رو داشت! یعنی اگه دنبال ساختن مدل هوش مصنوعی یا همین LLMها برای زبان زونگخا باشی، این روش از همه مناسب‌تره. البته این موضوع نشون میده که باید برای زبان‌های کم‌منبع راه‌حل‌های اختصاصی پیدا کرد و کلاً پژوهش و کار روشون همچنان خیلی لازمه.

در کل، این تحقیق یک قدم خیلی خوب برای توسعه NLP (پردازش زبان طبیعی) توی زبان‌های خاص و کم‌منبعی مثل زونگخا بود. کم‌کم با این مدل کارها، میشه امیدوار بود روزی توکنیزرها برای همه زبان‌ها، حتی خاص‌ترین‌ها، حسابی هوشمند و دقیق بشن!

منبع: +