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

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

مکانیزم توجه چیست

جواب کوتاه

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

یعنی چی

یه میانگین، که به حرف هر کس به اندازه‌ی ربطش گوش می‌ده.

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

میانگین وزن‌دار

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

همه به همه

توی ترنسفورمر، هر کلمه همین کار رو با همه‌ی کلمه‌های جمله می‌کنه.

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

سه نقش

مقاله‌ی ۲۰۱۷ توجه رو با سه نقش تعریف کرد: یه پرسش، و یه دسته جفت کلید و مقدار.

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

جست‌وجوی نرم

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

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

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

۲۰۱۴ و ۲۰۱۷

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

کجاهای ترنسفورمر

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

کل فرمول در یه خط

همه‌ی این‌ها توی مقاله‌ی ۲۰۱۷ توی یه خط فرمول جا شده. نترسید؛ چهار قدم ساده‌ست که بقیه‌ی این ایستگاه یکی‌یکی بازشون می‌کنه.

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

نقشه‌ی این ایستگاه

  1. پرسش، کلید و مقدار از کجا میان.
  2. امتیاز با ضرب، و وزن با سافت‌مکس.
  3. چرا امتیازها رو کوچیک می‌کنیم.
  4. یه بار کامل، با دست و عدد.
  5. خودتوجهی، چند سر، و ماسک.

از اولی شروع کنیم: پرسش، کلید و مقدار.

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

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

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

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

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

۱۵ پرسش

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

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

درس بعد