آموزشترنسفورمرها

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

فرمول کامل: توجه ضرب داخلی مقیاس‌شده

جواب کوتاه

توجه ضرب داخلی مقیاس‌شده، فرمول اصلی توجه توی ترنسفورمره و پنج قدم داره: پرسش‌ها در کلیدها ضرب می‌شن تا امتیازها دربیان، امتیازها بر ریشه‌ی دوم اندازه‌ی پرسش و کلید (d) تقسیم می‌شن، اگه لازم باشه ماسک می‌خورن، سافت‌مکس روی هر ردیف وزن‌ها رو می‌سازه، و وزن‌ها در مقدارها ضرب می‌شن. تقسیم برای اینه که وقتی بردارها بلندن، امتیازها خیلی بزرگ می‌شن؛ اون‌وقت سافت‌مکس تقریبا همه‌ی وزن رو به یه کلمه می‌ده و شیبش اون‌قدر صاف می‌شه که مدل به‌سختی یاد می‌گیره. توی مقاله‌ی ۲۰۱۷، d برابر ۶۴ بود، پس امتیازها بر ۸ تقسیم می‌شدن.

یعنی چی

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

توی درس امتیاز توجه دیدیم امتیاز از ضرب داخلی پرسش و کلید درمیاد و بعد سافت‌مکس اون رو وزن می‌کنه. مقاله‌ی ۲۰۱۷ یه قدم کوچیک وسطش گذاشت: امتیازها رو پیش از سافت‌مکس تقسیم کرد. اسم «مقیاس‌شده» هم از همین تقسیمه. این درس می‌گه چرا این تقسیم لازمه، و بعد کل فرمول رو قدم‌به‌قدم کنار هم می‌ذاره.

امتیاز بزرگ می‌شه

توی مثال درس قبل، پرسش و کلید دو تا عدد داشتن، پس امتیاز جمع دو تا ضرب بود. ولی توی مقاله‌ی ۲۰۱۷ هر کدوم ۶۴ عدد داشتن؛ یعنی امتیاز جمع ۶۴ تا ضرب. هر چی جمله‌های یه جمع بیشتر باشه، جوابش معمولا از صفر دورتر می‌شه. خود مقاله حسابش رو هم گفته: اگه عددها تصادفی باشن، اندازه‌ی معمول امتیاز حدود ریشه‌ی دوم تعداد عددهاست. برای ۶۴ عدد، یعنی حدود ۸ برابر یه عدد تنها.

سافت‌مکس گیر می‌کنه

حالا فرض کنید امتیازها ۳۲ و ۱۶ و ۸ باشن. سافت‌مکس این‌ها رو می‌کنه تقریبا ۱ و ۰ و ۰؛ یعنی همه‌ی توجه می‌ره سمت یه کلمه و بقیه اصلا شنیده نمی‌شن. مثل اینکه توی یه جلسه فقط به حرف یه نفر گوش بدید. مشکل بزرگ‌تر موقع آموزشه: وقتی سافت‌مکس این‌قدر یه‌طرفه‌ست، اگه امتیازها یه کم عوض بشن، وزن‌ها تقریبا تکون نمی‌خورن. پس شیب صاف می‌شه و گرادیان کاهشی نمی‌فهمه به کدوم طرف بره. مقاله‌ی ۲۰۱۷ دقیقا همین رو دلیل این تقسیم گفته.

تقسیم بر ریشه

راه‌حل ساده‌ست: اگه امتیاز به اندازه‌ی ریشه‌ی d بزرگ می‌شه، همون رو بر ریشه‌ی d تقسیم کن. d اینجا یعنی تعداد عددهای پرسش و کلید. توی مقاله d برابر ۶۴ بود و ریشه‌ش ۸؛ پس ۳۲ و ۱۶ و ۸ شدن ۴ و ۲ و ۱، و سافت‌مکس دوباره وزن‌هایی داد مثل ۰٫۸۴ و ۰٫۱۱ و ۰٫۰۴. هنوز «گربه» بیشترین وزن رو داره، ولی بقیه هم یه سهمی دارن و شیب دوباره جون می‌گیره. این تقسیم هیچ عدد یادگرفتنی‌ای نداره؛ یه عدد ثابته.

