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