انتقل إلى المحتوى الرئيسي

جارٍ تحميل المختبر المرئي…

#transformer-blockنماذج LLM وTransformers

كتلة المحوّل: الانتباه، الوصلات التجاوزية، التسوية، شبكة FFN.

ما ستُجرّبه

  1. مرحبًا بك في #transformer-block. على الشاشة، محوّل مصغَّر مرئي بمقطع طولي: في الأسفل، الصندوق الأصفر لـالتضمينات + المواضع؛ فوقه، L = 2 كتلتان متراكمتان، كلٌّ منهما مؤلَّفة من طبقة فرعية للـانتباه (زرقاء) وشبكة FFN (وردية)، محاطتين بشريط رمادي للتسوية ومن اليسار قوس أصفر: الوصلة التجاوزية (residual). في الأعلى، المخرَج الأخضر. الرموز الستّة (tokens) لجملة «القط يراقب الكلب و القط ينام» خرزات موضوعة عند الدخل: حجمها يتبع معيار متّجهها (البُعد d = 8)، ولونها يتبع اتّجاهه. نموذج GPT-2 هو بالضبط هذا المقطع مكرَّرًا 12 مرّة عند d = 768؛ وGPT-3، 96 مرّة عند d = 12,288. كلّ ذلك يتّسع داخل هذه الكتلة.
  2. ادفع الجملة عبر المكدَّس: /forward. تصعد الخرزات طبقةً فرعيّةً تلو الأخرى؛ على اليمين، يظهر مخطّط المعيار مع مرورها.
  3. اقطع الوصلة التجاوزية: /residual off. الآن كلّ طبقة فرعية تستبدل المتّجه بدل تصحيحه.
  4. أزل التسوية أيضًا: /norm none. لا شرائط رمادية بعد الآن: لا شيء يُثبّت مقياس المتّجه.
  5. أعِد وصل التجاوز دون استعادة التسوية: /residual on.
  6. أعد التسوية القبلية: /norm pre. يعود الشريط الرمادي تحت كلّ طبقة فرعية: المتّجه المسوَّى هو الذي يدخل الانتباه وFFN، أمّا تدفّق التجاوز فيبقى سليمًا.
  7. أسقط الترميز الموضعي: /position none. تدخل التضمينات وحدها، دون أن تعرف موقعها.
  8. كدِّس المزيد: /layers 6. اثنتا عشرة طبقة فرعية، ويتضاعف عدّاد المعاملات في الأعلى ثلاث مرّات: العدد خطّي بـ L (وتربيعي بـ d).
  9. دورك: /params لتفصيل المعاملات (الصيغة والحدود)، /norm post لوصفة 2017، /position learned لجدول مواضع متعلَّم كما في GPT-2، /ffn 64 لتوسيع FFN، /dimension 16 لمضاعفة d (الانتباه، تربيعي بـ d، × 4)، /sentence الكلب يراقب القط و الكلب ينام لتغيير النصّ، /step 2 لإيقاف الخرزات بعد FFN للكتلة 1، /reset للبدء من جديد. المحطّة التالية: قناة #generation-temperature، حيث يصبح رأس المخرَج توزيعًا احتماليًا على المفردات فتُختار الكلمة التالية.

أوامر القناة

  • /forwardإعادة سحب الأوزان وإعادة تشغيل الجملة طبقةً فرعيّةً تلو الأخرى.
  • /layers <1..6>عدد L من الكتل المتراكمة.
  • /position <sine|learned|none>الترميز الموضعي المُضاف إلى التضمينات: جيوب، جدول متعلَّم، أو بدون.
  • /residual <on|off>تفعيل الوصلة التجاوزية حول كلّ طبقة فرعية أو تعطيلها.
  • /norm <pre|post|none>وضع تسوية الطبقة قبل (pre)، بعد (post) أو لا شيء.
  • /ffn <8..64>عرض w للطبقة المخفيّة للتغذية الأمامية.
  • /dimension <8|16>البُعد d للمتّجهات (8 أو 16).
  • /sentence <text>استبدال الجملة المُنتشِرة (السطر كاملًا، من 2 إلى 8 كلمات).
  • /step <n=0..13>إيقاف الخرزات عند المستوى n: 0 = الدخل، 1..2L = الطبقات الفرعية، 2L+1 = المخرَج.
  • /paramsتفصيل عدد المعاملات.
  • /resetالعودة إلى L = 2، d = 8، w = 32، مواضع جيبية، تجاوز مُفعَّل، تسوية قبلية.

المسرد

