Alireza Kholghi
6 یادداشت منتشر شدهتوکنایزاسیون: چگونه مدل های زبانی متن را می خوانند و چرا برای فارسی مهم است؟
مقدمه: پرسش اصلی
وقتی جمله ای فارسی به یک مدل زبانی می دهیم، مدل آن جمله را مانند ما کلمه به کلمه نمی خواند. پیش از هر پردازشی، متن به واحدهایی کوچک تر به نام «توکن» تقسیم می شود؛ واحدهایی که نه لزوما کلمه اند و نه حرف. همین مرحله به ظاهر فنی، یعنی توکنایزاسیون، بر سه چیز اثر مستقیم دارد: هزینه استفاده از مدل، مقدار متنی که در پنجره زمینه جا می شود، و حتی کیفیت پاسخ مدل به زبان فارسی. پرسش این یادداشت این است که توکن دقیقا چیست، چگونه ساخته می شود، و چرا زبان فارسی در این مرحله در موقعیتی متفاوت از انگلیسی قرار می گیرد.
چرا مدل ها کلمه نمی خوانند؟
مدل های زبانی با عدد کار می کنند، نه با حروف. برای اینکه متن به عدد تبدیل شود، باید هر واحد متنی به یک عدد اختصاصی نگاشت شود؛ به این نگاشت، واژگان مدل می گویند. اگر واحدها کلمه های کامل بودند، واژگان مدل باید همه کلمه های ممکن یک زبان را دربرمی گرفت؛ یعنی صدها هزار یا میلیون ها مورد، به علاوه همه شکل های صرفی، نام های خاص و غلط های املایی. چنین واژگانی هم حافظه زیادی می خواست و هم هر کلمه تازه ای را به «کلمه ناشناخته» تبدیل می کرد. راه حل، تقسیم کلمه ها به زیرکلمه هاست: واحدهایی میان حرف و کلمه که هم واژگان را کوچک نگه می دارند و هم اجازه می دهند هر کلمه تازه ای از ترکیب قطعه های آشنا ساخته شود.
BPE: ادغام پرتکرارترین جفت ها
پرکاربردترین روش توکنایزاسیون، رمزگذاری جفت بایتی یا BPE است؛ الگوریتمی که اصل آن از فشرده سازی داده آمده بود. سنریش، هدو و برچ در سال ۲۰۱۶ نشان دادند که می توان از همین ایده برای ترجمه ماشینی عصبی استفاده کرد. روش کار ساده است: در آغاز، هر حرف یک واحد جداست. سپس الگوریتم، پرتکرارترین جفت واحدهای پشت سرهم را در پیکره آموزشی پیدا می کند و آن دو را به یک واحد تازه ادغام می کند. این کار تا رسیدن به اندازه واژگان از پیش تعیین شده تکرار می شود. نتیجه، واژگانی از قطعه های پرتکرار است: پسوندها و پیشوندهای رایج به صورت یک واحد درمی آیند و کلمه های نادر به چند قطعه آشنا تقسیم می شوند. برای مثال، یک کلمه نادر ممکن است به ریشه و پسوندش تجزیه شود. نویسندگان نشان دادند که این تقسیم بندی، نسبت به روش رایج آن زمان یعنی استفاده از واژه نامه جایگزین، در ترجمه انگلیسی به آلمانی تا ۱٫۱ واحد و در ترجمه انگلیسی به روسی تا ۱٫۳ واحد بلو (BLEU) بهبود می دهد. بلو معیاری استاندارد برای سنجش کیفیت ترجمه ماشینی است.
از BPE تا SentencePiece
BPE تنها روش نیست. کودو و ریچاردسون در سال ۲۰۱۸ ابزار SentencePiece را معرفی کردند؛ توکنایزری مستقل از زبان که مستقیم روی جمله های خام آموزش می بیند و دو الگوریتم BPE و مدل زبانی یونی گرم را پیاده می کند. تفاوت مهم SentencePiece این است که به پیش پردازش وابسته به زبان، مانند جداکردن کلمه ها با فاصله، نیاز ندارد؛ فاصله سفید خود به عنوان یک نماد در نظر گرفته می شود. به همین دلیل برای زبان هایی مانند ژاپنی که مرز کلمه در آن ها روشن نیست، مناسب است. روش دیگر، WordPiece است که در مدل BERT به کار رفت و بر پایه بیشینه کردن احتمال قطعه ها در پیکره انتخاب می کند. با وجود این تفاوت ها، اصل مشترک همه این روش ها یکی است: توکنایزر از روی داده آموزشی می آموزد که کدام قطعه ها «پرتکرار» و در نتیجه «ارزشمند» اند؛ و همین وابستگی به داده، ریشه نابرابری میان زبان هاست.
چرا توکنایزاسیون برای فارسی مهم است؟
اگر پیکره آموزشی یک توکنایزر بیشتر انگلیسی باشد، قطعه های انگلیسی پرتکرار در واژگان جا می گیرند و کلمه های انگلیسی معمولا به یک یا دو توکن تبدیل می شوند؛ اما متن فارسی، با خط عربی و ساخت صرفی متفاوت، به قطعه های کوچک تر و بیشتری شکسته می شود. دو پژوهش در سال ۲۰۲۳ این نابرابری را اندازه گرفتند. آهیا و همکارانش با بررسی واسط برنامه نویسی مدل های تجاری در ۲۲ زبان نشان دادند که برای رساندن معنای یکسان، برخی زبان ها به چند برابر انگلیسی توکن نیاز دارند؛ برای نمونه، متن تلوگو حدود پنج برابر انگلیسی توکن مصرف می کند. پتروف و همکارانش نیز با ارزیابی ۱۷ توکنایزر روی پیکره موازی FLORES-200 نشان دادند که طول توکنایزاسیون یک متن در زبان های مختلف تا ۱۵ برابر تفاوت دارد؛ تفاوتی که حتی در توکنایزرهای چندزبانه نیز باقی می ماند. مدل های سطح کاراکتر و بایت نیز از این نابرابری مصون نبودند و برای برخی جفت زبان ها بیش از چهار برابر تفاوت نشان دادند.
پیامد این نابرابری برای کاربر فارسی زبان سه گانه است. نخست، هزینه: چون قیمت گذاری سرویس های تجاری بر پایه تعداد توکن است، یک درخواست فارسی با محتوای یکسان می تواند گران تر از معادل انگلیسی آن تمام شود. دوم، پنجره زمینه: وقتی هر جمله فارسی توکن بیشتری می گیرد، متن کمتری در حافظه کوتاه مدت مدل جا می شود و برای کارهایی مانند خلاصه سازی مقاله های بلند، این محدودیت زودتر حس می شود. سوم، کیفیت: آهیا و همکارانش نشان دادند که زبان هایی با توکنایزاسیون طولانی تر، در یادگیری درون متنی نیز عملکرد ضعیف تری دارند؛ یعنی همان عاملی که هزینه را بالا می برد، دقت مدل را هم پایین می آورد.
یک مثال ملموس: پرامپت نویسی برای تولید محتوا
فرض کنید یک تولیدکننده محتوا می خواهد با یک مدل زبانی، ده کپشن اینستاگرام برای یک برند ایرانی بنویسد. اگر پرامپت را به فارسی بنویسد، همان دستور با توکن های بیشتری نمایش داده می شود و بخش بزرگ تری از پنجره زمینه را اشغال می کند؛ در نتیجه برای پاسخ های بلند یا چند مرحله ای، فضای کمتری باقی می ماند. چند راهکار عملی از همین تحلیل بیرون می آید: نخست، پرامپت را کوتاه و مشخص نگه دارید و جزئیات غیرضروری را حذف کنید؛ دوم، پیش از ارسال درخواست های بلند، تعداد توکن را با ابزارهای توکنایزر بسنجید؛ سوم، برای ایده پردازی یا ساختاردهی که دقت فارسی خروجی حیاتی نیست، می توان دستور را به انگلیسی نوشت و خروجی نهایی را به فارسی خواست؛ و چهارم، هنگام مقایسه قیمت سرویس ها، هزینه را به ازای «متن فارسی» خودتان حساب کنید، نه به ازای ارقام تبلیغاتی که معمولا با متن انگلیسی سنجیده می شوند. هیچ کدام از این ها جایگزین انتخاب مدل مناسب نیست، اما توکنایزاسیون را از یک جزئیات پنهان به یک متغیر قابل مدیریت در فرایند تولید محتوا تبدیل می کند.
محدودیت ها و مسیر آینده
توکنایزاسیون زیرکلمه ای راه حل کاملی نیست. نخست، تقسیم بندی آماری گاهی مرزهای معنایی کلمه را می شکند و قطعه هایی می سازد که معنای مستقلی ندارند. دوم، واژگان یک توکنایزر پس از آموزش ثابت می ماند و با واژه های تازه یک حوزه تخصصی سازگار نمی شود. سوم، همان طور که پتروف و همکارانش استدلال می کنند، نابرابری میان زبان ها ساختاری است: تا وقتی توکنایزر بر داده عمدتا انگلیسی آموزش ببیند، این نابرابری در هر درخواست تکرار می شود و کاربر نهایی نمی تواند آن را دور بزند. مسیرهای پژوهشی پیش رو شامل توکنایزرهای چندزبانه عادلانه تر و مدل های سطح بایت است که اصلا به واژگان از پیش تعیین شده نیاز ندارند. هیچ کدام هنوز جایگزین استاندارد نشده اند، اما جهت حرکت روشن است: از توکنایزری که زبان را به عنوان یک پس فرض انگلیسی می بیند، به توکنایزری که تنوع زبانی را از آغاز در نظر می گیرد.
نتیجه گیری
توکنایزاسیون، پلی است میان متن انسانی و عددهای مدل؛ پلی که با BPE و ابزارهایی مانند SentencePiece ساخته شد تا مدل ها بتوانند با واژگانی محدود، هر کلمه ای را بخوانند. اما همین پل برای همه زبان ها یکسان نیست: پژوهش های ۲۰۲۳ نشان می دهند که متن غیرانگلیسی، به ویژه با خط غیرلاتین، به توکن های بیشتری تقسیم می شود و این یعنی هزینه بیشتر، زمینه کمتر و گاهی دقت پایین تر. برای تولیدکننده محتوای فارسی زبان، دانستن این سازوکار یک دانش حاشیه ای نیست؛ بخشی از سواد حرفه ای کار با مدل های زبانی است و به انتخاب پرامپت، مدیریت هزینه و برآورد واقع بینانه توان مدل کمک می کند.