یه آزمایش کوچیک

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

ما همین کار رو با چهار اندازه کردیم: ۴، ۱۶، ۶۴ و ۲۵۶ عدد. اندازه‌ی معمول امتیازها دقیقا همون‌طور که مقاله گفته بود درومد: ۲، ۴، ۸ و ۱۶؛ یعنی جذر d. بعد برای هر پرسش، ۸ کلید ساختیم و نگاه کردیم بزرگ‌ترین وزن سافت‌مکس چقدر از کل رو می‌گیره. بی تقسیم، با d برابر ۴، حدود ۵۳ درصد؛ با ۶۴، حدود ۸۸ درصد؛ با ۲۵۶، حدود ۹۴ درصد. یعنی هر چی بردارها بلندتر، سافت‌مکس یه‌طرفه‌تر. ولی با تقسیم بر جذر d، این عدد برای همه‌ی اندازه‌ها حدود ۳۶ درصد موند. تقسیم دقیقا همون کاری رو کرد که قرار بود: بزرگی بردار رو از تصمیم سافت‌مکس جدا کرد.

فرمول کامل

حالا همه‌ی تیکه‌ها رو داریم. فرمول کامل توجه، پنج قدم پشت سر همه.

اول پرسش‌ها در کلیدها ضرب می‌شن و جدول امتیاز ساخته می‌شه. بعد کل جدول بر ریشه‌ی d تقسیم می‌شه. بعد، اگه لازم باشه، یه ماسک بعضی خونه‌ها رو می‌بنده؛ مثلا جلوی نگاه کردن به کلمه‌های بعدی رو می‌گیره. بعد سافت‌مکس هر ردیف رو وزن می‌کنه. و آخر، وزن‌ها در مقدارها ضرب می‌شن تا برای هر کلمه یه میانگین وزن‌دار دربیاد. همه‌ی این‌ها توی ریاضی، یه خط کوتاهه که زیر تصویر نوشته؛ Q یعنی پرسش‌ها، K کلیدها و V مقدارها.

۲۰۱۴ و ۲۰۱۷

توی درس تولد توجه دیدیم پژوهش ۲۰۱۴ ربط رو با یه شبکه‌ی کوچیک می‌سنجید؛ به این روش می‌گن توجه جمعی. مقاله‌ی ۲۰۱۷ می‌گه وقتی d کوچیکه، این دو روش تقریبا هم‌اندازه خوب کار می‌کنن؛ ولی وقتی d بزرگه، ضرب داخلی بی تقسیم عقب می‌افتاد. حدسشون همین بزرگ شدن امتیازها بود، و با همین تقسیم ساده، ضرب داخلی هم سریع موند و هم خوب کار کرد.

یه جور دما

اگه مسیر مدل‌های زبانی رو دیده باشید، این تقسیم براتون آشناست.

توی درس دما دیدیم پیش از سافت‌مکس، امتیازها رو بر یه عدد به اسم دما تقسیم می‌کنن: دمای کم انتخاب رو تیز می‌کنه، دمای زیاد نرمش می‌کنه. تقسیم بر جذر d دقیقا همون کاره، با دمای ثابت جذر d؛ توی مقاله‌ی ۲۰۱۷ یعنی دمای ۸. فرقش اینه که این‌جا دما رو آدم موقع جواب گرفتن انتخاب نمی‌کنه؛ توی خود ساختمون مدل گذاشته شده تا وزن‌های توجه، هر قدر هم بردارها بلند باشن، نه خیلی تیز باشن و نه خیلی پخش.

چند نکته

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

حالا وقتشه یه بار کامل، با دست و عدد واقعی، همه‌ی این قدم‌ها رو بریم: توجه با دست: سه کلمه، عددهای واقعی.

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

  • بردار بلندتر، امتیاز بزرگ‌تر.
  • امتیاز خیلی بزرگ، سافت‌مکس یه‌طرفه.
  • راه‌حل: تقسیم بر ریشه‌ی d.
  • ضرب، تقسیم، ماسک، سافت‌مکس، ضرب.
  • مقاله‌ی ۲۰۱۷: ۶۴ عدد، تقسیم بر ۸.

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

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

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

۱۵ پرسش

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

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

درس بعد