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