ترنسفورمرها (یادگیری ماشین)
«ترانسفورماتور» یک مدل یادگیری عمیق است که مکانیسم توجه به خود، به طور متفاوتی اهمیت هر بخش از داده های ورودی را وزن می کند. عمدتاً در زمینه های پردازش زبان طبیعی (NLP) و بینایی رایانه ای (CV ) استفاده می شود.
مانند شبکه‌های عصبی مکرر (RNN)، ترانسفورماتورها برای مدیریت داده‌های ورودی متوالی، مانند زبان طبیعی، برای کارهایی مانند ترجمه و خلاصه متن طراحی شده‌اند. با این حال، برخلاف RNN ها، ترانسفورماتورها لزوماً داده ها را به ترتیب پردازش نمی کنند. در عوض، مکانیسم توجه زمینه را برای هر موقعیتی در دنباله ورودی فراهم می کند. به عنوان مثال، اگر داده ورودی یک جمله زبان طبیعی باشد، ترانسفورماتور نیازی به پردازش ابتدای جمله قبل از پایان ندارد. در عوض، زمینه ای را مشخص می کند که به هر کلمه در جمله معنا می بخشد. این ویژگی اجازه می دهد تا موازی سازی بیشتر از RNN ها باشد و بنابراین زمان آموزش را کاهش می دهد.
ترانسفورماتورها در سال 2017 توسط تیمی در Google Brain معرفی شدند و به طور فزاینده ای مدل انتخابی برای مشکلات NLP هستند، جایگزین مدل های RNN مانند حافظه کوتاه مدت طولانی (LSTM). موازی سازی آموزش اضافی امکان آموزش بر روی مجموعه داده های بزرگتر از زمانی که ممکن بود را می دهد. این منجر به توسعه سیستم های از پیش آموزش دیده مانند BERT (نمایش رمزگذار دوطرفه از ترانسفورماتورها) و GPT (تبدیل پیش‌آموزش‌شده تولیدی)، که با مجموعه داده‌های زبانی بزرگ، مانند ویکی‌پدیا Corpus و Common Crawl آموزش دیده‌اند، و می‌توان آنها را برای کارهای خاص به‌خوبی تنظیم کرد.  قبل از ترانسفورماتورها، بیشتر سیستم‌های NLP پیشرفته به RNN‌های دروازه‌دار مانند LSTM و واحد بازگشتی دروازه‌ای  (GRU) با مکانیسم توجه] اضافه شده بود. s ترانسفورماتورها بر اساس این فناوری های توجه بدون استفاده از ساختار RNN ساخته شده اند، و این واقعیت را برجسته می کند که مکانیسم های توجه به تنهایی می توانند عملکرد RNN ها را با توجه مطابقت دهند.
RNN های دروازه ای توکن ها را به صورت متوالی پردازش می کنند و یک بردار حالت را حفظ می کنند که حاوی نمایشی از داده هایی است که بعد از هر نشانه مشاهده می شود. برای پردازش علامت formula_1 ام ، مدل حالتی را که جمله را تا توکن formula_2 نشان می‌دهد با اطلاعات نشانه جدید برای ایجاد یک حالت جدید، نشان دهنده جمله تا نشانه formula_3. از نظر تئوری، اطلاعات یک توکن می‌تواند به‌طور دلخواه در طول توالی منتشر شود، اگر در هر نقطه، وضعیت به رمزگذاری اطلاعات متنی در مورد نشانه ادامه دهد. در عمل، این مکانیسم ناقص است: مسئله گرادیان ناپدید شدن وضعیت مدل را در پایان یک جمله طولانی بدون اطلاعات دقیق و قابل استخراج درباره نشانه‌های قبلی ترک می‌کند. وابستگی محاسبات توکن به نتایج محاسبات توکن های قبلی نیز موازی کردن محاسبات روی سخت افزار یادگیری عمیق مدرن را دشوار می کند. این می تواند آموزش RNN ها را ناکارآمد کند.
این مشکلات با مکانیسم های توجه برطرف شد. مکانیسم‌های توجه به یک مدل اجازه می‌دهند از حالت در هر نقطه قبلی در طول دنباله استفاده کند. لایه توجه می‌تواند به همه حالت‌های قبلی دسترسی داشته باشد و آنها را با توجه به اندازه‌گیری مرتبط بودن اندازه‌گیری کند، و اطلاعات مرتبطی در مورد توکن‌های دور ارائه دهد.
مثال واضحی از ارزش توجه در ترجمه زبان است، که در آن زمینه برای تعیین معنای یک کلمه در جمله ضروری است. در سیستم ترجمه انگلیسی به فرانسوی، احتمالاً اولین کلمه خروجی فرانسوی به شدت به چند کلمه اول ورودی انگلیسی بستگی دارد. با این حال، در یک مدل کلاسیک LSTM، برای تولید اولین کلمه خروجی فرانسوی، مدل فقط بردار حالت کلمه انگلیسی "آخرین" را به مدل داده می شود. از نظر تئوری، این بردار می تواند اطلاعات مربوط به کل جمله انگلیسی را رمزگذاری کند و تمام دانش لازم را به مدل بدهد. در عمل، این اطلاعات اغلب به خوبی توسط LSTM حفظ می شود. یک مکانیسم توجه می‌تواند برای رفع این مشکل اضافه شود: رمزگشا به بردارهای وضعیت هر کلمه ورودی انگلیسی دسترسی دارد، نه فقط آخرین کلمه، و می‌تواند وزن‌های توجه را یاد بگیرد که میزان توجه به هر بردار حالت ورودی انگلیسی را تعیین می‌کند.
هنگامی که به RNN اضافه می شود، مکانیسم های توجه عملکرد را افزایش می دهند. توسعه معماری ترانسفورماتور نشان داد که مکانیسم‌های توجه به خودی خود قدرتمند هستند و پردازش متوالی مکرر داده‌ها برای دستیابی به دستاوردهای کیفیت RNN با توجه ضروری نیست. ترانسفورماتورها از مکانیزم توجه بدون RNN استفاده می کنند، همه نشانه ها را همزمان پردازش می کنند و وزن توجه بین آنها را در لایه های متوالی محاسبه می کنند. از آنجایی که مکانیسم توجه فقط از اطلاعات مربوط به نشانه‌های دیگر از لایه‌های پایین‌تر استفاده می‌کند، می‌توان آن را برای همه نشانه‌ها به صورت موازی محاسبه کرد که منجر به بهبود سرعت تمرین می‌شود.
مانند مدل‌های قبلی seq2seq، مدل اولیه ترانسفورماتور از معماری «رمزگذار-رمزگشا» استفاده می‌کرد. رمزگذار از لایه های رمزگذاری تشکیل شده است که ورودی را به طور مکرر یکی پس از دیگری پردازش می کند، در حالی که رمزگشا شامل لایه های رمزگشایی است که همان کار را با خروجی رمزگذار انجام می دهد.
وظیفه هر لایه رمزگذار تولید رمزگذاری هایی است که حاوی اطلاعاتی در مورد اینکه کدام بخش از ورودی ها با یکدیگر مرتبط هستند. رمزگذاری های خود را به عنوان ورودی به لایه رمزگذار بعدی ارسال می کند. هر لایه رمزگشا برعکس عمل می کند، تمام رمزگذاری ها را می گیرد و از اطلاعات متنی آنها برای تولید یک دنباله خروجی استفاده می کند.
برای هر ورودی، توجه، ارتباط هر ورودی دیگر را می سنجد و از آنها برای تولید خروجی استفاده می کند. هر لایه رمزگشا دارای مکانیزم توجه اضافی است که اطلاعات را از خروجی های رمزگشاهای قبلی، قبل از اینکه لایه رمزگشا اطلاعات را از رمزگذاری ها ترسیم کند، می گیرد. .
هر دو لایه رمزگذار و رمزگشا دارای یک شبکه عصبی پیش‌خور برای پردازش اضافی خروجی‌ها هستند و شامل اتصالات باقی‌مانده و مراحل عادی‌سازی لایه هستند.
بلوک های ساختمان ترانسفورماتور واحدهای توجه نقطه-محصول مقیاس شده هستند. هنگامی که یک جمله به یک مدل ترانسفورماتور منتقل می شود، وزن توجه بین هر نشانه به طور همزمان محاسبه می شود. واحد توجه، جاسازی‌هایی را برای هر نشانه در زمینه ایجاد می‌کند که حاوی اطلاعاتی در مورد خود نشانه به همراه ترکیب وزنی از نشانه‌های مرتبط دیگر است که هر کدام با وزن توجه خود وزن دارند.
برای هر واحد توجه، مدل ترانسفورماتور سه ماتریس وزن را یاد می گیرد. وزن پرس و جو formula_4، وزن کلید formula_5 و وزن مقدار formula_6. برای هر نشانه formula_7، ورودی جاسازی کلمه formula_8 با هر یک از سه ماتریس وزن ضرب می شود تا یک بردار پرس و جو تولید شود formula_9، یک بردار کلید formula_10، و یک بردار مقدار formula_11. وزن توجه با استفاده از پرس و جو و بردارهای کلید محاسبه می شود: وزن توجه formula_12 از نشانه formula_7 تا نشانه formula_14 حاصل ضرب نقطه ای بین formula_15 و formula_16. وزن‌های توجه بر جذر ابعاد بردارهای کلیدی تقسیم می‌شوند، formula_17، که گرادیان‌ها را در طول تمرین تثبیت می‌کند و از یک softmax که وزن ها را عادی می کند. این واقعیت که formula_4 و formula_5 ماتریس‌های متفاوتی هستند باعث می‌شود توجه غیر متقارن باشد: اگر نشانه formula_7 به نشانه formula_14 (یعنی formula_22 بزرگ است، این لزوماً به این معنی نیست که نشانه formula_14 به نشانه formula_7 (یعنی formula_25 خواهد آمد k_i  می تواند کوچک باشد). خروجی واحد توجه برای نشانه formula_7 مجموع وزنی بردارهای ارزش همه نشانه ها است که با formula_12 وزن شده است، توجه از نشانه formula_7 به هر نشانه.
محاسبه توجه برای همه نشانه ها را می توان به عنوان یک محاسبه ماتریس بزرگ با استفاده از  تابع softmax  بیان کرد که به دلیل بهینه سازی عملیات ماتریس محاسباتی که به سرعت عملیات ماتریس را محاسبه می کند برای آموزش مفید است. ماتریس‌های formula_29، formula_30 و formula_31 به‌عنوان ماتریس‌هایی تعریف می‌شوند که در آن ردیف‌های formula_7 بردار هستند. به ترتیب formula_33 و formula_34 و formula_35
formula_36
یک مجموعه از ماتریس‌های formula_37 «سر توجه» نامیده می‌شود و هر لایه در یک مدل ترانسفورماتور دارای سرهای توجه متعددی است. در حالی که هر سر توجه به نشانه های مربوط به هر نشانه توجه می کند، با سرهای توجه متعدد، مدل می تواند این کار را برای تعاریف مختلف "ارتباط" انجام دهد. علاوه بر این، میدان تأثیر نشان دهنده ارتباط می تواند به تدریج در لایه های متوالی گشاد شود. بسیاری از سرهای توجه ترانسفورماتور روابط مرتبطی را رمزگذاری می کنند که برای انسان معنادار است. برای مثال، سرهای توجه می توانند بیشتر به کلمه بعدی توجه کنند، در حالی که دیگران عمدتاً از افعال به مفعول مستقیم خود توجه می کنند. محاسبات برای هر سر توجه را می توان به صورت موازی انجام داد، که امکان پردازش سریع را فراهم می کند. خروجی‌های لایه توجه به هم متصل می‌شوند تا به لایه‌های شبکه عصبی پیش‌خور منتقل شوند.
هر رمزگذار از دو جزء اصلی تشکیل شده است: یک مکانیسم توجه به خود و یک شبکه عصبی پیشخور. مکانیسم توجه به خود کدهای ورودی را از رمزگذار قبلی می پذیرد و ارتباط آنها را با یکدیگر برای تولید کدهای خروجی می سنجد. شبکه عصبی پیشخور بیشتر هر کدگذاری خروجی را به صورت جداگانه پردازش می کند. این کدهای خروجی سپس به رمزگذار بعدی به عنوان ورودی آن و همچنین به رمزگشاها ارسال می شود.
رمزگذار اول اطلاعات موقعیتی و جاسازی‌ها دنباله ورودی را به‌جای رمزگذاری به عنوان ورودی خود می‌گیرد. اطلاعات موقعیت برای ترانسفورماتور برای استفاده از ترتیب ترتیب ضروری است، زیرا هیچ بخش دیگری از ترانسفورماتور از این استفاده نمی کند.
هر رمزگشا از سه جزء اصلی تشکیل شده است: مکانیسم توجه به خود، مکانیسم توجه روی رمزگذاری‌ها و شبکه عصبی پیش‌خور. رمزگشا به روشی مشابه رمزگذار عمل می کند، اما مکانیسم توجه اضافی درج شده است که در عوض اطلاعات مربوطه را از رمزگذاری های تولید شده توسط رمزگذارها می گیرد.
مانند رمزگذار اول، رمزگشای اول به جای رمزگذاری، اطلاعات موقعیتی و جاسازی های دنباله خروجی را به عنوان ورودی خود می گیرد. ترانسفورماتور نباید از خروجی فعلی یا آینده برای پیش بینی یک خروجی استفاده کند، بنابراین دنباله خروجی باید تا حدی پوشانده شود تا از این جریان اطلاعات معکوس جلوگیری شود. آخرین رمزگشا با یک تبدیل خطی و لایه softmax، برای تولید احتمالات خروجی از روی واژگان.
آموزش معماری های مبتنی بر ترانسفورماتور می تواند گران باشد، به خصوص برای ورودی های طولانی. معماری های جایگزین شامل Reformer است (که بار محاسباتی را از formula_38 به formula_39) کاهش می دهد. ، یا مدل هایی مانند ETC/ BigBird (که می تواند آن را به formula_40 کاهش دهد) که در آن formula_41 طول توالی. این کار با استفاده از درهم‌سازی حساس به محلی و لایه‌های برگشت‌پذیر انجام می‌شود.  یک معیار برای مقایسه معماری ترانسفورماتور در اواخر سال 2020 معرفی شد.
ترانسفورماتورها معمولاً تحت یادگیری نیمه نظارت شامل بدون نظارت پیش آموزش و سپس تنظیم دقیق نظارت شده قرار می گیرند. به دلیل در دسترس بودن محدود داده‌های آموزشی برچسب‌گذاری‌شده، معمولاً پیش‌آموزش بر روی مجموعه داده‌های بزرگ‌تری نسبت به تنظیم دقیق انجام می‌شود. وظایف پیش‌آموزشی و تنظیم دقیق معمولاً عبارتند از:
ترانسفورماتور موفقیت زیادی در پردازش زبان طبیعی (NLP) داشته است، به عنوان مثال وظایف ترجمه ماشینی و سری های زمانی پیش بینی بسیاری از مدل های از پیش آموزش دیده مانند GPT-2] ، GPT-3، BERT، XLNet و RoBERTa توانایی ترانسفورماتورها را برای انجام طیف گسترده ای از وظایف مرتبط با NLP نشان می دهند و پتانسیل یافتن برنامه های کاربردی در دنیای واقعی را دارند
اینها ممکن است شامل موارد زیر باشد: در سال 2020، نشان داده شد که معماری ترانسفورماتور، به طور خاص GPT-2، می تواند برای بازی شطرنج تنظیم شود ترانسفورماتورها برای پردازش تصویر با نتایج قابل رقابت با [[شبکه های عصبی کانولوشن] ] به کار رفته اند.  مدل ترانسفورماتور در چارچوب‌های یادگیری عمیق استاندارد مانند [[ TensorFlow ]] و [[ PyTorch ]] پیاده‌سازی شده است.
"Transformers" یک کتابخانه تولید شده توسط [[Hugging Face]] است که معماری های مبتنی بر ترانسفورماتور و مدل های از پیش آموزش دیده را ارائه می دهد.[[رده:شبکه‌های عصبی مصنوعی]]