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

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

رمزگذاری موقعیتی

جواب کوتاه

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

یعنی چی

به هر کلمه یه برچسب می‌چسبونیم که بگه کجای جمله نشسته.

مثل شماره‌ی صندلی توی سینما. آدم‌ها همونن، ولی اینکه کی کجا نشسته مهمه. با این درس وارد ایستگاه تازه‌ای می‌شیم: ورودی ترنسفورمر. تا اینجا دیدیم متن چطور به توکن و هر توکن چطور به یه بردار تبدیل می‌شه. حالا یه چیز کمه: جای هر کدوم.

مشکل

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

جمع کلمه و جا

برچسب جا خودش یه برداره، دقیقا هم‌اندازه‌ی بردار کلمه. این دو تا، عدد به عدد، با هم جمع می‌شن و نتیجه می‌ره توی لایه‌ی اول. مثلا با عددهای ساختگی، بردار «گربه» ۰٫۵ و ۰٫۲ و ۰٫۹ و ۰٫۱ داره. اگه جای اول باشه، بردار جای ۱ بهش اضافه می‌شه؛ اگه جای سوم، بردار جای ۳. نتیجه دو ورودی متفاوته، با اینکه کلمه یکیه. حالا وقتی توجه پرسش و کلید رو می‌سازه، جای کلمه هم توی حساب هست.

شماره‌ی ساده

اولین فکری که به ذهن می‌رسه اینه که به کلمه‌ی اول عدد ۱ بدیم، به دومی ۲، و همین‌طور. ولی عددهای بردار کلمه معمولا کوچیکن، حدود یک. توی یه متن بلند، کلمه‌ی هزارم عدد ۱۰۰۰ می‌گیره و معنی کلمه زیرش گم می‌شه. فکر دوم اینه که شماره رو بر طول جمله تقسیم کنیم تا همیشه بین صفر و یک بمونه. ولی اون‌وقت «جای دوم» توی یه جمله‌ی چهارکلمه‌ای می‌شه ۰٫۵ و توی یه جمله‌ی ده‌کلمه‌ای ۰٫۲؛ یعنی یه جا، دو عدد. هیچ‌کدوم خوب نیست.

دو راه

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

مطلق و نسبی

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

بی رمزگذاری هم می‌شه؟

یه سوال جالب: اگه رمزگذاری موقعیتی رو کلا برداریم، مدل دیگه ترتیب رو نمی‌فهمه؟

یه پژوهش سال ۲۰۲۲ همین رو امتحان کرد. مدل‌هایی که متن رو کلمه‌به‌کلمه می‌سازن رو بی هیچ رمزگذاری موقعیتی آموزش داد و دید هنوز تقریبا هم‌پای مدل‌های معمولی‌ان. حدسشون این بود که دلیلش ماسک آیندهست. یادتونه ماسک یه مثلث می‌سازه؟ کلمه‌ی اول فقط خودش رو می‌بینه، دومی دو تا، سومی سه تا. پس هر کلمه از تعداد چیزهایی که می‌تونه ببینه، می‌تونه بفهمه تقریبا چندمه. یعنی ماسک خودش یه کم حس جا می‌ده. ولی این حدسه، و مدل‌های بزرگ امروزی هنوز یه جور رمزگذاری جا دارن.

متن بلندتر از آموزش

یه مشکل دیگه هم هست: مدلی که روی متن‌های کوتاه آموزش دیده، با متن بلندتر چی کار کنه؟

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

چند نکته

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

حالا بریم سراغ اون فرمول ثابت، که با چند تا موج ساخته می‌شه. درس بعد: رمزگذاری سینوسی مقاله‌ی ۲۰۱۷.

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

  • توجه تنها ترتیب رو نمی‌بینه.
  • بردار جا + بردار کلمه = ورودی.
  • شماره‌ی ساده برای متن بلند خرابه.
  • یادگرفته یا فرمول ثابت.
  • مطلق: جای چندم. نسبی: چقدر فاصله.

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

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

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

۱۵ پرسش

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

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

درس بعد