معمارية المحوّل
تركيب GPT من الانتباه: إسقاطات متعدّدة الرؤوس، وتسوية الطبقة محلولةً يدوياً، ولماذا تنقذ وصلات الاختصار التدرّج، وتوسّع شبكة التغذية الأمامية أربع مرات، وعدّ بارامترات يعيد إنتاج GPT-2 الصغير عند 124 مليوناً بالضبط.
المتطلبات المسبقة: الانتباه والانتباه الذاتي, التقطيع إلى وحدات والتضمينات
بنت مقالة الانتباه والانتباه الذاتي الآليةَ التي تتيح لكل موضع استشارة كل موضع آخر. لكن الآلية ليست نموذجاً. فبين الانتباه وGPT عامل تقع أربعة مكوّنات أخرى، يحلّ كلٌّ منها مشكلة ملموسة تنشأ حين تكدّس طبقات الانتباه تكديساً عميقاً، إضافةً إلى مسألة كيفية توصيلها.
تركّب هذه المقالة الكتلة، وتحلّ تسوية الطبقة يدوياً، وتنتهي بعدّ بارامترات GPT-2 الصغير - فتصل إلى الرقم المنشور.
أ. ما يجب أن تحويه الكتلة
يعدّد راشكا القطع اللازمة لبناء معمارية GPT: هيكل GPT، وتسوية الطبقة، ودالة التنشيط GELU، وشبكة التغذية الأمامية، ووصلات الاختصار، وكتلة المحوّل التي تجمعها، ثم المعمارية النهائية. فالانتباه هو الآلية داخل الكتلة؛ والبقية هي ما يجعل كومةً عميقة منها قابلة للتدريب.
ب. الانتباه متعدّد الرؤوس
عملية الانتباه الواحدة تنتج ترجيحاً واحداً على المواضع، يعبّر عن مفهوم واحد للصلة. أما الانتباه متعدّد الرؤوس فيشغّل عدة عمليات بالتوازي، لكلٍّ منها خاصة بها، ثم يسلسل النتائج ويُسقطها.
ولا تنال كل رأس العرض كاملاً. ففي GPT-2 الصغير بُعد التضمين 768 والرؤوس 12، فتعمل كل رأس في
بُعداً. واثنتا عشرة رأساً ذات 64 بُعداً تتسلسل لتعود 768. فالكلفة إذاً كلفة رأس واحدة بـ768 بُعداً، بينما يكسب النموذج اثني عشر نمط صلة مستقلاً بدل واحد - إذ تستطيع الرؤوس المختلفة الالتفات إلى علاقات مختلفة دون تنازع على ترجيح واحد.
ج. تسوية الطبقة
تكون الأكوام العميقة غير مستقرة في التدريب حين ينجرف مقياس التنشيطات بين الطبقات. وتعيد تسوية الطبقة قياس كل متجه إلى متوسط صفري وتباين واحد:
مع صغيرة تحرس من القسمة على صفر. ويتبع ذلك بارامترا قياس وإزاحة مُتعلَّمان، فتستطيع الطبقة نقض التسوية إن تبيّن نفع ذلك.
محلولةً، على متجه بثمانية أبعاد. خذ
المجموع ، فـ. والانحرافات المربّعة ، ومجموعها ، فـ و. وبطرح المتوسط والقسمة على الانحراف المعياري:
وللناتج متوسط وتباين ، كما هو مطلوب.
عبر السمات، لا عبر الدفعة. يرسم راشكا التباين مع تسوية الدفعة صراحةً: فتسوية الدفعة تسوّي عبر بُعد الدفعة، بينما تسوّي تسوية الطبقة عبر بُعد السمات. ويهمّ التمييز في نماذج اللغة، حيث تختلف المتتاليات في الدفعة طولاً ومحتوى - إذ تعامل تسوية الطبقة كل موضع على حدة فلا تبالي بما سواه في الدفعة.
وموضع التسوية قرار تصميمي له تاريخه. ويلاحظ راشكا أن Post-LayerNorm، المستخدَمة في المحوّل الأصلي، تطبّق التسوية بعد طبقتَي الانتباه والتغذية الأمامية الفرعيتين، بينما تطبّقها Pre-LayerNorm، المعتمدة في GPT-2 ونماذج اللغة الأحدث، قبلهما - وهو ما قد يفضي إلى ديناميات تدريب أكثر استقراراً.
د. وصلات الاختصار
صياغة راشكا مباشرة: اقتُرحت وصلات الاختصار - وتسمّى أيضاً وصلات التخطّي أو البواقي - أصلاً لشبكات الرؤية الحاسوبية العميقة (وتحديداً الشبكات المتبقّية) للتخفيف من تلاشي التدرّجات. والعملية جمع: يُضاف دخل الطبقة إلى خرجها، فينشأ مسار بديل يلتفّ حول الطبقة.
والأثر قابل للقياس، وقد قاسه راشكا. ففي شبكة من خمس طبقات يورد متوسط التدرّج المطلق عند كل طبقة مع الاختصارات وبدونها:
| الطبقة | بلا اختصارات | مع اختصارات |
|---|---|---|
| 1 | 0.0002 | 0.22 |
| 2 | 0.0013 | 0.20 |
| 3 | 0.0007 | 0.32 |
| 4 | 0.0001 | 0.26 |
| 5 | 0.0050 | 1.32 |
فبلا اختصارات يبلغ التدرّج الواصل إلى الطبقة 1 نحو - أصغر بثلاث مراتب عشرية منه عند الطبقة 5، فلا تكاد الطبقات الأولى تتعلّم. ومع الاختصارات تبقى التدرّجات متقاربة في كل مكان. والسبب ظاهر في المشتقّة: فاشتقاق يعطي ، وذلك الـ مسارٌ يتدفّق عبره التدرّج بلا نقصان مهما صغر .
هـ. شبكة التغذية الأمامية
بعد أن يخلط الانتباه المعلومات عبر المواضع، تحوّل شبكة التغذية الأمامية كل موضع على حدة. وشكلها مميّز: يصف راشكا المدخلات تتوسّع بمعامل أربعة، من 768 إلى 3,072 قيمة، مع طبقة ثانية تضغط الـ3,072 عائدةً إلى 768.
والتنشيط بينهما GELU لا ReLU الواردة في ما هي الشبكة العصبية؟. ويقابل راشكا بينهما ملاحظاً أن ReLU دالة خطية بالقطع، بينما GELU ملساء - فلها تدرّج غير صفري للمدخلات السالبة بدل صفر ReLU المسطّح، ما يتجنّب نمط إخفاق الوحدات الميتة.
ولاحظ عدم تماثل البارامترات الناتج: إذ تحوي شبكة التغذية الأمامية نحو ضعف بارامترات الانتباه الذي تليه، وهو ما يفاجئ من يظنّ الانتباه هو «المحوّل».
و. عدّ GPT-2 الصغير
يتوسّع راشكا إلى أصغر GPT-2، بـ124 مليون بارامتر، ويضيف تصحيحاً ببليوغرافياً مفيداً: فمع أن التقرير الأصلي ذكر 117 مليوناً، صُحّح ذلك لاحقاً. ويعطي جدول التهيئة العائلةَ كاملة:
| النموذج | emb_dim | n_layers | n_heads |
|---|---|---|---|
| gpt2-small (124M) | 768 | 12 | 12 |
| gpt2-medium (355M) | 1024 | 24 | 16 |
| gpt2-large (774M) | 1280 | 36 | 20 |
| gpt2-xl (1558M) | 1600 | 48 | 25 |
مع vocab_size 50,257 وcontext_length 1,024.
ويمكننا التحقّق من الرقم الرئيسي. لكل كتلة، مع :
- الانتباه - أربعة إسقاطات (، والخرج)، كلٌّ منها زائد انحياز: .
- التغذية الأمامية - للتوسّع، و للانكماش: .
- تسويتا طبقة - قياس وإزاحة، لكلٍّ: .
أي لكل كتلة، و كتلة تعطي . وبعد الكتلة الأخيرة تأتي تسوية طبقة أخرى، هي التسوية النهائية في القسم ز، بقياسها وإزاحتها الخاصّين: . وبإضافة التضمينات من التقطيع إلى وحدات والتضمينات - تضمين الوحدات والموضعي :
124.4 مليون - وهو الرقم المنشور، ويطابق بارامتراً ببارامتر عدد نقطة التفتيش المنشورة لـGPT-2 الصغير. ولا تضيف طبقة الخرج شيئاً، لأن GPT-2 يعيد استخدام أوزان تضمين الوحدات فيها.
يعمل في متصفحك. تُنزّل عملية التشغيل الأولى بيئة بايثون (~10 ميغابايت)، ثم تُخزّن مؤقتًا.
أين تسكن البارامترات فعلاً. التضمينات 39.4 مليوناً من الـ124 مليوناً - قرابة الثلث - وهي جدول استرجاع لا حساب. في حين تحوي الكتل الاثنتا عشرة التي تؤدّي العمل كله 85 مليوناً. وتنزاح هذه النسبة انزياحاً حاداً مع المقياس: إذ ينمو
emb_dimوn_layersمعاً في النماذج الأكبر، فتنمو بارامترات الكتل نمواً تربيعياً تقريباً بينما ينمو تضمين الوحدات نمواً خطياً فقط.
تفاعلي: أين تسكن المعاملات
الانحيازات محسوبة، وتطبيعان لكل كتلة وتطبيع نهائي، وطبقة الخرج مربوطة بتضمين الرموز.
- عرض الرأس d_head
- 64
- الانتباه، كتلة واحدة
- 2,362,368
- الشبكة الأمامية، كتلة واحدة
- 4,722,432
- كتلة كاملة
- 7,087,872
- حصة التضمينات
- 31.6%
- مجموع المعاملات
- 124,439,808
يعمل كلٌّ من الرؤوس الـ12 في 64 بُعدًا، وتكلّف مجتمعةً ما يكلّفه رأس واحد بعرض 768 تمامًا: حرّك مؤشر الرؤوس فلا يتغيّر أي عدد، لأن التقسيم إلى رؤوس إعادةُ تشكيل للإسقاطات الأربعة نفسها. وتحمل الشبكة الأمامية 2.00 ضعف الانتباه المجاور لها في كل كتلة. أما التضمينات، وهي جدول بحث لا حساب، فتبلغ هنا 31.6% من المجموع؛ تنقّل بين الإعدادات المسبقة وراقب هذه الحصة تتراجع كلما طغت الكتل، التي تنمو مع مربع العرض. ولا تضيف طبقة الخرج شيئًا لأنها تعيد استعمال تضمين الرموز.
ز. الكتلة مركّبة
بوضع القطع بترتيب Pre-LayerNorm، تكون كل كتلة طبقتين فرعيتين، كلٌّ منهما مسوّاة أولاً وملفوفة في اختصار:
ولا يتغيّر الشكل أبداً: فالكتلة تحوّل تنسوراً بالشكل إلى آخر بالشكل نفسه تماماً. وهذا الثبات هو ما يتيح للكتل أن تُكدَّس - اثنتا عشرة منها لـGPT-2 الصغير، وثمانٍ وأربعون لـGPT-2 XL، بلا أي تغيير بنيوي آخر. والنموذج الكامل هو التضمينات، ثم كتلة متطابقة، ثم تسوية نهائية وإسقاط إلى حجم المفردات، فيعطي درجة واحدة لكل وحدة للموضع التالي.
ولأن الانتباه في الداخل مُقنَع سببياً، لا يستطيع الموضع الالتفات إلا إلى المواضع ، فيُنتج مرور أمامي واحد تنبّؤاً بالوحدة التالية عند كل موضع دفعةً واحدة - وهو بالضبط ما يجعل هدف التدريب في المقالة التالية كفوءاً.
الخلاصات الأساسية
- الانتباه متعدّد الرؤوس يقسّم التضمين على الرؤوس - لكل رأس في GPT-2 الصغير - فتُتعلَّم أنماط صلة عدة بكلفة رأس واحدة.
- تسوية الطبقة تعيد قياس كل متجه إلى متوسط صفري وتباين واحد عبر بُعد السمات، خلافاً لبُعد الدفعة في تسوية الدفعة.
- استخدم المحوّل الأصلي Post-LayerNorm؛ ويستخدم GPT-2 وما بعده Pre-LayerNorm لتدريب أكثر استقراراً.
- وصلات الاختصار تضيف دخل الطبقة إلى خرجها؛ والمشتقّة الناتجة تُبقي التدرّجات حيّة - 0.0002 مقابل 0.22 عند الطبقة 1 في قياس راشكا.
- شبكة التغذية الأمامية توسّع وتحوي نحو ضعف بارامترات الانتباه المجاور لها.
- يعطي عدّ الكتل والتسوية النهائية والتضمينات 124,439,808 بارامتراً لـGPT-2 الصغير، مطابقاً الـ124 مليوناً المنشورة (وقد صُحّحت لاحقاً الـ117 مليوناً في التقرير الأصلي).
- الكتلة تحفظ شكل دخلها، وهذا بالضبط سبب توسّع المعمارية بالتكديس.
ما التالي
لدينا معمارية بـ124 مليون بارامتر مهيّأة عشوائياً، ولا تتنبّأ بشيء. وتحويلها إلى نموذج يكتب نصاً سلساً، ثم إلى نموذج يتّبع التعليمات، هو موضوع التدريب المسبق والضبط الدقيق.
المراجع والقراءات الإضافية
- Sebastian Raschka, Build a Large Language Model (From Scratch), Manning, 2025· مكتبة مراجع Kudos AI
تُذكر الأعمال المحمية بحقوق النشر للمرجعية فقط ولا تُستضاف هنا؛ يرجى الرجوع إلى الناشر للوصول إليها.