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