Longformer
يجمع Longformer بين الانتباه بنافذة منزلقة وعدد قليل من الرموز العامة، لذا تزداد تكلفته خطيًا مع الطول ويمكنه قراءة مستندات من 4,096 رمزًا.
Longformer هو محوّل للمستندات الطويلة، يستبدل الانتباه الذاتي الكامل بانتباه ضمن نافذة منزلقة حول كل رمز، إضافةً إلى انتباه عام على عدد قليل من الرموز التي تحددها المهمة؛ لذا تزداد كلفته خطيًا مع طول الإدخال بدلًا من تزايدها تربيعيًا. قدم إز بلتاغي وماثيو بيترز وأرمان كوهان من معهد ألين للذكاء الاصطناعي هذا النموذج في بحث عام 2020 بعنوان Longformer: المحوّل للمستندات الطويلة. لا تقرأ المُرمِّزات مثل BERT وRoBERTa أكثر من 512 رمزًا، لذا كان لا بد من تقسيم النصوص الأطول إلى مقاطع تفقد الروابط بينها. وتقرأ نماذج Longformer المنشورة 4,096 رمزًا في تمريرة واحدة، أي نافذة سياق أطول بثماني مرات.
آلية عمل انتباه Longformer#
تجمع كل طبقة الأنماط المحلية والعامة ضمن آلية انتباه واحدة:
- انتباه النافذة المنزلقة: يولي كل رمز الانتباه لنافذة ثابتة من الرموز المجاورة، بواقع 256 رمزًا على كل جانب في النماذج المنشورة.
- نافذة منزلقة متوسعة: تتيح الفجوات بين المواضع التي يتركز عليها الانتباه للرأس رؤية مسافة أبعد بالكلفة نفسها. استخدم المؤلفون التوسيع في عدد قليل من الرؤوس ضمن الطبقات العليا لنماذج اللغة على مستوى المحارف.
- الانتباه العام: تركز الرموز المحددة على كل المواضع، وتركز جميع المواضع عليها، باستخدام إسقاطات منفصلة للاستعلام والمفتاح والقيمة. وتحدد المهمة هذه الرموز: رمز
[CLS]للتصنيف، ورموز السؤال للإجابة عن الأسئلة.
يوسّع تكديس الطبقات نطاق النافذة بالطريقة التي توسّع بها الالتفافات المتراكمة المجال الاستقبالي لـالشبكة العصبية الالتفافية (CNN): تغطي l طبقة بنافذة عرضها w عدد l × w من الرموز. وتحسب كل طبقة نحو n × w من درجات الانتباه بدلًا من n × n. ويُظهر عدّ الأزواج في قناع Longformer الفرق بوضوح:
import torch
window = 512 # Longformer-base: 256 tokens on each side of every token
for n in (1024, 2048, 4096):
pos = torch.arange(n)
# Sliding window: each token attends to neighbors within window / 2 positions
mask = (pos[:, None] - pos[None, :]).abs() <= window // 2
# Global attention on token 0 ([CLS]): it sees every token and every token sees it
mask[0, :] = True
mask[:, 0] = True
print(f"{n} tokens: full attention {n * n / 1e6:.1f}M scores, Longformer {mask.sum().item() / 1e6:.1f}M")يطبع النموذج 0.5M و1.0M و2.0M من درجات Longformer، مقابل 1.0M و4.2M و16.8M للانتباه الكامل: فكل تضاعف لحجم الإدخال يضاعف عمل الانتباه في Longformer ويزيد عمل الانتباه الكامل أربعة أضعاف. وتحسب التطبيقات الفعلية نطاق الدرجات فقط، وهذا ما يحقق وفورات الذاكرة.
التدريب والنتائج#
يبدأ Longformer من نقطة التحقق الخاصة بـRoBERTa. ونسخ المؤلفون التضمينات الموضعية الـ512 المتعلَّمة الخاصة به ثماني مرات لتغطية 4,096 موضعًا، ثم واصلوا التدريب المسبق لنموذج اللغة المقنّع على مستندات طويلة. وبعد الضبط الدقيق، تفوّق باستمرار على RoBERTa في مهام المستندات الطويلة وحقق نتائج رائدة آنذاك في معياري WikiHop وTriviaQA الخاصين بـالإجابة عن الأسئلة، بينما حقق نموذج اللغة على مستوى المحارف نتائج جديدة في text8 وenwik8.
يضيف Longformer-Encoder-Decoder (LED) مفكّك ترميز لمهام تلخيص النصوص وغيرها من مهام توليد النصوص، وقد عُرض باستخدام تلخيص أوراق علمية كاملة من arXiv. وتنفذ مكتبة Transformers من Hugging Face النموذجين، وتتلقى الرموز العامة على هيئة global_attention_mask. وظهرت لاحقًا إصدارات متخصصة، مثل Clinical-Longformer، الذي دُرّب مسبقًا على مجموعات كبيرة من النصوص السريرية، وقُيّم في 10 مهام، منها التعرف على الكيانات المسماة والإجابة عن الأسئلة وتصنيف المستندات.
Longformer والنماذج ذات الصلة#
- Transformer-XL: يقرأ النص الطويل مقطعًا تلو الآخر، ويتيح لكل مقطع التركيز على الحالات المخفية المخزنة مؤقتًا للمقطع السابق، موسّعًا السياق عبر التكرار من اليسار إلى اليمين لتوليد النص.
- BigBird: نموذج من Google من العام نفسه، يضيف روابط انتباه عشوائية إلى الانتباه ذي النافذة والانتباه العام، ويقرأ أيضًا 4,096 رمزًا.
- الانتباه المتناثر: الفئة الأوسع لأنماط الانتباه الثابتة التي ينتمي إليها Longformer.
- الانتباه السريع: يحسب الانتباه الكامل الدقيق ضمن كتل في الذاكرة على الشريحة، لذا ينمو حجم الذاكرة خطيًا مع الطول، بينما يظل عدد الدرجات تربيعيًا.
الانتباه المحلي والعام في الرؤية#
تطرح الصور عالية الدقة المشكلة نفسها، لأن محوّل الرؤية (ViT) يحوّل الصورة إلى آلاف رموز الرقع. ويعالجها محوّل Swin باستخدام نوافذ محلية مزاحة، فيما يمزج نموذج التجزئة الشامل (SAM) من Meta، المتاح ضمن حزمة Ultralytics، بين الانتباه ضمن النوافذ والانتباه العام من كتلة إلى أخرى من أجل تجزئة الصور: إذ يركز مُرمِّز الصور ViT-B ضمن نوافذ غير متداخلة بحجم 14 × 14 على شبكة رقع 64 × 64 في 8 من كتلِه الاثنتي عشرة، ويركز عالميًا على الرقع الـ4,096 كلها في الكتل 2 و5 و8 و11.










