برت (مدل زبانی)

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

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

برت در ابتدا برای زبان انگلیسی و در دو اندازه مدل، یعنی برت پایه (BERTBASE) با ۱۱۰ میلیون پارامتر و برت بزرگ (BERTLARGE) با ۳۴۰ میلیون پارامتر پیاده‌سازی شد. هر دوی آن‌ها بر پایه پیکره کتاب تورنتو  name="bookcorpus" (با ۸۰۰ میلیون واژه) و ویکی‌پدیای انگلیسی (با ۲٬۵۰۰ میلیون واژه) آموزش دیده‌اند. وزن‌های آموزش‌داده‌شده نیز در گیت‌هاب منتشر شدند. در ۱۱ مارس ۲۰۲۰، ۲۴ مدل کوچک‌تر نیز منتشر شدند که مدل BERTTINY با ۴ میلیون پارامتر کوچک‌ترین آن‌ها بود.

 معماری 

 توکن‌ساز: این ماژول یک متن انگلیسی را به یک توالی از اعداد صحیح (توکن‌ها) تبدیل می‌کند.
 دگرنمایی: این ماژول، توکن‌های گسسته را به فضایی با ابعاد کمتر (با بردارهای حقیقی) می‌نگارد و نشان‌دهنده مرحله تبدیل انواع توکن‌های گسسته به یک فضای اقلیدسی با بعد کمتر است.
 رمزگذار: پشته‌ای از بلوک‌های ترنسفورمر دارای خود-آگاهی است اما بدون پوشانندگی علّی.
 سر وظیفه: این ماژول، بردارهای نمایشِ نهایی را دوباره به توکن‌های یک داغ نگاشت می‌کند و خروجی آن یک پیش‌بینی از توزیع احتمال بر روی انواع توکن‌ها است. از این منظر می‌توان آن را یک رمزگشا یا «لایه واگشایی» در نظر گرفت.

گرچه سرِ وظیفه برای پیش‌آموزش لازم است، اما غالباً در وظایف به اصطلاح «پایین‌دستی» مانند پرسش و پاسخ یا عقیده کاوی به کار نمی‌آید. در این کاربردها، سر وظیفه حذف می‌شود و یک ماژولِ جدید که برای آن وظیفه مناسب است اضافه شده و سپس تنظیم‌‌دقیق بر روی مدل انجام می‌شود. به این ترتیب، بردارِ نمایش پنهانِ مدل به طور مستقیم وارد ماژول جدید شده و یک یادگیری انتقالی با کاراییِ نمونه‌ای بالا به دست می‌آید.. امروزه با مجموعه داده‌های به نسبت کوچک روی وظایف دلخواه پردازش زبان‌های طبیعی هم می‌توان به نتایج خوب با دقت‌های بالایی رسید و به صورت محاسباتی هم هزینه کمتری دارند چرا که پیش از این، برت بر روی داده‌های زیادی آموزش داده دیده است.
 دگرنمایی واژه  
این بخش، دگرنمایی واژه به کار رفته در برت پایه را توصیف می‌کند. مدل برت بزرگ مشابه همین است اما اندازه بزرگ‌تری دارد.

ماژول توکن‌ساز برت، وُردپیس است که یک راهکار زیرواژگانی همچون کدگذاری جفت بایت محسوب می‌شود. اندازه واژگان آن ۳۰٬۰۰۰ است و هر توکنی که در واژگان آن وجود نداشته باشد، با توکن [UNK] («ناشناس») جایگزین می‌شود.

 نوع توکن: این ماژول یک لایه دگرنمایی استاندارد است که بر اساس نوع توکن، یک بردار یک داغ را به یک بردار چگال (فشرده) تبدیل می‌کند.
 جایگاه: دگرنمایی‌های جایگاه بر اساس جایگاه توکن در توالی عمل می‌کنند. برت از دگرنمایی جایگاه مطلق استفاده می‌کند. در این روش هر جایگاه در توالی به یک بردار حقیقی نگاشت می‌شود. هر بعد از این بردار یک موج سینوسی است که جایگاه توکن در توالی را به عنوان ورودی دریافت می‌کند.

 نوع قطعه : با استفاده از یک مخزن واژگان صرفاً ۰ یا ۱، این لایه یک بردار چگال تولید می‌کند و عملاً نمایشی از تعلق توکن به بخش اول یا دوم متن ورودی است. به‌عبارت دیگر، توکن‌هایی که پس از توکن ویژه [SEP] قرار گرفته‌اند همگی از نوع ۱ هستند و توکن‌های پیش از آن از نوع ۰.

