آموزشمدل‌های زبانی بزرگ (LLM)

درس ۱۲ از ۸۵، هوش مصنوعی، حدود ۱۵ دقیقه خواندن

چرا فارسی توکن بیشتری می‌خواهد

جواب کوتاه

واژه‌نامه‌ی توکن‌سازها از روی متن آموزش ساخته می‌شه، و توی اون متن معمولا انگلیسی خیلی بیشتر از فارسیه. روش جفت‌های پرتکرار، تکه‌های بلند رو برای چیزهایی می‌سازه که زیاد دیده؛ پس کلمه‌های انگلیسی یه تکه‌ی کامل می‌شن و کلمه‌های فارسی به تکه‌های کوچیک‌تر، گاهی حرف به حرف، شکسته می‌شن. توی یه آزمایش کوچیک، جمله‌ی انگلیسی شد ۶ تکه و همون جمله‌ی فارسی ۱۳ تکه. یه پژوهش در سال ۲۰۲۳ تفاوت تا ۱۵ برابر بین زبان‌ها دید. چون هزینه، سرعت و جای پنجره‌ی زمینه به توکن شمرده می‌شن، این یعنی کار با فارسی معمولا گرون‌تر، کندتر و جاگیرتره.

یه جمله، دو زبان

یه جمله‌ی ساده، دو بار: یه بار انگلیسی، یه بار فارسی. معنیشون یکیه. ببینید هر کدوم چند تا آجر شدن:

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

این تصویر از یه آزمایش کوچیکه که خودمون انجامش دادیم؛ پایین‌تر می‌گیم دقیقا چطور. عددهای مدل‌های واقعی فرق می‌کنه، ولی جهتش، همون‌طور که پژوهش‌ها هم نشون دادن، همینه.

چرا

جوابش توی درس روش جفت‌های پرتکرار بود: واژه‌نامه آینه‌ی متن آموزشه. روش جفت‌های پرتکرار هر بار جفتی رو یکی می‌کنه که توی متن آموزش بیشتر از همه کنار هم اومده. اگه بیشتر اون متن انگلیسی باشه، بیشتر ادغام‌ها مال تکه‌های انگلیسی می‌شه، و تکه‌های بلند و کامل همه انگلیسی می‌شن.

کلمه‌های فارسی، که توی اون متن کمتر بودن، کمتر ادغام می‌گیرن. پس وقتی یه جمله‌ی فارسی میاد، توکن‌ساز تکه‌ی بلند آماده براش کم داره و مجبوره با تکه‌های کوچیک‌تر، گاهی حرف به حرف، بنویسدش. یعنی مشکل از خود فارسی نیست؛ فارسی نه سخت‌تره نه طولانی‌تر. مشکل از اینه که واژه‌نامه با چه متنی ساخته شده.

آزمایش ما

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

از ۴۶۳ کلمه‌ی این متن، ۴۵۲ تاش انگلیسی بود و ۱۱ تاش فارسی. همون روش جفت‌های پرتکرار رو روش اجرا کردیم، تا جایی که هیچ جفتی بیش از یه بار تکرار نشده بود؛ ۷۲ ادغام. بعد چند جمله رو با این واژه‌نامه بریدیم.

«i eat an apple every day» شد ۶ تکه؛ «من هر روز یک سیب می‌خورم» شد ۱۳ تکه، با اینکه همین جمله‌ی فارسی توی متن آموزش بود. یه جمله‌ی دیگه، «we drink tea every morning»، شد ۵ تکه، و ترجمه‌ش «ما هر صبح چای می‌نوشیم»، که توی متن آموزش نبود، شد ۱۷ تکه؛ بیش از سه برابر.

این آزمایش کوچیک و ساختگیه، و توکن‌سازهای واقعی روی متن خیلی بیشتری، از خیلی زبان‌ها، ساخته می‌شن. ولی همون قاعده کار می‌کنه: هر زبانی که توی متن ساختن واژه‌نامه کمتر بوده، تکه‌های بیشتری می‌شه.

پژوهش ۲۰۲۳

سال ۲۰۲۳ یه پژوهش همین سوال رو روی توکن‌سازهای واقعی پرسید: یه متن، که به زبان‌های مختلف ترجمه شده، چند توکن می‌شه؟ جوابشون این بود که تفاوت می‌تونه خیلی زیاد باشه؛ توی بعضی موارد تا ۱۵ برابر.

دو تا نکته‌ی دیگه هم گفتن. اول اینکه این تفاوت حتی توی توکن‌سازهایی که عمدا برای چندزبانه بودن ساخته شدن هم هست. دوم اینکه حتی مدل‌هایی که حرف به حرف یا بایت به بایت کار می‌کنن، برای بعضی جفت‌زبان‌ها بیش از ۴ برابر تفاوت طول دارن.

اسم پژوهششون رو گذاشتن «توکن‌سازها بین زبان‌ها بی‌عدالتی می‌کنن»، و پیشنهادشون این بود که مدل‌های آینده با توکن‌سازهایی ساخته بشن که با زبان‌های مختلف منصفانه‌تر رفتار کنن. این همون جنس مسئله‌ایه که توی درس سوگیری و انصاف دیدیم، فقط این بار پیش از اینکه حتی مدل کار کنه.

بیشتر پول، جواب بدتر

یه پژوهش دیگه‌ی ۲۰۲۳ یه قدم جلوتر رفت و پرسید: این تفاوت توکن، برای کسی که پول می‌ده چه معنی‌ای داره؟

