Sequence-to-Sequence Models
تحوّل نماذج التسلسل إلى تسلسل (seq2seq) تسلسل إدخال إلى تسلسل إخراج بطول مختلف، كما في الترجمة أو التلخيص أو الكلام.
تحوّل نماذج التسلسل إلى التسلسل (seq2seq) تسلسلًا إلى تسلسل آخر قد يختلف عنه في الطول، مثل تحويل جملة إنجليزية إلى ترجمتها الفرنسية، أو مقال طويل إلى ملخص، أو مقطع صوتي إلى نص مفرّغ. ويستخدم معظمها بنية مُرمِّز ومُفكِّك ترميز: يقرأ المُرمِّز المدخل كاملًا في صورة تمثيلات داخلية، ثم يولّد المُخرجات المُفكِّك رمزًا تلو الآخر، اعتمادًا على تلك التمثيلات والرموز التي أنتجها بالفعل. واتخذ هذا النهج شكله الحديث عام 2014، حين نشر سوكِفِر وفينيالس ولي في Google ورقة Sequence to Sequence Learning with Neural Networks، ووصف Cho وآخرون مُرمِّزًا ومُفكِّك ترميز قائمًا على RNN من أجل الترجمة الآلية. ومنذ عام 2017، بُنيت معظم نماذج التسلسل إلى التسلسل باستخدام بُنى Transformer.
آلية عمل نماذج Seq2Seq#
في نماذج عام 2014، قرأت شبكة مُرمِّز الذاكرة طويلة قصيرة الأمد (LSTM) جملة المصدر كلمةً تلو الأخرى وضغطتها في متجه واحد ذي طول ثابت، ثم بسط فاكّ ترميز LSTM ذلك المتجه لإنتاج الترجمة. واستخدم Sutskever وآخرون شبكات LSTM من أربع طبقات، ووجدوا أن عكس ترتيب كلمات المصدر يسهّل التدريب، وحققوا درجة BLEU مقدارها 34.8 على مجموعة اختبار WMT'14 من الإنجليزية إلى الفرنسية. وأضرّ ضغط كل جملة في متجه واحد بالمدخلات الطويلة، لذلك أضاف Bahdanau وCho وBengio آلية انتباه في ورقة الترجمة الآلية العصبية من خلال تعلم المحاذاة والترجمة معًا، ما أتاح لفاكّ الترميز الرجوع إلى كل حالة من حالات المُرمِّز في كل خطوة. وأبقى المحوّل على تصميم المُرمِّز وفاكّ الترميز هذا، واستبدل التكرار بـالانتباه الذاتي، وربط الجزأين بانتباه متبادل. وأثناء الاستدلال، يعمل فاكّ الترميز ضمن حلقة:
لأن الحلقة تتوقف عند إصدار فاكّ الترميز رمز النهاية، يُتعلَّم طول المخرج لكل مثال على حدة. ويحتفظ فك الترميز عادةً بعدة مخرجات مرشحة باستخدام البحث بالحزمة، وهو الخيار القياسي للترجمة والتعرّف على الكلام.
التدريب بإجبار المعلم#
أثناء التدريب، لا يحتاج فاكّ الترميز إلى العمل ضمن حلقة. فباستخدام إجبار المعلم، يتلقى التسلسل الهدف الصحيح بعد إزاحته موضعًا واحدًا إلى اليمين، ويتنبأ بكل رمز تالٍ في تمريرة متوازية واحدة، مع قناع سببي لا يتيح لكل موضع رؤية سوى الأهداف السابقة. وتمثل الخسارة الإنتروبيا المتقاطعة بين تلك التنبؤات والرموز التالية الحقيقية. وتنفّذ nn.Transformer في PyTorch تصميم المُرمِّز وفاكّ الترميز الأصلي:
import torch
from torch import nn
torch.manual_seed(0)
src_vocab, tgt_vocab, d_model = 1000, 800, 64
embed_src, embed_tgt = nn.Embedding(src_vocab, d_model), nn.Embedding(tgt_vocab, d_model)
model = nn.Transformer(d_model, nhead=4, num_encoder_layers=2, num_decoder_layers=2, batch_first=True)
to_logits = nn.Linear(d_model, tgt_vocab)
source = torch.randint(0, src_vocab, (1, 9)) # a 9-token source sentence
target = torch.randint(0, tgt_vocab, (1, 7)) # start token + a 6-token translation
# Teacher forcing: the decoder reads the correct previous tokens and predicts every next token in parallel
decoder_input, labels = target[:, :-1], target[:, 1:]
causal_mask = nn.Transformer.generate_square_subsequent_mask(decoder_input.size(1))
logits = to_logits(model(embed_src(source), embed_tgt(decoder_input), tgt_mask=causal_mask))
loss = nn.functional.cross_entropy(logits.flatten(0, 1), labels.flatten())
print(f"Source tokens: {source.shape[1]} -> decoder logits: {tuple(logits.shape)}")
print(f"Training loss: {loss.item():.2f}")يطبع Source tokens: 9 -> decoder logits: (1, 6, 800)، وهو تنبؤ واحد على مفردات الهدف المكوّنة من 800 رمز لكل موضع من مواضع الهدف الستة، محسوبًا من مصدر يتكون من 9 رموز في تمريرة واحدة. وتبلغ خسارة النموذج غير المدرَّب 6.73، وهي قريبة من ln(800) ≈ 6.68، أي خسارة التخمين الموحّد. ولأن التدريب يزوّد النموذج دائمًا بالرموز السابقة الصحيحة، بينما يزوّده الاستدلال بتخميناته الخاصة، فقد تتراكم الأخطاء أثناء الاستدلال؛ ويُسمى هذا الأثر تحيز التعرّض.
Seq2Seq مقارنةً بالبنى ذات الصلة#
- النماذج ذات المُرمِّز فقط، مثل BERT: تقرأ هذه النماذج المُدخل في الاتجاهين وتنتج تمثيلًا لكل رمز، ما يجعلها مناسبة للتصنيف والوسم.
- النماذج اللغوية الكبيرة (LLMs) ذات فاكّ الترميز فقط: تضع نماذج مثل GPT المُدخل والمخرج في تسلسل واحد، وتعالج مهام seq2seq بمواصلة المطالبة، وهي الطريقة التي يعمل بها معظم توليد النص اليوم.
- الشبكات العصبية التكرارية (RNNs) وGRUs: هي الطبقات التكرارية داخل المُرمِّزات وفواكّ الترميز الأصلية لعام 2014. وقد قدّم Cho وآخرون وحدة التكرار ذات البوابات في الورقة نفسها التي عرضوا فيها المُرمِّز وفاكّ الترميز.
التطبيقات#
نقلت Google خدمة Google Translate إلى نظامها GNMT في عام 2016، وهو نظام يتألف من مُرمِّز ومفكِّك ترميز من نوع LSTM ذي 8 طبقات مع آلية انتباه، وتظل الترجمة المهمة المحورية ضمن مهام seq2seq. وصاغ نموذج T5 من Google كل مهمة من مهام معالجة اللغة الطبيعية (NLP) في صيغة تحويل النص إلى نص، بما في ذلك تلخيص النصوص والإجابة عن الأسئلة. أما Whisper من OpenAI فهو نموذج Transformer قائم على مُرمِّز ومفكِّك ترميز ومخصّص لـالتعرّف على الكلام، دُرِّب على 680,000 ساعة من الصوت. وتستخدم نماذج الرؤية النمط نفسه في وصف الصور والتعرّف الضوئي على الحروف (OCR)، ويتعامل Florence-2 من Microsoft مع وصف الصور وتحديد المواضع استنادًا إلى النص والكشف بوصفها مخرجات نصية من نموذج واحد من نوع seq2seq، كما أن إصداره Large يعمل على منصة Ultralytics للوسم التلقائي. ويصوغ Pix2Seq من Google اكتشاف الأجسام بوصفه مهمة من نوع seq2seq، وذلك بتمثيل كل جسم بخمسة رموز منفصلة: أربعة إحداثيات مكمَّمة وفئة. ويحافظ RT-DETR، كاشف Baidu الآني الذي يعمل ضمن حزمة Ultralytics، على المُرمِّز ومفكِّك الترميز ذي الانتباه المتقاطع، لكنه يجعل مفكِّك الترميز ينقّح 300 استعلام عن الأجسام بالتوازي، فتنتج جميع مربعات الإحاطة في تمريرة واحدة.