این سه بردار دگرنمایی با هم جمع می‌شوند تا نمایش اولیه توکن بورت تابعی از این سه دسته اطلاعات شکل بگیرد. پس از مرحله دگرنمایی، نمایش برداری با استفاده از عملیات نرمال‌سازی لایه‌ای نرمال‌سازی می‌شود و یک بردار ۷۶۸-بعدی برای هر توکن ورودی بدست می‌آید. سپس، بردارهای نمایش از ۱۲ بلوک رمزگذارِ ترنسفورمر عبور می‌کنند و در انتها، با یک لایه تبدیل خطی ساده به فضای واژگانی ۳۰٬۰۰۰-بعدی بازگشایی می‌شوند.

 خانواده ساختار  
پشته رمزگذار برت دو پارامتر آزاد دارد:  (تعداد لایه‌ها) و  (اندازه پنهان). همیشه تعداد سرهای توجه خود برابر  است و اندازه لایه میانیِ شبکه پیش‌خور یا فیلتر همواره  در نظر گرفته می‌شود. با تغییر این دو عدد، می‌توان کل خانواده مدل‌های برت را به دست آورد.

برای برت:

 «اندازه پیش‌خور» و «اندازه فیلتر» هم‌معنا هستند و هر دو اشاره به شمار ابعاد در لایه میانیِ شبکه پیش‌خور دارند.
 «اندازه پنهان» و «اندازه دگرنمایی» نیز هم‌معنا هستند و هر دو اشاره به تعداد اعداد حقیقی مورد استفاده برای نمایش یک توکن دارند.

نمایش پشته رمزگذار را به‌شکل L/H می‌نویسند. به عنوان نمونه، برت پایه به صورت 12L/768H نوشته می‌شود، برت بزرگ به‌شکل 24L/1024H، و برت کوچک نیز با 2L/128H نشان داده می‌شود.

 آموزش  

 پیش‌آموزش  
پیش‌آموزش برت به‌صورت هم‌زمان روی دو وظیفه انجام شده است.

 مدل‌سازی زبانیِ پوشیده  

 با احتمال ۸۰٪ توکن انتخابی با [MASK] جایگزین می‌شود.
 با احتمال ۱۰٪ توکن انتخابی با یک واژه تصادفی جایگزین می‌شود.
 با احتمال ۱۰٪ هیچ تغییری اعمال نمی‌شود.

دلیل این که همه توکن‌های انتخابی پوشیده نمی‌شوند، جلوگیری از مشکل جابه‌جایی توزیع است. این مشکل زمانی پدید می‌آید که توزیع داده‌های ورودی در مرحله آموزش به‌طور چشمگیری با توزیع داده‌ها در مرحله استنتاج متفاوت باشد. یک مدل برت آموزش‌دیده را می‌توان برای نمایش واژگان (مشابه Word2Vec) استفاده کرد، بدین ترتیب این مدل به جای فعالیت بر روی یک توکن [MASK] شده، می‌تواند بر روی کل جمله اعمال می‌شود.
برای نمونه، جمله «سگ من بامزه است» در نظر بگیرید. ابتدا به توکن‌های «سگ1 من2 بامزه3 است4» تقسیم می‌شود. سپس به‌طور تصادفی یکی از توکن‌های جمله انتخاب می‌گردد. فرض کنید توکن سوم «بامزه3» برگزیده شود. در مرحله بعد سه احتمال وجود دارد:

 با احتمال ۸۰٪ توکن انتخابی پوشیده می‌شود و نتیجه «سگ1 من2 [MASK] است4» خواهد بود.
 با احتمال ۱۰٪ توکن انتخابی با یک توکن تصادفی مثل «خوشحال» جایگزین می‌شود، یعنی «سگ1 من2 خوشحال3 است4».
 با احتمال ۱۰٪ تغییری ایجاد نمی‌شود و جمله به همان صورت «سگ1 من2 بامزه3 است4» باقی می‌ماند.