اون پژوهش یه سرویس پولی مدل زبانی رو روی ۲۲ زبان مختلف امتحان کرد. چون قیمت به توکن حساب می‌شه، گفتن یه حرف به بعضی زبان‌ها گرون‌تر درمیومد. ولی نتیجه‌ی تلخ‌تر این بود: گوینده‌های خیلی از زبان‌ها هم بیشتر پول می‌دادن و هم جواب بدتری می‌گرفتن. پژوهش گفت این کاربرها معمولا توی جاهایی زندگی می‌کنن که همین سرویس براشون از همه گرون‌تره. درس مدل زبانی و زبان فارسی کیفیت جواب‌ها رو جدا بررسی می‌کنه.

دو بایت

یه لایه پایین‌تر هم یه فرق هست. توی رایج‌ترین روش نگه داشتن متن، حرف‌های ساده‌ی انگلیسی هر کدوم یه بایت‌ان، ولی حرف‌های فارسی هر کدوم دو بایت؛ ما با پایتون شمردیم. توی درس توکن‌سازی دیدیم که وقتی تکه‌ی آماده نیست، بعضی توکن‌سازها تا بایت پایین می‌رن.

پس توی بدترین حالت، یعنی وقتی یه کلمه‌ی فارسی هیچ تکه‌ی آماده‌ای نداره و تا بایت شکسته می‌شه، هر حرفش دو تکه می‌شه، در حالی که یه حرف انگلیسی توی همون وضع یه تکه می‌شد. این یکی از دلیل‌هاییه که حتی مدل‌های بایتی هم بین زبان‌ها تفاوت دارن.

اثرش

خب، تکه‌ی بیشتر چه فرقی برای شما داره؟ همون پژوهش سه تا اثر شمرد:

هزینه: سرویس‌ها به ازای توکن پول می‌گیرن؛ پس یه متن فارسی، برای همون حرف، گرون‌تر تموم می‌شه. زمان: مدل تکه به تکه می‌نویسه؛ تکه‌ی بیشتر یعنی جواب دیرتر کامل می‌شه. جا: پنجره‌ی زمینه به توکن شمرده می‌شه؛ پس توی همون پنجره، متن فارسی کمتری جا می‌شه، و توی یه گفتگوی طولانی، زودتر حرف‌های اول از پنجره بیرون می‌افته.

این‌ها مشکل‌هایی‌ان که خود شما نمی‌تونید حلشون کنید؛ دست سازنده‌هاست که توکن‌سازهای منصفانه‌تری بسازن. ولی دونستنشون کمک می‌کنه بفهمید چرا یه متن فارسی طولانی زودتر به سقف می‌رسه، یا چرا هزینه‌ش از چیزی که فکر می‌کردید بیشتر شده. وضعیت هر مدل هم فرق داره، چون هر کدوم توکن‌ساز خودش رو داره. درس مدل زبانی و زبان فارسی بقیه‌ی ماجرا رو می‌گه.

چه کاری از دستمون برمیاد

این مشکل یه شبه حل نمی‌شه، ولی هم شما و هم سازنده‌ها کارهایی می‌تونید بکنید.

از طرف شما، سه تا کار ساده. اول، کوتاه و دقیق بنویسید و جواب کوتاه بخواید؛ توی درس توکن دیدیم توکن خروجی معمولا خیلی گرون‌تر از ورودیه. دوم، اگه یه متن ثابت، مثل یه دستورالعمل بلند، رو بارها می‌فرستید، از کش کردن پرامپت استفاده کنید تا دفعه‌های بعد ارزون‌تر خونده بشه. سوم، اگه هزینه مهمه، تعداد توکن متن فارسیتون رو با شمارنده‌ی همون مدل بشمرید و چند مدل رو مقایسه کنید؛ توکن‌ساز هر مدل فرق داره.

از طرف سازنده‌ها، دو راه. یکی همون پیشنهاد پژوهش ۲۰۲۳: توکن‌سازهایی که از اول با زبان‌های مختلف منصفانه رفتار کنن. یکی هم بزرگ کردن واژه‌نامه برای یه زبان، مثل کاری که یه پژوهش ۲۰۲۳ برای چینی کرد و توی درس واژه‌نامه‌ی مدل دیدیم: اضافه کردن تکه‌های تازه‌ی همون زبان و آموزش دوباره.

چند نکته

  • فارسی سخت‌تر نیست. فقط توی متن ساختن واژه‌نامه‌ها کمتر بوده.
  • متن فارسی طولانی، زودتر پنجره رو پر می‌کنه. برای فایل‌های بلند حواستون باشه.
  • هزینه‌ی فارسی معمولا بیشتره. اگه با یه سرویس پولی کار می‌کنید، روی همین حساب کنید.
  • هر مدل فرق داره. تعداد تکه‌ی یه متن به توکن‌ساز همون مدل بستگی داره.

درس بعد یه رفتار عجیب دیگه رو توضیح می‌ده که اونم از توکن میاد: چرا مدل حرف‌های یه کلمه رو بد می‌شمره.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

  • واژه‌نامه آینه‌ی متن آموزشه؛ اون متن بیشتر انگلیسیه.
  • پس فارسی تکه‌های بیشتری می‌شه.
  • آزمایش ما: ۶ تکه در برابر ۱۳.
  • پژوهش: تا ۱۵ برابر تفاوت بین زبان‌ها.
  • یعنی هزینه، زمان و جای بیشتر.

خودتون رو بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو می‌بینید: چند تا درست، چند تا نادرست.

خودتون رو بسنجید

۱۵ پرسش

  • هر بار پرسش‌ها و ترتیب گزینه‌ها عوض می‌شه.
  • تا آخر نمی‌گیم کدوم جواب درست بوده؛ می‌تونید برگردید و جوابتون رو عوض کنید.
  • آخرش کارنامه می‌گیرید: چند تا درست، چند تا نادرست.
  • اگه وسطش بستید، دوباره که باز کنید از همون‌جا ادامه می‌دید.

فصل‌های این درس

درس بعد