واژهنامهی مدل و توکنهای ویژه
جواب کوتاه
واژهنامهی مدل فهرست همهی تکههاییه که مدل میشناسه، هر کدوم با یه شماره؛ معمولا دهها یا صدها هزار تکه. سه جور مدخل داره: تکههای متن، که بیشترشن؛ بایتها، برای هر چیزی که تکهی آماده نداره؛ و چند تا نشونهی ویژه که متن نیستن، مثل «اینجا متن تموم شد» یا «اینجا نوبت دستیاره». اندازهی واژهنامه یه انتخابه: بزرگتر یعنی متن با تکههای کمتری نوشته میشه، ولی جدول امبدینگ، که برای هر مدخل یه ردیف عدد داره، سنگینتر میشه. و واژهنامه بعد از آموزش ثابت میمونه؛ مدل همیشه با همون تکهها کار میکنه.
دفترچه
توی درس جفتهای پرتکرار دیدیم واژهنامه چطور ساخته میشه. حالا خود این دفترچه رو باز کنیم. سه بخش داره:
بخش اول و بزرگترین، تکههای متن هست: کلمهها، بخشهایی از کلمه، حرفها و علامتها؛ همون چیزهایی که BPE ساخته. بخش دوم بایتها هستن: هر بایت ۲۵۶ مقدار ممکن داره، و اگه همهشون توی واژهنامه باشن، هر چیزی که تکهی آماده نداره، بالاخره با بایتها نوشته میشه؛ همون چیزی که توی درس توکنسازی دیدیم.
بخش سوم چند تا نشونهی ویژه هست که اصلا متن نیستن؛ علامتهایی که مرزها رو برای مدل میکشن. هر مدخل، از هر بخشی، یه شماره داره، و مدل فقط همین شمارهها رو میبینه.
چند تا
واژهنامهی مدلهای امروزی معمولا دهها یا صدها هزار مدخل داره. مثلا توکنساز یکی از چتباتهای معروف، ۱۰۰ هزار تکه از روش جفتهای پرتکرار ساخته و ۲۵۸ نشونهی ویژه هم کنارشون گذاشته؛ رویهم ۱۰۰٬۲۵۸ مدخل.
ولی واژهنامهی مدل فرهنگ لغت نیست: نه معنی کلمهها رو داره، نه همهی کلمهها رو؛ فقط تکههایی که توی متن آموزش زیاد بودن، به زبانهای مختلف، کنار علامتها و تکههای کد.
بزرگ یا کوچیک
چرا همه یه اندازه انتخاب نمیکنن؟ چون اندازهی واژهنامه یه الاکلنگه:
واژهنامهی بزرگتر تکههای بلندتری داره، پس همون متن با تکههای کمتری نوشته میشه. متن کوتاهتر یعنی پنجرهی زمینه دیرتر پر میشه، و هزینه که به توکن شمرده میشه، کمتر. ولی دو تا بدی داره: جدول امبدینگ، که پایینتر میبینیم، سنگینتر میشه؛ و تکههای خیلی نادر، که فقط چند بار توی متن آموزش اومدن، موقع آموزش کم دیده میشن و مدل خوب نمیشناسدشون.
واژهنامهی کوچیکتر برعکسه: جدول سبکتر، ولی متنها بلندتر میشن و پنجره زودتر پر میشه. سازندهها یه جایی وسط این دو تا رو انتخاب میکنن.
جدول امبدینگ
هر مدخل واژهنامه، داخل مدل، یه ردیف از عددها داره:
وقتی شمارهی یه تکه به مدل میرسه، اولین کار مدل اینه که ردیف همون شماره رو از این جدول برداره. این ردیف یه بردار هست که معنی اون تکه رو نگه میداره؛ همون امبدینگ. این عددها، مثل بقیهی پارامترها، موقع آموزش یاد گرفته میشن.
حالا حساب کنید: اگه واژهنامه ۱۰۰ هزار مدخل داشته باشه و هر ردیف ۱۰ هزار عدد، این جدول تنها یک میلیارد عدد میشه. این عددها رو برای حس اندازه فرض کردیم، ولی ایده واقعیه: هر مدخل اضافه، یه ردیف کامل عدد اضافه. برای همین اندازهی واژهنامه روی اندازهی کل مدل هم اثر داره.
دو سر مدل
واژهنامه فقط اول کار نیست؛ آخر کار هم هست.
اول، جدول امبدینگ هر شماره رو به یه بردار تبدیل میکنه. آخر، لایهی خروجی برای همهی مدخلهای واژهنامه یه امتیاز میده، که با سافتمکس احتمال میشه؛ همون احتمالهایی که توی درس پیشبینی تکهی بعد دیدیم. پس لایهی خروجی هم برای هر مدخل یه ردیف عدد داره، و واژهنامهی بزرگتر، هر قدم ساختن متن رو هم سنگینتر میکنه.
یه پژوهش ۲۰۱۶ پیشنهاد داد این دو جدول، که هر دو یه ردیف برای هر مدخل دارن، یکی بشن. این کار رو گره زدن وزنها (Weight Tying) میگن. اون پژوهش گفت مدلهای ترجمه اینطوری تا کمتر از نصف اندازهی قبلشون کوچیک شدن، بی اینکه بدتر بشن.
چه اندازهای بهتره
پس اندازهی واژهنامه رو چطور انتخاب کنن؟ تا چند سال پیش بیشتر با حس و تجربه. یه پژوهش ۲۰۲۴ این رو با حساب بررسی کرد.
اون پژوهش مدلهایی از ۳۳ میلیون تا ۳ میلیارد پارامتر رو آموزش داد و با سه روش مختلف به یه نتیجه رسید: مدل بزرگتر، واژهنامهی بزرگتر میخواد، و بیشتر مدلهای امروز واژهنامهشون از اندازهی بهتر کوچیکتره. مثلا برآورد کرد یه مدل ۷۰ میلیاردی ۲۰۲۳ که ۳۲ هزار مدخل داشت، دستکم ۲۱۶ هزار مدخل لازم داشت؛ تقریبا هفت برابر. یه مدل ۳ میلیاردی هم با بزرگتر کردن واژهنامه از ۳۲ هزار به ۴۳ هزار، با همون مقدار محاسبه، توی یه آزمون استدلال بهتر شد.
توکنهای ویژه
و حالا اون نشونههایی که متن نیستن. توی یه گفتگو با چتبات، اینجوری دور حرفها رو میگیرن:
مهمترینشون نشونهی پایان هست. مدل تکه به تکه مینویسه، و وقتی این نشونه رو انتخاب کنه، یعنی جوابش تمومه. بدون اون، مدل تا ابد ادامه میداد. توی گفتگو، نشونههایی هم هست که میگن کجا پیام سیستمی شروع میشه، کجا حرف شما، و کجا نوبت دستیاره؛ اینجوری مدل میفهمه کدوم متن مال کیه. اسمهایی که توی تصویر گذاشتیم نمونهان؛ هر مدل نشونههای خودش رو داره. درس نقشها در گفتگو این رو کامل باز میکنه.
چند تا نشونهی دیگه هم رایجه: یکی برای ناشناخته، برای چیزی که توی واژهنامه نیست؛ یکی برای پوشیده، که توی بعضی مدلها برای بازی جای خالی موقع آموزش به کار میره؛ و یکی برای پر کردن. وقتی چند تا متن با طولهای مختلف با هم به مدل داده میشن، متنهای کوتاهتر رو با این نشونه پر میکنن تا هماندازهی بلندترین بشن.
ثابت بودن
واژهنامه قبل از آموزش مدل ساخته میشه و بعدش دیگه عوض نمیشه. همهی چیزهایی که مدل یاد میگیره، به همین تکهها گره خورده: جدول امبدینگ یه ردیف برای هر کدوم داره، و خروجی مدل هم یه احتمال برای هر کدوم.
یعنی اگه یه کلمهی تازه، مثلا اسم یه چیز تازه، بعدا پیدا بشه، به واژهنامه اضافه نمیشه؛ با همون تکههای قدیمی سر هم میشه. و اگه سازنده بخواد واژهنامه رو عوض کنه، مثلا با توکنساز تازهای که توی درس توکن دیدیم، مدل رو هم باید با همون واژهنامهی تازه آموزش بده.
مدخلهایی که مدل تمرین نکرده
یه گیر عجیب هم هست که از ثابت بودن واژهنامه میاد.
توکنساز جدا از خود مدل و پیش از اون ساخته میشه. پس ممکنه یه مدخل توی واژهنامه باشه، ولی تقریبا هیچوقت توی دادهی آموزش مدل نیومده باشه؛ مثلا فرض کنید یه اسم کاربری توی متن آموزش توکنساز زیاد بوده، ولی توی دادهی مدل نبوده. یه پژوهش ۲۰۲۴ به اینها توکنهای «آموزشندیده» گفت و نشون داد توی خیلی از مدلها پیدا میشن. ردیف امبدینگ این مدخلها تقریبا دستنخورده مونده، و اگه یکیشون توی ورودی بیاد، مدل ممکنه رفتار عجیبی نشون بده؛ برای همین پژوهشگرها راههایی ساختن که این مدخلها رو خودکار پیدا کنن.
بزرگ کردن واژهنامه برای یه زبان
گفتیم واژهنامه بعد از آموزش ثابته. ولی یه راه میونبر هم هست.
اگه یه مدل برای یه زبان تکههای خیلی ریز بسازه، مثل چیزی که برای فارسی توی درس چرا فارسی توکن بیشتری میخواد میبینیم، میشه به واژهنامهش تکههای تازهی اون زبان رو اضافه کرد، برای هر کدوم یه ردیف تازه توی جدول ساخت، و بعد مدل رو یه مدت روی متن همون زبان آموزش داد تا ردیفهای تازه معنی پیدا کنن. یه پژوهش ۲۰۲۳ همین کار رو برای چینی کرد: ۲۰ هزار تکهی چینی به واژهنامه اضافه کرد و گفت مدل متن چینی رو کارآمدتر نوشت و بهتر فهمید. اینطوری لازم نیست کل مدل از صفر آموزش ببینه.
چند نکته
- واژهنامه فرهنگ لغت نیست. تکه داره، نه معنی.
- نشونهی پایان، جواب رو تموم میکنه. بدونش مدل واینمیستاد.
- هر مدخل، یه ردیف عدد. واژهنامهی بزرگتر، مدل سنگینتر.
- بعد از آموزش ثابته. کلمهی تازه از تکههای قدیمی ساخته میشه.
حالا که واژهنامه رو میشناسید، یه سوال مهم برای ما فارسیزبونها: چرا فارسی توکن بیشتری میخواد.
جمعبندی. آنچه از این درس با خودتان میبرید.
- سه بخش: تکههای متن، بایتها، نشونههای ویژه.
- معمولا دهها یا صدها هزار مدخل.
- بزرگتر: متن کوتاهتر، جدول سنگینتر.
- هر مدخل، یه ردیف توی جدول امبدینگ.
- بعد از آموزش، ثابت.
خودتون رو بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو میبینید: چند تا درست، چند تا نادرست.