Transformer
المحوّل شبكة عصبية مبنية على الانتباه الذاتي، تعالج تسلسلًا كاملًا بالتوازي. تعرّف على آلية عمله ومتغيراته واستخدامه في الرؤية.
يُعدّ Transformer معماريةَ شبكة عصبية تعالج تسلسلاً من الرموز، مثل الكلمات أو رقع الصور، وتتيح لكل رمز استقاء المعلومات من جميع الرموز الأخرى عبر الانتباه الذاتي. وقدّمه باحثو Google عام 2017 في الانتباه هو كل ما تحتاج إليه لأغراض الترجمة الآلية. وكانت الشبكات العصبية المتكررة (RNNs) السابقة تقرأ الجملة كلمةً تلو الأخرى، لذا لم يكن من الممكن إجراء التدريب بالتوازي عبر المواضع. يعالج Transformer جميع المواضع دفعةً واحدةً، وحقق نموذجه الأساسي أفضل أداء آنذاك في الترجمة من الإنجليزية إلى الألمانية بعد 12 ساعة من التدريب على ثماني GPUs. وتشكّل Transformers الآن الأساس الذي تقوم عليه النماذج اللغوية الكبيرة (LLMs) وTransformers للرؤية والتعرّف على الكلام، فضلًا عن كثير من نماذج اكتشاف الكائنات وتوليد الصور.
كيف تعمل بنية Transformer#
تُحوّل رموز الإدخال أولًا إلى تضمينات، وهي متجهات ذات عرض ثابت (512 في النموذج الأصلي). ثم يطبّق Transformer رزمة من الطبقات المتطابقة، وتتألف كل منها من طبقتين فرعيتين:
- الانتباه الذاتي متعدد الرؤوس: ينتج كل رمز متجه استعلام ومفتاح وقيمة. ويكون خرج الرمز متوسطًا مرجّحًا لجميع متجهات القيمة، بحيث يستند الترجيح إلى مدى تطابق استعلامه مع كل مفتاح، وفقًا لما توضحه آلية الانتباه. تعمل عدة رؤوس بالتوازي، ثماني رؤوس في النموذج الأصلي، كي تتمكن الرؤوس المختلفة من تتبّع علاقات مختلفة.
- الشبكة ذات التغذية الأمامية: شبكة من طبقتين تُطبّق على كل رمز على حدة، لتحويل المعلومات التي جمعها الانتباه.
تُحيط وصلة متبقية بكل طبقة فرعية، ويحافظ تطبيع الطبقة على استقرار التنشيطات. رصّ النموذج الأصلي ست طبقات من هذا النوع في المُرمِّز، الذي يقرأ الجملة المصدر، وست طبقات في مفكّك الترميز، الذي يكتب الترجمة رمزًا تلو الآخر. وتضيف كل طبقة في مفكّك الترميز خطوة انتباه ذاتي مقنّعًا تحجب الرموز المستقبلية، وخطوة انتباه متقاطع تقرأ خرج المُرمِّز:
يقارن الانتباه الرموز اعتمادًا على المحتوى وحده، لذا لا تملك طبقة Transformer إحساسًا مدمجًا بالترتيب: فتبديل رموز الإدخال لا يفعل سوى تبديل المخرجات. لذلك تُضاف معلومات الموضع إلى تضمينات الرموز، باستخدام أنماط الجيب وجيب التمام الثابتة في الورقة الأصلية، أو متجهات الموضع المتعلّمة في BERT وViT، أو تضمينات الموضع الدوّارة (RoPE) في معظم LLMs الحالية. يوضح هذا الرمز المكتوب بـPyTorch الأثر باستخدام طبقة مُرمِّز واحدة:
import torch
from torch import nn
# طبقة مُرمِّز واحدة من Transformer وتسلسل من 5 تضمينات للرموز
torch.manual_seed(0)
layer = nn.TransformerEncoderLayer(d_model=32, nhead=4, batch_first=True).eval()
tokens = torch.randn(1, 5, 32)
reverse = torch.arange(4, -1, -1)
# يتجاهل الانتباه الذاتي وحده الترتيب: عكس الإدخال لا يؤدي إلا إلى عكس الإخراج
print(torch.allclose(layer(tokens[:, reverse])[:, reverse], layer(tokens), atol=1e-5))
# إضافة متجه متعلّم واحد لكل موضع تجعل كل خرج يعتمد على موضع الرمز
positions = nn.Embedding(5, 32).weight
reordered = layer(tokens[:, reverse] + positions)[:, reverse]
print(torch.allclose(reordered, layer(tokens + positions), atol=1e-5))يطبع True ثم False: لا يؤدي عكس الرموز إلا إلى عكس المخرجات إلى أن تُضاف متجهات المواضع، وبعدها يغيّر ترتيب الرموز خرج كل رمز.
نماذج المُرمِّز ومفكّك الترميز والمُرمِّز-مفكّك الترميز#
تؤدي طرق استخدام الرزمة الأصلية الثلاث وظائف مختلفة:
- المُرمِّز فقط: ينتبه كل رمز إلى كامل الإدخال في الاتجاهين، ما يلائم مهام الفهم. يُعدّ BERT للنصوص وViT للصور من نماذج المُرمِّز فقط.
- مفكّك الترميز فقط: ينتبه كل رمز إلى الرموز التي تسبقه فقط، لذا يُنشئ النموذج النص رمزًا تلو الآخر. تستخدم نماذج GPT ومعظم LLMs الحالية هذا التصميم.
- المُرمِّز-مفكّك الترميز: يقرأ المُرمِّز تسلسلًا، ويكتب مفكّك الترميز تسلسلًا آخر مع الانتباه إلى التسلسل الأول، كما في نماذج الترجمة وT5 ونظام Whisper للتعرّف على الكلام.
Transformers في الرؤية الحاسوبية#
يتعامل Transformer البصري (ViT) مع الصورة بوصفها تسلسلًا من رقع بحجم 16×16 بكسل، ويطبّق مُرمِّز Transformer من دون تعديل، بينما يحصر Swin Transformer الانتباه في نوافذ محلية كي يتوسع نطاقه ليتعامل مع الصور عالية الدقة. أعاد DETR صياغة الاكتشاف بوصفه تنبؤًا بمجموعة: إذ يحوّل مفكّك ترميز Transformer مجموعة ثابتة من استعلامات الكائنات المتعلّمة إلى صناديق، كائن واحد لكل استعلام، ما يلغي الكبت غير الأقصى (NMS) والمراسي المصممة يدويًا. تشغّل حزمة Ultralytics نموذج RT-DETR من Baidu، وهو إصدار آني من هذا التصميم، يطبّق مُرمِّزه الهجين طبقة مُرمِّز Transformer على خريطة السمات ذات الخطوة 32 فقط، أي 400 رمز لصورة بحجم 640×640، وينقّح مفكّك الترميز المؤلف من 6 طبقات استعلامات الكائنات البالغ عددها 300 وصولًا إلى الاكتشافات النهائية من دون NMS. وتُستخدم Transformers أيضًا لتوليد الصور: فقد حلّت Transformers الانتشارية محل U-Net في نماذج تحويل النص إلى صورة والفيديو الحديثة، وتُدخل نماذج الرؤية واللغة رموز الصور إلى LLM يعمل بمفكّك ترميز فقط.
Transformers مقارنةً بالبنى ذات الصلة#
- الشبكات العصبية الالتفافية (CNNs): ترى الالتفافة جوارًا صغيرًا باستخدام المرشح نفسه في كل موضع، وهو افتراض مدمج يفيد عند استخدام مجموعات بيانات صغيرة. يستطيع الانتباه ربط أي موضعين ضمن طبقة واحدة، لكنه يحتاج إلى تعلّم البنية المكانية من البيانات، لذا تحتاج Transformers عادةً إلى بيانات تدريب أكثر أو إلى تدريب مسبق كي تتفوق على CNNs.
- RNNs وLSTMs: تنقل هذه النماذج حالة ثابتة الحجم من خطوة إلى أخرى، لذا تظل الذاكرة لكل رمز ثابتة، لكن التدريب تسلسلي. يحتفظ Transformer بكل رمز سابق متاحًا ويتدرب بالتوازي.
- نماذج فضاء الحالة: تعالج بنيات مثل Mamba التسلسلات بحالة تكرارية تزداد كلفتها خطيًا مع الطول، وتتناوب النماذج الهجينة بينها وبين طبقات الانتباه.
يقارن الانتباه الذاتي كل رمز بكل رمز آخر، لذا تزداد كلفته مع مربع طول التسلسل. يحتوي تسلسل من 4,096 رمزًا على نحو 16.8 مليون زوج استعلام-مفتاح في كل رأس من كل طبقة، ومضاعفة الطول إلى 8,192 رمزًا ترفع العدد إلى أربعة أمثاله، أي نحو 67 مليونًا. يقلل FlashAttention حركة البيانات في الذاكرة اللازمة لهذا الحساب، وتخزّن ذاكرة KV المؤقتة المفاتيح والقيم للرموز السابقة كي يحسبها مفكّك الترميز مرة واحدة فقط أثناء التوليد.










