Decoder (Transformer) (FA)

From Systems analysis Wiki
Jump to navigation Jump to search

رمزگشا (انگلیسی: Decoder) — در Machine Learning و یادگیری عمیق، مؤلفه‌ای از شبکه عصبی است که وظیفه اصلی آن تبدیل بازنمایی کدگذاری‌شده (مانند بردار زمینه یا دنباله‌ای از حالت‌های پنهان دریافت‌شده از encoder) به دنباله خروجی داده‌ها (مانند متن یا تصویر) است. رمزگشا داده‌های خروجی را گام به گام و معمولاً به صورت autoregressive تولید می‌کند.

در مفهومی گسترده‌تر، در نظریه اطلاعات، رمزگشا هر دستگاه یا الگوریتمی است که داده‌های کدگذاری‌شده را به قالب اصلی یا قابل‌فهم آن‌ها بازمی‌گرداند.

مفهوم و هدف

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

ویژگی کلیدی اکثر رمزگشاها ماهیت autoregressive آن‌هاست: برای تولید عنصر بعدی دنباله (مثلاً یک کلمه یا پیکسل)، هم از بازنمایی کدگذاری‌شده و هم از تمام عناصر پیش‌تر تولیدشده استفاده می‌کنند.

رمزگشا در معماری‌های مختلف

رمزگشا در autoencoder

در معماری autoencoder، رمزگشا وظیفه‌ای معکوس encoder انجام می‌دهد:

  1. Encoder داده‌های ورودی را در یک بازنمایی پنهان فشرده می‌کند.
  2. رمزگشا این بازنمایی پنهان را می‌گیرد و تلاش می‌کند داده‌های اصلی را از آن بازسازی (بازنمایی) کند.

آموزش چنین شبکه‌ای این امکان را می‌دهد که رمزگشا به‌تنهایی برای تولید داده‌های جدید استفاده شود، با تغذیه بردارهایی از فضای latent به ورودی آن.

رمزگشا در شبکه‌های عصبی بازگشتی (RNN/LSTM)

در مدل‌های کلاسیک تبدیل دنباله به دنباله (seq2seq) مبتنی بر RNN یا LSTM، رمزگشا یک شبکه بازگشتی است که دنباله خروجی را token به token تولید می‌کند.

  • اصل کار: رمزگشا با حالت پنهان نهایی (بردار زمینه) encoder مقداردهی اولیه می‌شود. در هر گام، token پیش‌تر تولیدشده و حالت پنهان قبلی خود را به عنوان ورودی دریافت می‌کند، سپس token بعدی را تولید کرده و حالت خود را به‌روز می‌کند. این فرآیند تا زمانی ادامه می‌یابد که token ویژه پایان دنباله (`<EOS>`) تولید شود.

رمزگشا در معماری Transformer

رمزگشا مبتنی بر معماری Transformer نیز به صورت autoregressive کار می‌کند، اما ساختار داخلی آن متفاوت است. این رمزگشا از یک پشته (N) از لایه‌های یکسان تشکیل شده که هر کدام دارای سه زیرلایه اصلی هستند:

  1. Masked Multi-Head Self-Attention: این مکانیسم مشابه encoder عمل می‌کند، اما با یک تفاوت مهم — masking. ماسک به هر موقعیت اجازه نمی‌دهد به موقعیت‌های بعدی در دنباله «توجه کند». این تضمین می‌کند که پیش‌بینی برای موقعیت i تنها به خروجی‌های از پیش شناخته‌شده در موقعیت‌های <i وابسته است و ویژگی autoregressive حفظ می‌شود.
  2. Multi-Head Cross-Attention: این مکانیسم کلیدی است که رمزگشا را به encoder متصل می‌کند. در اینجا Query‌ها از لایه قبلی رمزگشا می‌آیند، در حالی که Key‌ها و Value‌ها از بازنمایی‌های خروجی encoder تأمین می‌شوند. این امر به رمزگشا اجازه می‌دهد در هر گام تولید، بر مرتبط‌ترین بخش‌های دنباله ورودی تمرکز کند.
  3. Feed-Forward Network: مشابه آنچه در encoder استفاده می‌شود.

انواع مدل‌های مبتنی بر رمزگشا

مدل‌های encoder-decoder

این معماری کلاسیک است که در آن encoder و رمزگشا به صورت جفت کار می‌کنند.

  • اصل کار: Encoder بازنمایی داده‌های ورودی را ایجاد می‌کند و رمزگشا با استفاده از این بازنمایی داده‌های خروجی را تولید می‌کند.
  • نمونه‌ها: Transformer اصلی، T5، BART.

مدل‌های decoder-only

این مدل‌ها که در هوش مصنوعی مولد به جایگاه غالب رسیده‌اند، صرفاً از پشته decoder های Transformer استفاده می‌کنند.

  • اصل کار: در این مدل‌ها cross-attention به encoder وجود ندارد، چرا که encoder‌ای در کار نیست. مدل به صورت خالص autoregressive کار می‌کند و token بعدی را بر اساس تمام token‌های قبلی در همان دنباله پیش‌بینی می‌کند. prompt ورودی و متن از پیش تولیدشده با هم پردازش می‌شوند.
  • کاربرد: برای وظایفی که نیاز به ادامه متن داده‌شده دارند (تولید متن، سیستم‌های گفتگو، chatbot‌ها) ایده‌آل هستند.
  • نمونه‌ها: سری GPT، LLaMA، Claude.

ارتباط با encoder

تعامل encoder و رمزگشا یک اصل بنیادی برای وظایف تبدیل است.

  • Encoder اطلاعات دنباله ورودی را در مجموعه‌ای از بردارها فشرده می‌کند.
  • رمزگشا از این مجموعه بردارها استفاده می‌کند تا دنباله جدیدی را به‌صورت پیوسته تولید کند.

Cross-attention به رمزگشا اجازه می‌دهد در هر گام با encoder «مشورت» کند تا بفهمد در آن لحظه باید بر کدام بخش از متن ورودی تمرکز کند. برای مثال، هنگام ترجمه یک جمله، رمزگشا در حین تولید یک کلمه آلمانی می‌تواند به کلمه انگلیسی متناظر آن در ورودی «نگاه» کند.

همچنین ببینید

  • GPT

منابع

  • Vaswani, A. et al. (2017). Attention Is All You Need. NIPS.