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 فهو محوّل بمُرمِّز وفاكّ ترميز، مدرَّب على 680,000 ساعة من الصوت، لأغراض التعرّف على الكلام. وتستخدم نماذج الرؤية النمط نفسه في وصف الصور والتعرّف البصري على الأحرف (OCR)، كما يعالج Florence-2 من Microsoft وصف الصور والإرساء والاكتشاف على هيئة مخرجات نصية من نموذج seq2seq واحد. ويحوّل Pix2Seq من Google اكتشاف الكائنات إلى مهمة seq2seq بتمثيل كل كائن بخمسة رموز منفصلة: أربعة إحداثيات مكمّمة وفئة. أما RT-DETR، كاشف Baidu الآني الذي يعمل ضمن حزمة Ultralytics، فيحتفظ بالمُرمِّز وفاكّ الترميز ذي الانتباه المتبادل، لكنه يجعل فاكّ الترميز ينقّح 300 استعلام كائن بالتوازي، فتخرج كل المربعات في تمريرة واحدة.










