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

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

محدودیت‌ها و جایگزین‌ها

جواب کوتاه

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

یعنی چی

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

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

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

محدودیت‌ها

اولین و معروف‌ترین محدودیت، هزینه‌ی مربعیه. متن دو برابر بشه، حساب توجه چهار برابر می‌شه. ترفندهایی مثل توجه سریع حافظه‌ی این حساب رو کم کردن، ولی خود حساب هنوز مربعیه:

دومی، حافظه‌ی موقع ساختنه. مدل برای این‌که هر بار کلید و مقدار همه‌ی تکه‌های قبلی رو از نو حساب نکنه، نگهشون می‌داره، و این حافظه با هر تکه بزرگ‌تر می‌شه. سومی، این‌که هر تکه، چه آسون چه سخت، دقیقا یه بار از همه‌ی لایه‌ها رد می‌شه؛ مدل نمی‌تونه برای یه سوال سخت بیشتر فکر کنه، مگه با نوشتن تکه‌های بیشتر.

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

کش، با عدد

بیاید کش کلید و مقدار یه مدل متوسط امروزی رو حساب کنیم. فرض کنید ۳۲ لایه داره، ۸ سر کلید و مقدار، هر سر ۱۲۸ عدد، و هر عدد ۲ بایت. برای هر تکه، باید کلید و مقدار، یعنی ۲ تا، برای همه‌ی این‌ها نگه داشته بشه؛ ۳۲ ضرب در ۸ ضرب در ۱۲۸ ضرب در ۲ ضرب در ۲، یعنی ۱۳۱ هزار و ۷۲ بایت، یعنی ۱۲۸ کیلوبایت برای هر تکه.

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

سرعت ساختن، با عدد

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

بقیه‌ی کار همون لایه، یعنی ساختن پرسش و کلید و مقدار و پیش‌خور، روی هم حدود ۱۷۶ میلیونه، و به طول متن ربطی نداره. یعنی وقتی متن ۱۰۰ هزار تکه‌ای شد، خوندن گذشته بیش از چهار برابر خود فکر کردن روی تکه‌ی تازه کار می‌بره، و هر تکه‌ی بعدی یه کم کندتر از قبلی ساخته می‌شه. توی یه مدل با حالت ثابت، این بخش اصلا با طول بزرگ نمی‌شه، و تکه‌ی صد هزارم، همون‌قدر تند ساخته می‌شه که تکه‌ی اول.

تکه‌سازی و طول

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

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

چرا بازگشتی برگشت

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

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

دفتر یا خلاصه

این دو طرز نگه داشتن گذشته رو کنار هم ببینید:

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

توجه خطی

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

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

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

مدل فضای حالت

خانواده‌ی دوم از یه جای کاملا دیگه اومد؛ نظریه‌ی کنترل و پردازش سیگنال، که ده‌ها سال قدمت داره. یه مدل فضای حالت یا SSM، کوتاه‌شده‌ی State Space Model، یعنی «مدل فضای حالت»، با سه ماتریس کار می‌کنه:

حالت تازه، برابر A ضرب در حالت قبلی، به‌علاوه‌ی B ضرب در ورودی تازه‌ست. خروجی، C ضرب در حالته. A تعیین می‌کنه چقدر از گذشته بمونه، B این‌که ورودی تازه چطور وارد حالت بشه، و C این‌که چی از حالت خونده بشه. این همون فکر بازگشتیه، ولی کاملا خطی؛ هیچ تابع غیرخطی بین قدم‌ها نیست.

یه پژوهش ۲۰۲۱ نشون داد اگه ماتریس A یه ساختار خاص و حساب‌شده داشته باشه، این مدل می‌تونه وابستگی‌های خیلی دور، تا ده‌ها هزار قدم، رو نگه داره، و روی آزمون‌های دنباله‌ی خیلی بلند، که ترنسفورمرها اون موقع توشون ضعیف بودن، نتیجه‌های خیلی بهتری گرفت.

آموزش موازی

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

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

انتخابی

سال ۲۰۲۳ یه پژوهش این گیر رو باز کرد. ایده‌ش ساده بود؛ B، C و یه گام زمانی که تعیین می‌کنه حالت چقدر عوض بشه، از روی خود ورودی ساخته بشن. یعنی مدل با دیدن هر تکه، خودش تصمیم می‌گیره این تکه مهمه و باید وارد حالت بشه، یا بی‌اهمیته و باید ازش رد شد:

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

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

دوگانگی

یه پژوهش ۲۰۲۴ یه پل نظری بین این دو دنیا زد. نشون داد یه دسته از مدل‌های فضای حالت، از نظر ریاضی، دقیقا معادل یه جور توجه ماسک‌دارن که ماتریس توجهش یه ساختار خاص داره. یعنی جدول امتیازها، به‌جای این‌که از سافت‌مکس بیاد، از ضرب‌های ساده‌ی همون ماتریس‌های A ساخته می‌شه.

