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

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

پرسش، کلید و مقدار (Query، Key، Value)

جواب کوتاه

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

یعنی چی

هر کلمه سه تا چیز داره: دنبال چیه، خودش چیه، و چی می‌ده.

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

سه عینک

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

با عدد

یه مثال خیلی کوچیک و ساختگی: بردار یه کلمه فقط دو تا عدد داره، ۲ و ۱.

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

همه با هم

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

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

چرا سه تا

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

یاد گرفته می‌شن

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

اندازه‌ها

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

چند تا وزن

این عینک‌ها خودشون وزن‌های مدلن، و کم هم نیستن.

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

سرها دنبال چی‌ان

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

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

چند نکته

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

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

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

  • یه بردار، سه ماتریس، سه بردار.
  • پرسش: دنبال چی‌ام؟
  • کلید: من چی‌ام؟ مقدار: چی می‌دم؟
  • ماتریس‌ها با آموزش یاد گرفته می‌شن.
  • ۵۱۲ عدد، ۸ سر، هر سر ۶۴.

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

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

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

۱۵ پرسش

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

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