Decoder (Transformer) (UR)
ڈیکوڈر (انگریزی: Decoder) — Machine Learning اور Deep Learning میں یہ neural network کا وہ جزو ہے جس کا بنیادی کام encoded representation (مثلاً context vector یا encoder سے حاصل شدہ hidden states کی ترتیب) کو آؤٹ پٹ ڈیٹا کی ترتیب (مثلاً متن یا تصویر) میں تبدیل کرنا ہے۔ ڈیکوڈر آؤٹ پٹ ڈیٹا کو قدم بہ قدم تیار کرتا ہے، عموماً autoregressive انداز میں۔
وسیع تر معنوں میں، نظریہ اطلاعات میں، ڈیکوڈر کوئی بھی ایسا آلہ یا الگورتھم ہے جو encoded ڈیٹا کو واپس اس کی اصل یا قابلِ فہم شکل میں تبدیل کرتا ہے۔
تصور اور مقصد
اگر encoder کا کام ان پٹ ڈیٹا کو سمجھنا اور سکیڑنا ہے، تو ڈیکوڈر کا کام آؤٹ پٹ ڈیٹا کی تخلیق اور تفصیل کرنا ہے۔ یہ ایک مختصر، معلومات سے بھرپور representation لیتا ہے اور اسے مرحلہ وار مطلوبہ شکل میں ڈھالتا ہے، چاہے وہ کسی دوسری زبان میں جملہ ہو، تصویر کی متنی تفصیل ہو یا موسیقی کے سروں کی ترتیب۔
زیادہ تر ڈیکوڈرز کی بنیادی خصوصیت ان کی autoregressive نوعیت ہے: ترتیب کا اگلا عنصر (مثلاً لفظ یا pixel) تیار کرنے کے لیے وہ encoded representation اور تمام پہلے تیار کردہ عناصر دونوں کو استعمال کرتے ہیں۔
مختلف architectures میں ڈیکوڈر
Autoencoder میں ڈیکوڈر
Autoencoder کی architecture میں ڈیکوڈر encoder کے برعکس کام کرتا ہے:
- Encoder ان پٹ ڈیٹا کو hidden representation میں سکیڑتا ہے۔
- Decoder اس hidden representation کو لیتا ہے اور اس سے اصل ڈیٹا کو دوبارہ بحال (reconstruct) کرنے کی کوشش کرتا ہے۔
اس طرح کے network کی تربیت سے ڈیکوڈر کو الگ طور پر نئے ڈیٹا کی تخلیق کے لیے استعمال کیا جا سکتا ہے، جس کے لیے latent space سے vectors اس کی ان پٹ میں دیے جاتے ہیں۔
Recurrent Neural Networks (RNN/LSTM) میں ڈیکوڈر
RNN یا LSTM پر مبنی کلاسیکی sequence-to-sequence (seq2seq) ماڈلز میں، ڈیکوڈر ایک recurrent network ہوتا ہے جو آؤٹ پٹ ترتیب کو ایک token فی قدم تیار کرتا ہے۔
- کام کا اصول: ڈیکوڈر کو encoder کی آخری hidden state (context vector) سے initialize کیا جاتا ہے۔ ہر قدم پر یہ پہلے تیار کردہ token اور اپنی سابقہ hidden state کو ان پٹ کے طور پر قبول کرتا ہے، پھر اگلا token تیار کرتا اور اپنی state کو اپ ڈیٹ کرتا ہے۔ یہ عمل اس وقت تک جاری رہتا ہے جب تک ترتیب کے اختتام کا خصوصی token (`<EOS>`) تیار نہ ہو جائے۔
Transformer Architecture میں ڈیکوڈر
Transformer architecture پر مبنی ڈیکوڈر بھی autoregressive انداز میں کام کرتا ہے، لیکن اس کی اندرونی ساخت مختلف ہے۔ یہ یکساں layers کے ایک stack () پر مشتمل ہوتا ہے، جن میں سے ہر layer کے تین بنیادی sub-layers ہوتے ہیں:
- Masked Multi-Head Self-Attention: یہ mechanism encoder کی طرح ہی کام کرتا ہے، مگر ایک اہم فرق کے ساتھ — masking۔ Mask ہر position کو ترتیب میں آنے والی positions پر "توجہ دینے" سے روکتا ہے۔ اس سے یہ یقینی ہوتا ہے کہ position کی پیش گوئی صرف positions پر پہلے سے معلوم آؤٹ پٹس پر منحصر ہو، جس سے autoregressive خاصیت برقرار رہتی ہے۔
- Multi-Head Cross-Attention: یہ وہ کلیدی mechanism ہے جو ڈیکوڈر کو encoder سے جوڑتا ہے۔ یہاں Query ڈیکوڈر کی سابقہ layer سے آتے ہیں، جبکہ Key اور Value encoder کے آؤٹ پٹ representations سے۔ اس سے ڈیکوڈر تخلیق کے ہر قدم پر ان پٹ ترتیب کے سب سے زیادہ متعلقہ حصوں پر توجہ مرکوز کر سکتا ہے۔
- Feed-Forward Network: یہ encoder میں استعمال ہونے والے network کی مانند ہے۔
ڈیکوڈر پر مبنی ماڈلز کی اقسام
Encoder-Decoder ماڈلز
یہ کلاسیکی architecture ہے جس میں encoder اور decoder مل کر کام کرتے ہیں۔
- کام کا اصول: Encoder ان پٹ ڈیٹا کی representation تیار کرتا ہے، اور decoder اس representation کو استعمال کرتے ہوئے آؤٹ پٹ ڈیٹا تیار کرتا ہے۔
- مثالیں: اصل Transformer، T5، BART۔
Decoder-Only ماڈلز
یہ ماڈلز، جو generative AI میں غالب ہو چکے ہیں، صرف Transformer decoder کے stack کو استعمال کرتے ہیں۔
- کام کا اصول: ان ماڈلز میں encoder کی طرف cross-attention موجود نہیں ہوتی، کیونکہ encoder ہوتا ہی نہیں۔ ماڈل خالصتاً autoregressive انداز میں کام کرتا ہے اور اسی ترتیب کے تمام سابقہ tokens کی بنیاد پر اگلا token متوقع کرتا ہے۔ ان پٹ prompt اور پہلے سے تیار کردہ متن کو اکٹھے process کیا جاتا ہے۔
- اطلاق: ان کاموں کے لیے مثالی جہاں دیے گئے متن کو جاری رکھنا ہو (text generation، مکالماتی نظام، chat-bots)۔
- مثالیں: GPT سیریز، LLaMA، Claude۔
Encoder سے تعلق
Encoder اور decoder کا باہمی تعامل تبدیلی کے کاموں کا ایک بنیادی اصول ہے۔
- Encoder ان پٹ ترتیب کی معلومات کو vectors کے مجموعے میں سکیڑتا ہے۔
- Decoder ان vectors کے مجموعے کو استعمال کرتے ہوئے مرحلہ وار ایک نئی ترتیب تیار کرتا ہے۔
Cross-attention ڈیکوڈر کو ہر قدم پر encoder سے "مشورہ" کرنے کی اجازت دیتی ہے تاکہ یہ سمجھا جا سکے کہ اس وقت اصل متن کے کس حصے پر توجہ دینی ہے۔ مثلاً، جملے کے ترجمے کے وقت ڈیکوڈر جرمن لفظ تیار کرتے ہوئے ان پٹ میں موجود اس کے متعلقہ انگریزی لفظ کو "دیکھ" سکتا ہے۔
مزید دیکھیں
- GPT
کتابیات
- Vaswani, A. et al. (2017). Attention Is All You Need. NIPS.