پس از پردازش متن ورودی، بردار خروجیِ چهارم مدل به لایه رمزگشای آن ارسال می‌شود که یک توزیع احتمالی را در فضای واژگان ۳۰٬۰۰۰-بعدی‌اش خروجی می‌دهد.

 پیش‌بینی جمله بعدی  
با داشتن دو قطعه متن قبل و بعد، مدل پیش‌بینی می‌کند که آیا این دو قطعه در مجموعه داده به‌صورت پشت‌سرهم ظاهر شده‌اند یا نه و در نتیجه یکی از برچسب‌های [IsNext] یا [NotNext] را خروجی می‌دهد. قطعه اول با توکن ویژه [CLS] (مخفف "classify") آغاز می‌شود و این دو قطعه با توکن ویژه [SEP] (مخفف "separate") از هم جدا می‌شوند. پس از پردازش این دو قطعه، بردار خروجیِ مرتبه ۱ (برداری که مربوط به [CLS] است) به یک شبکه عصبی جداگانه داده می‌شود تا طبقه‌بندی دودویی به‌صورت [IsNext] یا [NotNext] انجام شود.

برای مثال، اگر ورودی به‌صورت «[CLS] سگ من بامزه است [SEP] او بازی کردن را دوست دارد» باشد، مدل باید توکن [IsNext] را خروجی دهد.

اگر ورودی به‌صورت «[CLS] سگ من بامزه است [SEP] آهنربا چگونه کار می‌کند» باشد، مدل باید توکن [NotNext] را خروجی دهد.

 تنظیم‌‌دقیق 

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

مقاله اولیه برت نتایجی را منتشر کرد که نشان می‌داد با مقدار کمی از تنظیم‌‌دقیق (برای مدل برت بزرگ، به میزان ۱ ساعت بر روی ۱ تی‌پی‌یو ابری) به آن این امکان را می‌دهد که در شماری از وظایف درک زبان طبیعی جزو بهترین‌ها باشد:

 مخزن داده GLUE (ارزیابی درک زبان عمومی) شامل ۹ وظیفه که مجموعه‌ای از دیتاست‌هایی است که در پردازش زبان‌های طبیعی به عنوان وظایف معروف به کار می‌روند.
 مخزن داده SQuAD (مجموعه داده سوال و پاسخ دانشگاه استنفورد) نسخه ۱٫۱ و ۲٫۰؛
 مخزن داده SWAG (موقعیت‌های با تولید جملات تهاجمی) که موقعیت‌هایی از پردازش زبان‌های طبیعی است که یک سازنده متخاصم آنها را درست کرده است.

در مقاله اصلی، همه پارامترهای برت تنظیم‌‌دقیق می‌شدند و توصیه شده بود که برای کاربردهای پایین‌دستی که متن را طبقه‌بندی می‌کنند، خروجی توکن در ورودیِ [CLS] وارد یک لایه خطی-سافت‌مکس شود تا برچسب‌ها تولید شوند.

در کد منبع اولیه، لایه خطی نهایی «pooler layer» نام‌گذاری شده بود که شباهت زیادی با global pooling در بینایی ماشین داشت. هرچند عملاً همه توکن‌های خروجی بجز توکن متناظر با [CLS] را کنار می‌گذاشت.

 هزینه  
برت بر روی پیکره کتاب تورنتو (با ۸۰۰ میلیون واژه) و نسخه‌ای پالایش‌شده از ویکی‌پدیای انگلیسی (با ۲٬۵۰۰ میلیون واژه) بدون فهرست‌ها، جدول‌ها و سرفصل‌ها آموزش داده شد.

آموزش برت پایه بر روی ۴ تی‌پی‌یو ابری (در مجموع ۱۶ تراشه تی‌پی‌یو) به مدت ۴ روز طول کشید و هزینه آن حدود ۵۰۰ دلار تخمین زده می‌شود. 

آموزش برت بزرگ بر روی ۱۶ تی‌پی‌یو ابری (در مجموع ۶۴ تراشه تی‌پی‌یو) نیز ۴ روز زمان برد.

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