این دوگانگی دو تا فایده داشت. یک، می‌شد همون مدل رو، بسته به شرایط، یا مثل توجه با ضرب ماتریسی بزرگ، یا مثل بازگشتی با حالت ثابت حساب کرد، و برای آموزش، نسخه‌ای که با کارت گرافیک جورتره رو انتخاب کرد؛ آموزش چند برابر تندتر شد. دو، نشون داد فرق این خانواده‌ها کمتر از چیزیه که به نظر می‌رسید؛ همه، روش‌های متفاوت برای ترکیب گذشته‌ان.

بازگشتی‌های تازه

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

سال ۲۰۲۴ هم یه نسخه‌ی گسترش‌یافته از خود LSTM اومد، با دروازه‌هایی که با تابع نمایی کار می‌کنن و حافظه‌ای که به‌جای یه بردار، یه ماتریسه. نکته‌ی مشترک همه‌ی این‌ها؛ حالت ثابت، به‌روزرسانی ساده که موازی می‌شه، و یه راه برای فراموش کردن کنترل‌شده.

پیچش‌های بلند

یه راه دیگه، کنار گذاشتن هر دو بود و برگشتن به پیچش. یه معماری ۲۰۲۳ به‌جای توجه، پیچش‌های خیلی بلند، به اندازه‌ی کل دنباله، گذاشت که وزن‌هاشون با یه شبکه‌ی کوچیک ساخته می‌شن، و چند دروازه‌ی ضربی بینشون، تا مدل بتونه بسته به ورودی، اطلاعات رو رد یا نگه داره.

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

ضعف یادآوری

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

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

ترکیبی

راه‌حلی که خیلی‌ها بهش رسیدن، ساده بود؛ هر دو رو با هم داشته باشیم. بیشتر لایه‌ها جایگزین، که ارزون‌ان و حافظه‌ی ثابت دارن، و چند لایه توجه کامل، که هر وقت لازم شد، مستقیم به گذشته نگاه کنن:

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

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

پخش برای متن

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

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

فکر بیشتر برای سوال سخت

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

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

حافظه‌ی بیرونی

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

یه پژوهش ۲۰۲۵ یه قدم جلوتر رفت و یه حافظه‌ی عصبی، یعنی یه شبکه‌ی کوچیک، کنار توجه گذاشت که موقع اجرا یاد می‌گیره. هر چی یه تکه غافلگیرکننده‌تر باشه، بیشتر توی این حافظه نوشته می‌شه، و چیزهای قدیمی کم‌کم فراموش می‌شن. توجه برای گذشته‌ی نزدیک، و این حافظه برای گذشته‌ی دور. این هم یه جور ترکیبیه؛ دفتر برای صفحه‌های اخیر، و یه کارت هوشمند برای بقیه.

سنجش منصفانه

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

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

کدوم برای چی

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

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

از کجا اومد

شبکه‌های بازگشتی از دهه‌ی ۱۹۸۰ بودن و LSTM از ۱۹۹۷. ۲۰۱۷ ترنسفورمر جاشون رو گرفت. ۲۰۲۰ توجه خطی نشون داد ترنسفورمر می‌تونه بازگشتی باشه، و همون سال‌ها کلی روش کارآمد اومد. ۲۰۲۱ مدل‌های فضای حالت ساختاریافته روی دنباله‌های خیلی بلند درخشیدن.

۲۰۲۳ سال جایگزین‌ها بود؛ فضای حالت انتخابی، بازگشتی‌های تازه با چند میلیارد پارامتر، پیچش‌های بلند، و هم‌زمان پژوهش‌هایی که ضعف یادآوری رو نشون دادن. ۲۰۲۴ دوگانگی فضای حالت و توجه، LSTM گسترش‌یافته، و اولین مدل‌های ترکیبی بزرگ اومدن، و ۲۰۲۵ مدل‌های زبانی پخش. تا امروز، ترنسفورمر هنوز پایه‌ی بیشتر مدل‌های بزرگه، ولی سهم ترکیبی‌ها داره بیشتر می‌شه.

اشتباه‌های رایج

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

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

تمرین

این چهار تا رو اول خودتون حساب کنید. یک، مدلی با ۲۴ لایه، ۴ سر کلید و مقدار، هر سر ۱۲۸ عدد و ۲ بایت؛ کش هر تکه چقدره؟ دو، همون برای ۵۰ هزار تکه؟ سه، یه مدل ترکیبی ۳۲ لایه‌ای که از هر ۴ لایه یکی توجه داره؛ کشش نسبت به ترنسفورمر کامل چند برابر کوچیک‌تره؟ چهار، متن ۱۰ برابر بلندتر بشه، حالت یه مدل فضای حالت چند برابر می‌شه؟

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

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

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

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

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

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

۱۵ پرسش

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

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

درس بعد