برت (مدل زبانی) کیست؟ توضیح بده.
بازنمایی‌های رمزگذار دوسویه از ترنسفورمر یک مدل زبانی است که در اکتبر ۲۰۱۸ توسط پژوهشگران Google معرفی شد. این مدل برای نمایش متن به‌صورت یک توالی از بردارها از یادگیری خودنظارتی استفاده می‌کند. و در این روش از معماری ترنسفورمر فقط رمزگذار استفاده می‌کند. بهره گیری به عنوان نمونه‌ای اولیه از یک مدل زبانی بزرگ، و همچنین بهبود چشمگیر عملکرد آن نسبت به مدل‌های دیگر آنرا دارای اهمیت کرده است. ، برت به‌عنوان یک خط‌مبنای فراگیر در آزمایش‌های پردازش زبان‌های طبیعی مطرح است.برت با استفاده از دو تکنیک 1. پیش‌بینی توکن پوشیده' و 2. پیش‌بینی جمله بعدی آموزش داده می‌شود. مشابه ال‌مو و جی‌پی‌تی ۲، برت در طول فرایند آموزش و در بطن خود، نمایش‌های درونی و وابسته به متن را از روی توکن‌ها فرا می‌گیرد. این مدل در بسیاری از وظایف پردازش زبان طبیعی، مانند تشخیص و رفع ابهام هم‌مرجع' و رفع ابهام چندمعنایی'، کاربرد پیدا کرده‌است. این مدل گامی تکاملی نسبت به ال‌مو محسوب می‌شود و به پیدایش حوزه‌ای موسوم به «برتولوژی»' انجامید که می‌کوشد فرابگیرد برت دقیقاً چه چیزهایی را یاد گرفته است.برت در ابتدا برای زبان انگلیسی و در دو اندازه مدل، یعنی برت پایه (BERTBASE) با ۱۱۰ میلیون پارامتر و برت بزرگ (BERTLARGE) با ۳۴۰ میلیون پارامتر پیاده‌سازی شد. هر دوی آن‌ها بر پایه پیکره کتاب تورنتو (با ۸۰۰ میلیون واژه) و ویکی‌پدیای انگلیسی (با ۲٬۵۰۰ میلیون واژه) آموزش دیده‌اند. وزن‌های آموزش‌داده‌شده نیز در گیت‌هاب منتشر شدند. در ۱۱ مارس ۲۰۲۰، ۲۴ مدل کوچک‌تر نیز منتشر شدند که مدل BERTTINY با ۴ میلیون پارامتر کوچک‌ترین آن‌ها بود.معماری. برت یک معماری «ترنسفورمر فقط رمزگذار» است. در دید کلی، برت از چهار ماژول تشکیل شده‌است:گرچه سر وظیفه برای پیش‌آموزش' لازم است، اما غالباً در وظایف به اصطلاح «پایین‌دستی»' مانند پرسش و پاسخ یا عقیده کاوی به کار نمی‌آید. در این کاربردها، سر وظیفه حذف می‌شود و یک ماژولِ جدید که برای آن وظیفه مناسب است اضافه شده و سپس تنظیم‌‌دقیق بر روی مدل انجام می‌شود. به این ترتیب، بردارِ نمایش پنهان مدل به طور مستقیم وارد ماژول جدید شده و یک یادگیری انتقالی با کاراییِ نمونه‌ای بالا به دست می‌آید.. امروزه با دیتاست‌های به نسبت کوچک روی وظایف دلخواه پردازش زبان‌های طبیعی هم می‌توان به نتایج خوب با دقت‌های بالایی رسید و به صورت محاسباتی هم هزینه کمتری دارند چراکه قبلا برت روی داده‌های زیادی آموزش داده شده است.دگرنمایی واژه.این بخش، دگرنمایی واژه به‌کاررفته در BERTBASE را توصیف می‌کند. مدل BERTLARGE، مشابه همین است اما اندازه بزرگ‌تری دارد.ماژول توکن‌ساز برت، وُردپیس است که یک راهکار زیرواژگانی همچون کدگذاری جفت بایت محسوب می‌شود. اندازه واژگان آن ۳۰٬۰۰۰ است و هر توکنی که در واژگان آن وجود نداشته باشد، با توکن codice_1 («ناشناس») جایگزین می‌شود. لایه اول، لایه دگرنمایی واژه است که از سه بخش تشکیل شده‌است: دگرنمایی نوع توکن، دگرنمایی جایگاه (موقعیت) و دگرنمایی نوع قطعه متن.این سه بردار دگرنمایی با هم جمع می‌شوند تا نمایش اولیه توکن بورت تابعی از این سه دسته اطلاعات شکل بگیرد. پس از مرحله دگرنمایی، نمایش برداری با استفاده از عملیات LayerNorm[] نرمال‌سازی می‌شود و یک بردار ۷۶۸-بعدی برای هر توکن ورودی بدست می‌آید. سپس، بردارهای نمایش از ۱۲ بلوک رمزگذارِ ترنسفورمر عبور می‌کنند و در انتها، با یک لایه تبدیل خطی ساده به فضای واژگانی ۳۰٬۰۰۰-بعدی بازگشایی می‌شوند.خانواده ساختار.پشته رمزگذار برت دو پارامتر آزاد دارد: formula_1 (تعداد لایه‌ها) و formula_2 (اندازه پنهان). همیشه تعداد سرهای توجه خود برابر formula_3 است و اندازه لایه میانیِ شبکه پیش‌خور یا فیلتر همواره formula_4 در نظر گرفته می‌شود. با تغییر این دو عدد، می‌توان کل خانواده مدل‌های برت را به دست آورد.برای برت:نمایش پشته رمزگذار را به‌شکل L/H می‌نویسند. به‌عنوان نمونه، BERTBASE به صورت 12L/768H نوشته می‌شود، BERTLARGE به‌شکل 24L/1024H، و BERTTINY نیز با 2L/128H نشان داده می‌شود.آموزش.پیش‌آموزش.پیش‌آموزش برت به‌صورت هم‌زمان روی دو وظیفه انجام شده است.مدل‌سازی زبانیِ پوشیده. در مدل‌سازی زبانیِ پوشیده، ۱۵٪ از توکن‌ها به‌صورت تصادفی برای وظیفه پیش‌بینی-توکن-پوشیده انتخاب می‌شدند و هدف آموزش این بود که توکن پوشیده‌شده را بر اساس زمینه متن اطراف آن پیش‌بینی کند. با جزئیات بیشتر می توان این طور بیان کرد:دلیل این که همه توکن‌های انتخابی پوشیده نمی‌شوند، جلوگیری از مشکل جابه‌جایی توزیع' است. این مشکل زمانی پدید می‌آید که توزیع داده‌های ورودی در مرحله آموزش به‌طور چشمگیری با توزیع داده‌ها در مرحله استنتاج' متفاوت باشد. یک مدل برت آموزش‌دیده را می‌توان برای نمایش واژگان (مشابه Word2Vec) استفاده کرد، بدین ترتیب این مدل به جای فعالیت بر روی یک توکن codice_3 شده، می‌تواند بر روی کل جمله اعمال می‌شود.برای نمونه، جمله «سگ من بامزه است» در نظر بگیرید. ابتدا به توکن‌های «سگ1 من2 بامزه3 است4» تقسیم می‌شود. سپس به‌طور تصادفی یکی از توکن‌های جمله انتخاب می‌گردد. فرض کنید توکن سوم «بامزه3» برگزیده شود. در مرحله بعد سه احتمال وجود دارد:پس از پردازش متن ورودی، بردار خروجیِ چهارم مدل به لایه رمزگشای آن ارسال می‌شود که یک توزیع احتمالی را در فضای واژگان ۳۰٬۰۰۰-بعدی‌اش خروجی می‌دهد.پیش‌بینی جمله بعدی.با داشتن دو قطعه متن قبل و بعد، مدل پیش‌بینی می‌کند که آیا این دو قطعه در مجموعه داده به‌صورت پشت‌سرهم ظاهر شده‌اند یا نه و در نتیجه یکی از برچسب‌های codice_6 یا codice_7 را خروجی می‌دهد. قطعه اول با توکن ویژه codice_8 (مخفف "classify") آغاز می‌شود و این دو قطعه با توکن ویژه codice_2 (مخفف "separate") از هم جدا می‌شوند. پس از پردازش این دو قطعه، بردار خروجیِ مرتبه ۱ (برداری که مربوط به codice_8 است) به یک شبکه عصبی جداگانه داده می‌شود تا طبقه‌بندی دودویی به‌صورت codice_6 یا codice_7 انجام شود.برای مثال، اگر ورودی به‌صورت «codice_8 سگ من بامزه است codice_2 او بازی کردن را دوست دارد» باشد، مدل باید توکن codice_6 را خروجی دهد.اگر ورودی به‌صورت «codice_8 سگ من بامزه است codice_2 آهنربا چگونه کار می‌کند» باشد، مدل باید توکن codice_7 را خروجی دهد.تنظیم‌‌دقیق.برت به عنوان مدلی پیش‌آموزش‌دیده، برای کاربری‌های گوناگون در پردازش زبان طبیعی طراحی شده است. بدین صورت که پس از پیش‌آموزش، می‌توان مدل برت را با منابع کمتر و روی مجموعه‌داده‌های کوچک‌تر تنظیم‌‌دقیق کرد تا عملکردش را روی وظایف خاصی مانند استنباط زبان طبیعی، دسته‌بندی متن، و همچنین وظایف تولیدیِ مبتنی بر توالی به توالی مانند پرسش و پاسخ یا تولید پاسخ مکالمه‌ای بهینه کند.مقاله اولیه برت نتایجی را منتشر کرد که نشان می‌داد با مقدار کمی از تنظیم‌‌دقیق (برای مدل BERTLARGE، به میزان ۱ ساعت بر روی ۱ تی‌پی‌یو ابری) به آن این امکان را می‌دهد که در شماری از وظایف درک زبان طبیعی جزو بهترین‌ها باشد:در مقاله اصلی، همه پارامترهای برت تنظیم‌‌دقیق می‌شدند و توصیه شده بود که برای کاربردهای پایین‌دستی که متن را طبقه‌بندی می‌کنند، خروجی توکن در ورودیِ codice_8 وارد یک لایه خطی-سافت‌مکس شود تا برچسب‌ها تولید شوند.در کد منبع اولیه، لایه خطی نهایی «pooler layer» نام‌گذاری شده بود که شباهت زیادی با global pooling در بینایی ماشین داشت. هرچند عملاً همه توکن‌های خروجی بجز توکن متناظر با codice_8 را کنار می‌گذاشت.هزینه.برت بر روی پیکره کتاب تورنتو (با ۸۰۰ میلیون واژه) و نسخه‌ای پالایش‌شده از ویکی‌پدیای انگلیسی (با ۲٬۵۰۰ میلیون واژه) بدون فهرست‌ها، جدول‌ها و سرفصل‌ها آموزش داده شد.آموزش BERTBASE بر روی ۴ تی‌پی‌یو ابری (در مجموع ۱۶ تراشه تی‌پی‌یو) به مدت ۴ روز طول کشید و هزینه آن حدود ۵۰۰ دلار تخمین زده می‌شود. آموزش BERTLARGE بر روی ۱۶ تی‌پی‌یو ابری (در مجموع ۶۴ تراشه تی‌پی‌یو) نیز ۴ روز زمان برد.تفسیر.مدل‌های زبانی مانند ال‌مو، جی‌پی‌تی ۲، و برت، به پیدایش حوزه‌ای به نام «برتولوژی» منجر شدند که تلاش می‌کند دریابد این مدل‌ها چه چیزهایی را می‌آموزند. عملکرد آن‌ها در این وظایف درک زبان طبیعی هنوز به‌خوبی درک نشده‌است. در سال‌های ۲۰۱۸ و ۲۰۱۹، چندین پژوهش تلاش کردند تا رابطه بین ورودی‌های انتخاب‌شده و خروجی‌های برت را بررسی کنند، و بردارهای درونی (مدل فضای برداری) را با استفاده از کاوشگر طبقه‌بندی‌کننده تحلیل کنند، و بررسی کنند که وزن‌های توجه چه رابطه‌ای را بازنمایی می‌کنند.عملکرد بالای مدل برت ممکن است به این دلیل باشد که در فرایند آموزش به‌صورت دوسویه آموزش داده می‌شود. به این معنی که برت، بر اساس معماری مدل ترنسفورمر، مکانیزم توجه خود را به‌گونه‌ای اعمال می‌کند که هم از متن سمت چپ و هم از متن سمت راست در طول آموزش اطلاعات بیاموزد و در نتیجه درک عمیقی از بافت متن به دست آورد. برای نمونه، واژه «fine» در جمله‌های انگلیسی «I feel fine today» و «She has fine blond hair» دو معنای متفاوت دارد که وابسته به بافت هستند. برت، واژگان پیرامون واژه «fine» را هم از چپ و هم از راست در نظر می‌گیرد.البته این کار هزینه‌هایی هم دارد: به دلیل معماری فقط رمزگذار که فاقد بخش رمزگشا است، برت نمی‌تواند مورد پرسش قرار بگیرد و قادر به تولید متن نیست. البته بطور کلی مدل‌های دوسویه بدون داشتن اطلاعات از سمت راست چندان مؤثر عمل نمی‌کنند؛ بنابراین به‌سختی می‌توان از آن‌ها به‌عنوان مدل‌های قابل پرسش استفاده کرد. برای نمونه، اگر بخواهید از برت برای ادامه جمله «امروز، رفته بودم» استفاده کنید، ممکن است آن را به «امروز، رفته بودم codice_3 codice_3 codice_3 ... codice_3» تبدیل کنید که تعداد codice_3ها برابر طول جمله مورد نظر برای ادامه است. اما این کار باعث تغییر توزیع داده می‌شود؛ چون در مرحله آموزش، برت هرگز جملاتی را ندیده است که در آن این تعداد توکن پوشیده (codice_3) وجود دارد. در نتیجه عملکرد آن ضعیف می‌شود. روش‌های پیچیده‌تری برای تولید متن با برت وجود دارند اما هزینه محاسباتی بالایی دارند.تاریخچه مدل.پیش از برت تاریخچه اینگونه مدل‌ها به روش‌های نیمه‌نظارتی یادگیری ماشین و مدل‌هایی دیگر نظیر ELMo و ULMFit برمی‌گردد. برخلاف مدل‌های پیشین برت یک مدل دوطرفه (Bidirectional) بدون نظارت (Unsupervised) است که روی متن خام آموزش داده شده است.برخی از مدل‌های دیگر نظیر Word2vec یا GloVe همگی به صورت مستقل از زمینه (Context free) هستند که برای هر کلمه مستقل از محتوا می‌توانند یک نمایش (Embedding) ایجاد نمایند ولی برخلاف آنها برت با تمرکز روی زمینه (Context) می‌تواند بر اساس محتوا برای یک کلمه نمایش‌های مختلفی داشته باشد و این ما را یک قدم به فهمیدن مفهوم یک کلمه در جمله فارز از معنی کلمه نزدیک‌تر می‌کند. به عنوان نمونه اگر دو جمله به صورت «He is running a comapny» و «He is running a marathon» داشته باشیم که در اولی «running» به معنای «اداره کردن» و در دومی «running» به معنای «دویدن» است برای این دو کلمه می‌تواند بر اساس محتوای جمله تفاوت قائل شود و آنها را به یک صورت نمی‌بیند ولی مدل‌های پیشین که به صورت مستقل از محتوا عمل می‌کنند این مشکل را نمی‌توانند حل نمایند.در تاریخ ۲۵ اکتبر ۲۰۱۹ شرکت گوگل سرچ (Google Search) اعلام کرد که آنها شروع به استفاده از مدل زبانی برت برای جستجوهای انگلیسی کاربران آمریکایی شده‌اند. همچنین در تاریخ ۹ دسامبر ۲۰۱۹ برت بر روی بیش از ۷۰ زبان زنده دنیا پیاده‌سازی شده‌بود و در اکتبر ۲۰۲۰ هر جستجوی انگلیسی با استفاده از برت انجام می‌شد و بر روی آن برت پردازشی برای تشخیص مفهوم انجام می‌داد.گونه‌ها.مدل‌های برت تأثیرگذار بودند و الهام‌بخش گونه‌های گوناگونی شدند.RoBERTa (سال ۲۰۱۹) یک بهبود در زمینه مهندسی محسوب می‌شود. این مدل، معماری برت را دست‌نخورده حفظ می‌کند (با اندکی افزایش اندازه، یعنی ۳۵۵ میلیون پارامتر)، اما آموزش آن را بهبود می‌بخشد؛ بطوری که ابرپارامترهای کلیدی را تغییر می‌دهد، وظیفه «پیش‌بینی جمله بعدی» را حذف می‌کند و از اندازه‌های خیلی بزرگ‌تر دسته کوچک استفاده می‌کند.DistilBERT (سال ۲۰۱۹) با روش تقطیر، مدل BERTBASE را به مدلی با تنها ۶۰٪ از تعداد پارامترهای آن (۶۶ میلیون) تبدیل می‌کند، در حالی که ۹۵٪ از امتیازهای معیار آن حفظ می‌شود. به‌شکل مشابه، TinyBERT (۲۰۱۹) یک مدل تقطیرشده است که تنها ۲۸٪ از پارامترهای مدل اصلی را داراست.ALBERT (سال ۲۰۱۹) از اشتراک پارامترها بین لایه‌ها استفاده کرد و آزمایشی را ترتیب داد که در آن اندازه لایه پنهان و اندازه خروجی لایه دگرنمایی واژه را به‌عنوان دو ابرپارامتر مستقل تغییر داد. همچنین بجای وظیفه «پیش‌بینی جمله بعدی» از وظیفه «پیش‌بینی ترتیب جمله‌ها» استفاده کردند که در آن مدل باید ترتیب درست دو قطعه متنی پیاپی را از ترتیب وارون‌شده آن‌ها تشخیص دهد.ELECTRA (سال ۲۰۲۰) ایده شبکه‌های مولد تخاصمی را به وظیفه MLM اعمال کرد. بجای پوشاندن توکن‌ها، یک مدل زبانی کوچک دیگر، جایگزین‌های ممکن و معقولی برای توکن‌های اصلی تولید می‌کند و شبکه بزرگ‌تر تشخیص می‌دهد کدام توکن‌ها جایگزین شده‌اند. مدل کوچک سعی می‌کند مدل بزرگ را فریب دهد.DeBERTa.DeBERTa (سال ۲۰۲۰) یک گونه معماری مهم با مکانیزم توجه «تفکیک‌شده»' است. ایده کلیدی آن این است که نمایش موقعیت و نمایش توکن را در سراسر مکانیزم توجه بصورت جداگانه نگه می‌دارد. برخلاف برت که رمزگذاری موقعیت (formula_5) و توکن (formula_6) را با هم جمع می‌کند تا یک بردار ورودی تشکیل دهد (formula_7)، در DeBERTa این دو حالت به‌صورت زوج مرتب نگهداری می‌شوند: formula_8. سپس در هر لایه توجه خود، DeBERTa به‌جای تنها یک ماتریس توجه در BERT، سه ماتریس توجه متمایز محاسبه می‌کند.'سه ماتریس توجه ذکر شده به‌صورت درایه-به-درایه با هم جمع می‌شوند، سپس وارد یک لایه softmax شده و در انتها در یک ماتریس projection ضرب می‌گردند.رمزگذاری موقعیت مطلق در لایه نهاییِ توجه، خود بعنوان ورودی اضافی در نظر گرفته می‌شود.مقاله برت.مقاله‌ای که مدل زبانی برت را برای اولین بار معرفی نمود در سال ۲۰۱۹ جایزه بهترین بلندترین مقاله سال (Best Long Paper Award) را در قسمت آمریکای شمالی کنفرانس NAACL را برنده شد و به عنوان بهترین مقاله در این زمینه در سال ۲۰۱۹ شناخته شد.