عملکرد بالای مدل برت ممکن است به این دلیل باشد که در فرایند آموزش به‌صورت دوسویه آموزش داده می‌شود. به این معنی که  برت، بر اساس معماری مدل ترنسفورمر، مکانیزم توجه خود را به‌گونه‌ای اعمال می‌کند که هم از متن سمت چپ و هم از متن سمت راست در طول آموزش اطلاعات بیاموزد و در نتیجه درک عمیقی از بافت متن به دست آورد. برای نمونه، واژه «fine» در جمله‌های انگلیسی «I feel fine today» و «She has fine blond hair» دو معنای متفاوت دارد که وابسته به بافت هستند. برت، واژگان پیرامون واژه «fine» را هم از چپ و هم از راست در نظر می‌گیرد.

البته این کار هزینه‌هایی هم دارد: به دلیل معماری فقط رمزگذار که فاقد بخش رمزگشا است، برت نمی‌تواند مورد پرسش قرار بگیرد و قادر به تولید متن نیست. البته بطور کلی مدل‌های دوسویه بدون داشتن اطلاعات از سمت راست چندان مؤثر عمل نمی‌کنند؛ بنابراین به‌سختی می‌توان از آن‌ها به عنوان مدل‌های قابل پرسش استفاده کرد. برای نمونه، اگر بخواهید از برت برای ادامه جمله «امروز، رفته بودم» استفاده کنید، ممکن است آن را به «امروز، رفته بودم [MASK] [MASK] [MASK] ... [MASK]» تبدیل کنید که تعداد [MASK]ها برابر طول جمله مورد نظر برای ادامه است. اما این کار باعث تغییر توزیع داده می‌شود؛ چون در مرحله آموزش، برت هرگز جملاتی را ندیده است که در آن این تعداد توکن پوشیده ([MASK]) وجود دارد. در نتیجه عملکرد آن ضعیف می‌شود. روش‌های پیچیده‌تری برای تولید متن با برت وجود دارند اما هزینه محاسباتی بالایی دارند.

 تاریخچه مدل 

پیش از برت تاریخچه اینگونه مدل‌ها به روش‌های نیمه‌نظارتی یادگیری ماشین و مدل‌هایی دیگر نظیر ELMo و ULMFit برمی‌گردد. برخلاف مدل‌های پیشین برت یک مدل دوطرفه بدون نظارت است که روی متن خام آموزش داده شده است.

برخی از مدل‌های دیگر نظیر Word2vec یا GloVe همگی به صورت مستقل از زمینه هستند که برای هر کلمه مستقل از محتوا می‌توانند یک نمایش ایجاد نمایند ولی برخلاف آنها برت با تمرکز روی زمینه می‌تواند بر اساس محتوا برای یک کلمه نمایش‌های مختلفی داشته باشد و این ما را یک قدم به فهمیدن مفهوم یک کلمه در جمله فارز از معنی کلمه نزدیک‌تر می‌کند. به عنوان نمونه اگر دو جمله به صورت «He is running a comapny» و «He is running a marathon» داشته باشیم که در اولی «running» به معنای «اداره کردن» و در دومی «running» به معنای «دویدن» است برای این دو کلمه می‌تواند بر اساس محتوای جمله تفاوت قائل شود و آنها را به یک صورت نمی‌بیند ولی مدل‌های پیشین که به صورت مستقل از محتوا عمل می‌کنند این مشکل را نمی‌توانند حل نمایند.

در تاریخ ۲۵ اکتبر ۲۰۱۹ شرکت گوگل سرچ اعلام کرد که آنها شروع به استفاده از مدل زبانی برت برای جستجوهای انگلیسی کاربران آمریکایی شده‌اند. همچنین در تاریخ ۹ دسامبر ۲۰۱۹ برت بر روی بیش از ۷۰ زبان زنده دنیا پیاده‌سازی شده‌بود و در اکتبر ۲۰۲۰ هر جستجوی انگلیسی با استفاده از برت انجام می‌شد و بر روی آن برت پردازشی برای تشخیص مفهوم انجام می‌داد.

 گونه‌ها  
مدل‌های برت تأثیرگذار بودند و الهام‌بخش گونه‌های گوناگونی شدند.

RoBERTa (سال ۲۰۱۹) یک بهبود در زمینه مهندسی محسوب می‌شود. این مدل، معماری برت را دست‌نخورده حفظ می‌کند (با اندکی افزایش اندازه، یعنی ۳۵۵ میلیون پارامتر)، اما آموزش آن را بهبود می‌بخشد؛ بطوری که ابرپارامترهای کلیدی را تغییر می‌دهد، وظیفه «پیش‌بینی جمله بعدی» را حذف می‌کند و از اندازه‌های خیلی بزرگ‌تر دسته کوچک استفاده می‌کند.

