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