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