DistilBERT (سال ۲۰۱۹) با روش تقطیر، مدل BERTBASE را به مدلی با تنها ۶۰٪ از تعداد پارامترهای آن (۶۶ میلیون) تبدیل می‌کند، در حالی که ۹۵٪ از امتیازهای معیار آن حفظ می‌شود. به‌شکل مشابه، TinyBERT (۲۰۱۹) یک مدل تقطیرشده است که تنها ۲۸٪ از پارامترهای مدل اصلی را داراست.

ALBERT (سال ۲۰۱۹) از اشتراک پارامترها بین لایه‌ها استفاده کرد و آزمایشی را ترتیب داد که در آن اندازه لایه پنهان و اندازه خروجی لایه دگرنمایی واژه را به عنوان دو ابرپارامتر مستقل تغییر داد. همچنین بجای وظیفه «پیش‌بینی جمله بعدی» از وظیفه «پیش‌بینی ترتیب جمله‌ها» استفاده کردند که در آن مدل باید ترتیب درست دو قطعه متنی پیاپی را از ترتیب وارون‌شده آن‌ها تشخیص دهد.

ELECTRA (سال ۲۰۲۰) ایده شبکه‌های مولد تخاصمی را به وظیفه MLM اعمال کرد. بجای پوشاندن توکن‌ها، یک مدل زبانی کوچک دیگر، جایگزین‌های ممکن و معقولی برای توکن‌های اصلی تولید می‌کند و شبکه بزرگ‌تر تشخیص می‌دهد کدام توکن‌ها جایگزین شده‌اند. مدل کوچک سعی می‌کند مدل بزرگ را فریب دهد.

 DeBERTa  
DeBERTa (سال ۲۰۲۰) یک گونه معماری مهم با مکانیزم توجه «تفکیک‌شده» است. ایده کلیدی آن این است که نمایش موقعیت و نمایش توکن را در سراسر مکانیزم توجه بصورت جداگانه نگه می‌دارد. برخلاف برت که رمزگذاری موقعیت () و توکن () را با هم جمع می‌کند تا یک بردار ورودی تشکیل دهد ()، در DeBERTa این دو حالت به‌صورت زوج مرتب نگهداری می‌شوند: . سپس در هر لایه توجه خود، DeBERTa به‌جای تنها یک ماتریس توجه در BERT، سه ماتریس توجه متمایز محاسبه می‌کند.
+  انواع توجه  Query type Key type مثال محتوا-به-محتوا  توکن توکن "اروپا"؛ "قاره", "اتحادیه"  محتوا-به-موقعیت توکن موقعیت [صفت]؛ +1, +2, +3  موقعیت-به-محتوا موقعیت توکن -1؛ "خیلی", "نه" 
سه ماتریس توجه ذکر شده به‌صورت درایه-به-درایه با هم جمع می‌شوند، سپس وارد یک لایه softmax شده و در انتها در یک ماتریس projection ضرب می‌گردند.

رمزگذاری موقعیت مطلق در لایه نهاییِ توجه، خود بعنوان ورودی اضافی در نظر گرفته می‌شود.
 مقاله برت 
مقاله‌ای که مدل زبانی برت را برای اولین بار معرفی نمود در سال ۲۰۱۹ جایزه بهترین بلندترین مقاله سال (Best Long Paper Award) را در قسمت آمریکای شمالی کنفرانس NAACL را برنده شد و به عنوان بهترین مقاله در این زمینه در سال ۲۰۱۹ شناخته شد.

 یادداشت‌ها 

 منابع 

 پیوند به بیرون 
 گیتهاب رسمی

رده:بازشناسی گفتار
رده:پردازش زبان‌های طبیعی
رده:زبان‌شناسی رایانشی
رده:شاخه‌های مطالعاتی محاسباتی
رده:مدل‌های زبانی بزرگ
رده:هوش مصنوعی
رده:نرم‌افزارهای گوگل

رده:نرم‌افزارهای ۲۰۱۸ (میلادی)