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

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

هدف آموزش: کلمه‌ی بعد یا کلمه‌ی پوشیده

جواب کوتاه

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

یعنی چی

مدل موقع یاد گرفتن یه بازی می‌کنه؛ هر خانواده بازی خودش رو داره.

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

سه بازی

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

جای خالی، دقیق‌تر

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

جریمه‌ی هر حدس

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

چقدر یاد می‌گیره

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

بازی چهارم: کلمه‌ی عوض‌شده

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

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

بی برچسب

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

منحنی جریمه

جریمه‌ی هر حدس رو بالاتر با سه عدد دیدیم. اگه همه‌ی احتمال‌ها رو کنار هم بذاریم، یه منحنی درمیاد.

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

import math

p = [0.9, 0.5, 0.1]   # chance given to the right word
loss = [-math.log(x) for x in p]
print([round(x, 2) for x in loss])
# [0.11, 0.69, 2.3]
print(round(sum(loss) / len(loss), 2))
# 1.03

همین یه عدد، ۱٫۰۳، چیزیه که آموزش سعی می‌کنه کمش کنه. هر قدم آموزش وزن‌ها رو یه کم طوری جابه‌جا می‌کنه که این میانگین پایین‌تر بیاد.

چند نکته

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

ولی ده درس از یه جمله، یعنی ده حدس. این‌ها پشت سر هم حساب می‌شن یا با هم؟ درس بعد: آموزش موازی: برتری بزرگ بر شبکه‌ی بازگشتی.

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

  • فقط رمزگشا: کلمه‌ی بعد.
  • فقط رمزگذار: جای خالی، حدود ۱۵٪.
  • رمزگذار و رمزگشا: تیکه‌ی گم‌شده.
  • جریمه: احتمال کم به جواب درست.
  • بی برچسب انسانی.

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

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

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

۱۵ پرسش

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

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

درس بعد