كتلة المحوّل (transformer block)
الوحدة التي تتكرّر L مرّة داخل المحوّل: طبقة فرعية للـانتباه متعدّد الرؤوس ثم شبكة تغذية أماميّة، كلٌّ منهما محاط بوصلة تجاوزية وتسوية طبقة. تدخل التضمينات من الأسفل، ويقرأ رأس المخرَج آخر كتلة.
الترميز الموضعي (positional encoding)
متّجه يُضاف إلى تضمين كلّ رمز ليخبره بموقعه: جيوب وجيوب تمام بترددات متناقصة (2017) أو جدول متعلَّم (GPT-2). بدونه، لا يرى الانتباه سوى كيس من الكلمات ويتقاسم الرمزان المتطابقان التمثيل نفسه.
الوصلة التجاوزية (residual connection)
اختصار يُضيف دخل الطبقة الفرعية إلى مخرَجها: x + f(x). يحتفظ التدفّق بالمعلومة الأصليّة، ولا تتعلّم كلّ طبقة فرعية سوى تصحيح، ويتدفّق التدرّج للخلف دون أن ينكمش. بدونها، تنهار تمثيلات الرموز بعضها على بعض.
تسوية الطبقة (layer normalization)
تُعيد توسيط وتحجيم متّجه كلّ رمز على مكوّناته الـ d (متوسّط 0، تباين 1، أي معيار sqrt(d))، مع كسب وتحيّز يُتعلَّمان. تُثبِّت مقياس الإشارة عند أيّ عمق وتُثبِّت التدريب.
التسوية القبلية مقابل البعدية (pre-norm vs post-norm)
أين تُوضع التسوية: القبلية x + f(LN(x)) تُسوّي دخل الطبقة الفرعية وتترك تدفّق التجاوز سليمًا (GPT-2 وLLaMA)؛ البعدية LN(x + f(x)) تُسوّي بعد الجمع (محوّل 2017 وBERT)، أدقّ في التدريب على العمق.
شبكة التغذية الأماميّة (feed-forward network)
بيرسبترون صغير يُطبَّق على كلّ رمز على حدة داخل كلّ كتلة: W2 · GELU(W1 · x)، بطبقة مخفيّة عرضها w (غالبًا 4d). فيها يخزّن النموذج معظم معرفته، وتحمل ثلثَي معاملات الكتلة.
الانتباه متعدّد الرؤوس (multi-head attention)
انتباه يُحسب h مرّات على التوازي في فضاءات فرعيّة ببُعد d/h، كلّ رأس بمصفوفاته Q وK وV الخاصّة، ثم تُدمج النتائج وتُسقَط عبر مصفوفة مخرَج. يمكن لكلّ رأس تتبّع علاقة مختلفة (تركيب، مرجع مشترك، موضع).
المُشفِّر مقابل الفكّاك (encoder vs decoder)
طريقتان لتكديس الكتل: المُشفِّر (BERT، هذه القناة) يسمح لكلّ رمز بالنظر إلى الجملة كاملة؛ الفكّاك (GPT) يُضيف قناعًا سببيًّا — لا يرى الرمز إلّا ما قبله — للتنبّؤ بالكلمة التالية. جمع محوّل 2017 بينهما للترجمة.
العمق (depth)
عدد L من الكتل المتراكمة: 12 في GPT-2 الصغير، 96 في GPT-3، 80 في LLaMA-2 70B. الوصلات التجاوزية والتسوية هي ما يجعل الذهاب إلى هذا العمق ممكنًا دون أن تنفجر الإشارة أو تخبو من كتلة إلى أخرى.
عدد المعاملات (parameter count)
حجم النموذج: لكلّ كتلة، تقريبًا 4d² + 2dw (انتباه + FFN، أي 12d² إذا كان w = 4d)، مضروبًا في L، مع V×d للتضمينات. خطّي بـ L، تربيعي بـ d: مضاعفة العرض تكلّف أربع مرّات ضعف مضاعفة العمق.

قنوات أخرى في نماذج LLM وTransformers

  • #tokenizationالتقطيع وBPE: كيف يُقطِّع نموذج LLM النص.
  • #attentionالانتباه الذاتي: كل كلمة تنظر إلى الأخريات.
  • #transformer-blockكتلة المحوّل: الانتباه، الوصلات التجاوزية، التسوية، شبكة FFN.
  • #generation-temperatureالتوليد: الحرارة وtop-k وtop-p.
  • #ragRAG: الإجابة انطلاقًا من وثائقك.
  • #alignment-rlhfالمحاذاة وRLHF: تعلّم ما يفضّله البشر.