این ادامه سری وبلاگهای من در مدلهای زبان بزرگ است - در این مقاله قصد دارم در مورد مکانیسم توجه چند راس در معماری شبکه عصبی ترانسفورمر صحبت کنم و اجزای ریاضی ضروری را کدنویسی کنم. این مقاله به شرح زیر تنظیم شده است:
· در بخش 2، من در مورد عملکرد داخلی ترانسفورمر با تأکید دقیق بر توجه چند راس صحبت میکنم.
· در بخش 3، من قطعه کدهایی را خود ارائه کردهام که جزئیات محاسبه را در بلوک کد توجه چند راس نشان میدهد.
2. توجه چند راس: جزئیات شهود و محاسبه
مدل ترانسفورمر معرفی شده در مقاله "توجه تمام چیزی است که شما نیاز دارید" به طور چشمگیری عملکرد وظایف NLP را نسبت به مدلهای نسل قبلی مانند شبکههای عصبی بازگشتی و LSTMها بهبود بخشید. همانطور که در مقاله من در مورد تکامل مدلهای زبان توضیح داده شد، قدرت ترانسفورمرها در توانایی بیرون آمدن با اندازهای نهفته است ارتباط/مطابق تمام کلمات در یک جمله - مفهوم ماتریس توجه نشان میدهد که چگونه هر کلمه در یک جمله با بقیه کلمات آن جمله مرتبط است.
https://www.linkedin.com/feed/update/urn:li:activity:7260868695952949248/
شکل: مقاله گوگل در مورد توجه همه آن چیزی است که شما نیاز دارید
شکل: امتیازات توجه (ماتریس توجه)
ترانسفورمر کار میکند: نمای کلی.
ترانسفورمر به دو بخش مجزا تقسیم میشود: رمزگذار و رمزگشا. این مولفهها در ارتباط با یکدیگر کار میکنند و شباهتهای زیادی با یکدیگر دارند.
شکل: ترانسفورمر – رمزگذار – رمزگشا
شکل: بخش رمزگذار و رمزگشای ترانسفورمر
تعبیه ورودی و رمزگذاری موقعیتی:
برای شروع، از آنجایی که رایانهها کلمات را نمیفهمند و فقط اعداد/بردارها/ماتریسها را درک میکنند، بنابراین، قبل از انتقال متن به مدل برای پردازش، ابتدا باید کلمات را نشانهگذاری کرد. هنگامی که کلمات نشانه گذاری میشوند، این نشانهها/اعداد به یک لایه تعبیه منتقل میشوند که یک فضای تعبیه برداری قابل آموزش است - فضایی با ابعاد بالا که در آن هر نشانه به عنوان یک بردار نشان داده میشود و مکان منحصر به فردی را در آن فضا اشغال میکند. این بردارهای تعبیه شده یاد میگیرند که معنی و زمینه نشانههای فردی را در جمله رمزگذاری کنند.
با نگاه کردن به یک دنباله نمونه مانند زیر، هر کلمه به یک شناسه نشانه و هر شناسه نشانه به یک بردار نگاشت شده است. در کاغذ ترانسفورمر اصلی، اندازه برداری 512 بود - به عنوان مثال، می توان بردارهای تعبیه شده مربوط به کلماتی را که نزدیک به هم مرتبط هستند، همانطور که در شکل زیر در فضای تعبیه نشان داده شده است، با فاصله نزدیک مشاهده کرد.
شکل: هر کلمه به یک شناسه نشانه و هر نشانه به یک بردار نگاشت شده است
شکل: کلمات نزدیک به هم در فضای تعبیه فاصله نزدیکی دارند (توجه داشته باشید: در واقع ابعاد تعبیه بسیار بالاتر از بعد 3 است)
سپس رمزگذاری موقعیتی را اضافه میکنیم که از طریق آن اطلاعات ترتیب کلمات را حفظ میکنیم.
شکل: رمزگذاری موقعیتی به کلمه تعبیه اضافه شده است تا ارتباط ترتیب کلمات را حفظ کند.
توجه به خود:
بردار تعبیه و رمزگذاری موقعیتی جمع میشوند و مجموع به لایه خود توجه منتقل میشود. با افزودن رمزگذاری موقعیتی، اطلاعات ترتیب کلمه حفظ میشود و بنابراین ارتباط موقعیت کلمه در جمله حفظ میشود.
در توجه به خود، مدل رابطه بین نشانهها را در جمله ورودی تحلیل میکند. ما از 3 لایه شبکه عصبی مجزا استفاده میکنیم که هر کدام با مجموعهای از وزنهای مجزا، به ترتیب بردارهای پرس و جو، کلید و ارزش را تولید میکنند. وزنها پارامترهای قابل یادگیری در طول فرآیند یادگیری هستند. برای درک تفسیر فیزیکی پرس و جو، کلیدها و بردارهای ارزش، ممکن است به وبلاگ من در مورد تکامل مدلهای زبان (که در قسمت مقدمه این مقاله در بالا پیوند داده شده است) مراجعه کنید.
خود توجهی چند راس:
فرآیند فوق فقط یک بار اتفاق نمیافتد - معماری ترانسفورمر دارای توجه چند راس است که به این معنی است که چندین مجموعه (یا راس) از توجه به خود به طور موازی یاد میگیرند. تعداد راسهای توجه از مدلی به مدل دیگر متفاوت است، اما اعداد ممکن است بین 12 تا 100 باشد.
شهود پشت راسهای توجه متعدد
شهود پشت توجه چند راس در ترانسفورمرها این است که "هر راس[1]" جنبه متفاوتی از زبان را میآموزد. به عنوان مثال، یک راس ممکن است رابطه بین افراد را ببیند، راس دیگری ممکن است روی بافت جمله تمرکز کند و راس دیگری ممکن است رابطه بین اسمها و مقادیر عددی و دیگری قافیه بین کلمات (یا نشانهها) و غیره را ببیند.
بدیهی است که یادگیری جنبه زبان قبل از فرآیند آموزش تصمیمگیری نمیشود - وزن هر مجموعه از راس توجه به طور تصادفی مقداردهی اولیه میشود و دادههای آموزشی کافی به شبکه داده میشود و در طول فرآیند آموزش هر راس یک جنبه از زبان را میآموزد. من احساس میکنم معمولاً تفسیر این که کدام جنبه از زبانی را که یک مدیر خاص در حال یادگیری است یا آموخته است آسان نیست.
توجه چند راس - محاسبات به طور خلاصه
· برای تشکیل راسهای توجه - بردارهای پرس و جو، کلید و مقدار به قطعات “X” تقسیم میشوند که هر قطعه یک راس توجه است. بنابراین، اگر بردار کلمه اصلی با اندازه 512 باشد، بردارهای پرس و جو، کلید و مقدار به اندازه 512/x خواهند بود، بنابراین، اگر تعداد راسهای توجه 8 باشد، اندازه بردارهای پرس و جو، کلید و مقدار ۶۴ = ۸/512 خواهد بود.
· یک ماتریس توجه برای هر راس توجه ایجاد میشود که برابر با طول دنباله x طول دنباله خواهد بود. بنابراین، فرض کنید که یک جمله "من عاشق یادگیری عمیق هستم" داشته باشیم، اندازه ماتریس توجه برای هر راس 4 در 4 خواهد بود.
· ماتریس توجه در نتیجه عملیات ریاضی QK^T تولید میشود و محصول برای حذف واریانس مقیاسبندی میشود و برای تبدیل اعداد به احتمالات از softmax عبور میکند.
· مفهوم ماتریس توجه بیان میکند که هر کلمه در یک جمله چگونه با بقیه کلمات آن جمله مرتبط است. بنابراین، مدل از هر کلمه به هر کلمه دیگر، بدون توجه به جایی که آنها در ورودی هستند، یاد میگیرد. ماتریس توجه نشان داده شده در زیر به وضوح نشان میدهد که چگونه هر کلمه در یک جمله با همه کلمات دیگر مرتبط است:
شکل: امتیازات توجه
امتیازات توجه که در بالا در ماتریس توجه نشان داده شده است بین 0 و 1 قرار دارد که به صورت حاصلضرب نقطهای از ماتریسهای Query و Key (مقیاسشده برای کاهش واریانس) به دست میآید و نتیجه را از یک Softmax عبور میدهد تا احتمالات بین 0 و 1 به دست آید.
· ممکن است از ماتریس بالا - به عنوان مثال - کلمه "عمیق" به شدت با کلمه "یادگیری" یا توجه به آن ارتباط داشته باشد و بنابراین نمره (0.7) بالا است و به طور مشابه کلمه یادگیری به شدت با کلمه "عمیق" مرتبط است.
· این ماتریس توجه در مقدار ضرب میشود تا تعبیه کلمه تبدیلشده بهصورت متناظر غنی حاصل شود، همانطور که در معادله زیر نشان داده شده است.
دریافت بردارهای تعبیه شده (تبدیل شده) به لحاظ بافتی
بخش رمزگشا:
در کنار بخش رمزگشا، انگلیسی - تعبیههای آگاه از زمینه - را به همراه یک نشانه شروع که شروع جمله را نشان میدهد، منتقل میکنیم و شروع به تولید کلمات فرانسوی یکی پس از دیگری میکنیم. در مرحله زمانی n - برای به دست آوردن nامین کلمه فرانسوی - کلمات انگلیسی را که پس از پردازش به دست آمدهاند از طریق واحد رمزگذار معماری به اضافه کلمات فرانسوی که تا مرحله زمانی (n-1) تولید شدهاند عبور میدهیم. این در شکلهای زیر نشان داده شده است.
شکل: کار بخش رمزگشای ترانسفورمر برای کار ترجمه زبان
3. جریان کد مکانیسم کلی توجه چند راس: