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

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

فقط رمزگذار: مدل‌هایی که می‌فهمند

جواب کوتاه

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

یعنی چی

فقط نیمه‌ی فهمیدن رو نگه می‌داریم؛ یه خواننده‌ی دقیق که نمی‌نویسه.

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

از دو طرف

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

جای خالی

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

نشونه‌ی خلاصه

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

یه بار یاد بگیر

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

مقایسه‌ی جمله‌ها

یکی از کارهای مهم این مدل‌ها پیدا کردن جمله‌های هم‌معنیه. ولی یه راه ساده‌ش، خیلی کند از آب دراومد.

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

برای چه کاری

این خانواده هر جا که باید متن رو فهمید، به کار میاد: دسته‌بندی نظرها و پیام‌ها، پیدا کردن جواب یه سوال توی یه متن، یا جستجوی معنایی. برای جستجو، یه پژوهش ۲۰۱۹ از همین مدل‌ها برای هر جمله یه بردار ساخت، تا جمله‌های هم‌معنی رو بشه سریع پیدا کرد؛ همون ایده‌ی امبدینگ. ولی برای نوشتن متن بلند، مثل جواب دادن به یه سوال باز، ساخته نشده؛ اون کار خانواده‌ی بعدیه.

همون مدل، بهتر آموزش‌دیده

یه سال بعد از اون مدل معروف ۲۰۱۸، یه پژوهش دیگه پرسید: شاید مدل خوب بوده، ولی کم آموزش دیده؟

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

چند نکته

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

حالا برعکسش: اگه فقط نیمه‌ی نوشتن رو نگه داریم چی؟ درس بعد: فقط رمزگشا: مدل‌هایی که می‌نویسن.

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

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

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

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

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

۱۵ پرسش

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

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

درس بعد