Transformer-XL
يخزّن Transformer-XL الحالات الخفية من مقطع النص السابق ويستخدم مواضع نسبية، ما يتيح للنموذج اللغوي الاحتفاظ بالسياق عبر المقاطع.
Transformer-XL هو نموذج لغوي قائم على المحوّل، ينقل السياق عبر مقاطع نصية ثابتة الطول من خلال تخزين الحالات الخفية للمقطع السابق مؤقتًا، وإتاحة المجال للمقطع التالي كي ينتبه إليها. وقدّمه زيهانغ داي وتشلين يانغ وزملاؤهما من جامعة كارنيغي ميلون وGoogle Brain في ورقة Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context ضمن مؤتمر ACL 2019. ولا يستطيع المحوّل التقليدي المدرّب على مقاطع ثابتة، يكون كل منها نافذة سياق منفصلة، رؤية أي شيء يسبق بداية مقطعه الحالي، وهي مشكلة سمّاها الباحثون تجزئة السياق. وتعلّم Transformer-XL اعتماديات أطول بنسبة 80% من الشبكات العصبية المتكررة (RNNs) وأطول بنسبة 450% من المحوّلات التقليدية.
التكرار على مستوى المقطع#
عندما يعالج النموذج مقطعًا، تدمج كل طبقة الحالات الخفية المخزّنة مؤقتًا للمقطع السابق مع حالات المقطع الحالي. وتأتي الاستعلامات من المقطع الحالي وحده، بينما تمتد المفاتيح والقيم عبر المقطعين، وتتوقف التدرّجات عند الذاكرة المؤقتة، لذا تظل تكلفة التدريب لكل مقطع ثابتة. وتُظهر طبقة انتباه واحدة في PyTorch هذا النمط:
import torch
from torch import nn
torch.manual_seed(0)
seg_len, dim = 4, 16
attn = nn.MultiheadAttention(dim, num_heads=2, batch_first=True)
hidden = torch.randn(1, 3 * seg_len, dim) # hidden states for three consecutive segments
memory = torch.empty(1, 0, dim) # nothing is cached before the first segment
for i, segment in enumerate(hidden.split(seg_len, dim=1), start=1):
# Queries come from the current segment; keys and values also cover the cached one
context = torch.cat([memory, segment], dim=1)
out, weights = attn(segment, context, context)
print(f"Segment {i}: {weights.shape[1]} queries attend over {weights.shape[2]} positions")
# Cache this segment for the next one; detach() stops gradients as in Transformer-XL
memory = segment.detach()لا ترى الاستعلامات الأربعة للمقطع الأول سوى رموزه الأربعة، بينما ترى استعلامات كل مقطع لاحق ثمانية رموز: الأربعة الخاصة به والأربعة المخزّنة مؤقتًا. ولأن الطبقة n من المقطع تقرأ حالات الطبقة n − 1 المخزّنة مؤقتًا للمقطع السابق، يمتد مجال الرؤية مقطعًا إضافيًا مع كل طبقة، أي نحو N × L رمزًا عندما يكون طول المقطع N ويبلغ عدد الطبقات L:
تسرّع الذاكرة المؤقتة التقييم أيضًا. فعند التنبؤ برمز تلو الآخر، يتعين على المحوّل التقليدي إعادة حساب نافذة كاملة لكل رمز جديد، بينما يعيد Transformer-XL استخدام الحالات المخزّنة مؤقتًا، ما جعله أسرع بما يصل إلى 1,800 مرة أثناء التقييم. وتواجه آلية التتبّع في Ultralytics YOLO26 مشكلة التجزئة نفسها عندما يمرّر نص برمجي الفيديو إلى model.track() إطارًا تلو الآخر: إذ يحتفظ persist=True بحالة أداة التتبّع بين الاستدعاءات، فيحتفظ كل كائن بالمعرّف نفسه من إطار إلى آخر.
الترميز الموضعي النسبي#
يؤدي إعادة استخدام الحالات المخزّنة مؤقتًا إلى الإخلال بالمواضع المطلقة: إذ سيحمل الرمز الأول من المقطع المخزّن مؤقتًا والرمز الأول من المقطع الحالي التضمين الموضعي نفسه. وبدلًا من ذلك، يحسب Transformer-XL كل درجة انتباه انطلاقًا من محتوى الاستعلام والمفتاح، بالإضافة إلى ترميز جيبي للمسافة بينهما، مع متجهَي تحيز متعلّمين مشترَكين بين المواضع، أحدهما للمحتوى والآخر للموضع. وبما أن الدرجات تعتمد على المسافات وحدها، يستطيع النموذج أثناء التقييم الانتباه إلى ذاكرة مؤقتة أطول مما رآه أثناء التدريب. كما تجعل تضمينات المواضع الدوّارة (RoPE)، المستخدمة في معظم النماذج اللغوية الكبيرة (LLMs) الحالية، درجات الانتباه معتمدة على الموضع النسبي.
النتائج والتأثير#
حقّق Transformer-XL نتائج رائدة جديدة في خمسة معايير مرجعية: 0.99 بت لكل حرف على enwik8، و1.08 على text8، وحيرة بلغت 18.3 على WikiText-103، و21.8 على One Billion Word، و54.5 على Penn Treebank، من دون ضبط دقيق. وعند تدريبه على WikiText-103 وحدها، ولّد مقالات جديدة مترابطة إلى حد معقول، يصل طولها إلى آلاف الرموز. وبنى XLNet، الذي شارك في تأليفه عدد من الباحثين أنفسهم، تدريبه المسبق على فهم اللغة الطبيعية اعتمادًا على بنية Transformer-XL، بينما وسّع Compressive Transformer من DeepMind الذاكرة المؤقتة بضغط الذكريات القديمة بدلًا من التخلص منها.
Transformer-XL ونماذج ذات صلة#
- الذاكرة طويلة قصيرة الأمد (LSTM): تحدّث حالة خفية واحدة رمزًا تلو الآخر، لذا يجب أن تمر المعلومات البعيدة عبر كل خطوة بينهما.
- Longformer: يعالج مستندًا كاملًا من 4,096 رمزًا دفعة واحدة باستخدام انتباه نافذي وعالمي، من دون تكرار.
- ذاكرة التخزين المؤقت للمفاتيح والقيم (KV cache): تخزّن مفاتيح الرموز السابقة وقيمها أثناء التوليد كي لا يُعاد حسابها. وتُستخدم ذاكرة Transformer-XL أيضًا أثناء التدريب، مع إيقاف التدرّجات عند حدود المقاطع.
- نماذج فضاء الحالة (SSMs): تضغط السجل كاملًا في حالة ثابتة الحجم.










