Self-Attention
يتيح الانتباه الذاتي لكل رمز في التسلسل ترجيح سائر الرموز، باستخدام استعلامات ومفاتيح وقيم مستمدة من المدخل نفسه. وهو جوهر المحوّلات.
الانتباه الذاتي هو شكل من الانتباه تأتي فيه الاستعلامات والمفاتيح والقيم جميعها من التسلسل نفسه، بحيث يبني كل رمز تمثيله الجديد بالاستناد إلى سائر الرموز في ذلك التسلسل. يمكن لطبقة واحدة من الانتباه الذاتي ربط الكلمة الأولى بالأخيرة في فقرة، أو ربط زاويتين متقابلتين في صورة، بخطوة واحدة؛ بينما تحتاج الشبكة العصبية المتكررة (RNN) إلى خطوة لكل موضع، وتحتاج الشبكة العصبية الالتفافية (CNN) إلى طبقات عديدة متراكمة لتوسيع مجال رؤيتها. وعند تكديسه مع طبقات التغذية الأمامية، يشكّل الانتباه الذاتي المحوّل الذي قُدّم في ورقة عام 2017 بعنوان Attention Is All You Need، والذي يشكّل الأساس لـالنماذج اللغوية الكبيرة (LLMs) ومحوّلات الرؤية (ViT) والكواشف القائمة على المحوّلات.
آلية عمل الانتباه الذاتي#
يُضرب كل رمز إدخال، المُمثّل على هيئة تضمين، في ثلاث مصفوفات متعلّمة لإنتاج استعلام ومفتاح وقيمة. ويكون خرج الرمز i متوسطًا مرجحًا لمتجهات القيم لكل الرموز، بأوزان تحددها دالة softmax المطبّقة على الجداءات النقطية المُقاسة لاستعلام الرمز i مع جميع المفاتيح؛ وهذا هو الانتباه بالجداء النقطي المُقاس الموصوف في صفحة آلية الانتباه. ولأن الاستعلامات والمفاتيح والقيم إسقاطات للرموز نفسها، ينتج عن تسلسل مؤلف من n رمز مصفوفة أوزان بحجم n × n. في الجملة "The animal didn't cross the street because it was too tired," يمكن أن يضع صف الرمز "it" معظم وزنه على "animal"، فينقل معنى تلك الكلمة إلى تمثيله.
يشغّل الانتباه الذاتي متعدد الرؤوس عدة عمليات حسابية من هذا النوع بالتوازي على إسقاطات أصغر، ثم يضم النتائج، بحيث تستطيع الرؤوس المختلفة تتبع علاقات متنوعة، مثل البنية النحوية في رأس والإحالة المشتركة في رأس آخر. استخدم المحوّل الأصلي 8 رؤوس، لكل منها 64 بُعدًا، ضمن نموذج ذي 512 بُعدًا.
عمى الترتيب والحجب السببي#
يتعامل الانتباه الذاتي مع مدخلاته على أنها مجموعة. يؤدي خلط الرموز إلى خلط المخرجات بالطريقة نفسها من دون أي تغيير آخر؛ لذلك تضيف النماذج معلومات الموضع، مثل التضمينات الجيبية في المحوّل الأصلي أو تضمين الموضع الدوراني (RoPE) في معظم النماذج اللغوية الكبيرة الحالية. تتيح المرمّزات مثل BERT لكل رمز الانتباه في الاتجاهين. أما النماذج اللغوية الكبيرة ذات مفكّك الترميز فقط، فتطبّق قناعًا سببيًا بحيث لا ينتبه كل رمز إلا إلى نفسه والرموز السابقة، ما يتيح للنموذج توليد النص من اليسار إلى اليمين وإعادة استخدام مفاتيح وقيم الرموز السابقة من ذاكرة KV المؤقتة. توضح MultiheadAttention في PyTorch الخاصيتين عند تمرير الموتر نفسه بوصفه استعلامًا ومفتاحًا وقيمة:
import torch
torch.manual_seed(0)
tokens = torch.randn(1, 5, 16) # تسلسل واحد من 5 رموز، لكل منها 16 سمة
attn = torch.nn.MultiheadAttention(embed_dim=16, num_heads=2, batch_first=True)
# الانتباه الذاتي: الاستعلامات والمفاتيح والقيم كلها إسقاطات للرموز نفسها
out, weights = attn(tokens, tokens, tokens)
print("Attention weights shape:", tuple(weights.shape))
# لا يؤدي خلط الرموز إلا إلى خلط المخرجات، لذا يظل ترتيب الكلمات غير مرئي من دون معلومات الموضع
perm = torch.tensor([3, 0, 4, 1, 2])
out_shuffled, _ = attn(tokens[:, perm], tokens[:, perm], tokens[:, perm])
print("Same outputs after shuffling:", torch.allclose(out_shuffled, out[:, perm], atol=1e-6))
# يمنع القناع السببي الانتباه إلى الرموز اللاحقة، كما في نموذج لغوي كبير ذي مفكّك ترميز فقط
mask = torch.triu(torch.ones(5, 5, dtype=torch.bool), diagonal=1)
_, causal_weights = attn(tokens, tokens, tokens, attn_mask=mask)
print(causal_weights[0].detach().round(decimals=2))يطبع شكل أوزان (1, 5, 5)، والقيمة True لاختبار الخلط، ومصفوفة مثلثية سفلية: يضع الرمز الأول وزنًا مقداره 1.00 على نفسه، ويوزّع الثاني وزنه بين أول رمزين بنسبة 0.31 و0.69، وتكون كل قيمة فوق القطر 0.00.
الانتباه الذاتي والمصطلحات ذات الصلة#
- آلية الانتباه: العملية العامة التي ترجّح القيم بحسب مدى تشابه الاستعلامات والمفاتيح. والانتباه الذاتي هو الحالة التي تأتي فيها العناصر الثلاثة من تسلسل واحد.
- الانتباه التبادلي: تأتي الاستعلامات من تسلسل، بينما تأتي المفاتيح والقيم من تسلسل آخر. ينتبه مفكّك ترميز الترجمة إلى جملة المصدر المرمّزة، وتنتبه استعلامات الأجسام في مفكّك ترميز DETR إلى سمات الصورة، وينتبه نموذج الانتشار لتحويل النص إلى صورة إلى الموجّه.
- الالتفاف: يطبّق المرشح الصغير نفسه عند كل موضع، لذا يرى كل خرج نافذة محلية ثابتة بأوزان لا تعتمد على المحتوى. أما الانتباه الذاتي فيحسب أوزانه بالاستناد إلى المحتوى ويغطي المدخل كله.
يجمع المحوّل الأصلي ذو المرمّز ومفكّك الترميز بين الانتباه الذاتي ثنائي الاتجاه والانتباه الذاتي السببي والانتباه التبادلي:
الكلفة والأنواع الفعّالة#
يؤدي تسجيل كل زوج من الرموز إلى زيادة الزمن والذاكرة بما يتناسب مع مربع طول التسلسل: فـ1,000 رمز ينتج مليون درجة لكل رأس، و100,000 رمز ينتج عشرة مليارات. يحسب FlashAttention الانتباه الذاتي الدقيق على كتل دون تخزين المصفوفة كاملة، بينما تشارك آلية الانتباه ذات الاستعلامات المجمّعة (GQA) المفاتيح والقيم بين الرؤوس لتقليص ذاكرة KV المؤقتة، وتقلل آليات النافذة المنزلقة والانتباه المتناثر والانتباه الخطي عدد الأزواج. في الرؤية، يتبع عدد الرموز دقة الصورة، لذا لا تطبّق كواشف كثيرة الانتباه الذاتي إلا حيث تكون خرائط السمات أصغر ما يمكن. يطبّق YOLO26 الانتباه الذاتي متعدد الرؤوس في كتلة C2PSA فقط عند نهاية العمود الفقري، وفي كتلة C3k2 واحدة مفعّل فيها الانتباه ضمن العنق؛ وتعمل الكتلتان على خريطة السمات 20×20 ذات الخطوة 32 لصورة بدقة 640 بكسل، أي على 400 رمز. تحسب وحدة الانتباه الاستعلامات والمفاتيح والقيم باستخدام التفاف 1×1 واحد على تلك الخريطة، وتضيف معلومات الموضع باستخدام التفاف عمقي 3×3 يُطبّق على القيم.










