#attention — نماذج LLM وTransformers
الانتباه الذاتي: كل كلمة تنظر إلى الأخريات.
ما ستُجرّبه
- مرحبًا بك في #attention. في الأسفل، الرموز الاثنا عشر لجملة «the small black cat sleeps on the couch because it is tired». الرمز المرفوع، black، هو الاستعلام (query): الأقواس الوردية الخارجة منه تصل إلى كل كلمة، وسُمكها هو وزن الانتباه (attention weight) — القوس الأسمك يتّجه إلى «cat»، وهو الاسم الذي تصفه الصفة. هذه هي الآلية في قلب المحوّلات (transformers): كل كلمة تُنشئ استعلامًا
Q، وتقارنه (جداء داخلي) بمفتاحKكل كلمة، ثم يحوّل softmax هذه النتائج إلى أوزان مجموعها 1، ويكون مخرج الكلمة هو المتوسّط الموزون للقيمV. سؤال ملموس: كيف يعرف النموذج أن «it» تعود على القطة لا على الأريكة؟ إنه ينظر. - دَع الضمير ينظر: اكتب
/query it. - لـ softmax حرارة T: تُقسَم النتائج على T قبل الأس. اخفضها:
/temperature 0.3. - الآن العكس:
/temperature 3. - كل رمز يصبح بدوره استعلامًا: يعطي ذلك مصفوفة n × n. أعِد الضبط أولًا بـ
/temperature 1، ثم انتقل إلى عرض المصفوفة:/view matrix. - يولّد نموذج اللغة من اليسار إلى اليمين: عندما يحسب الكلمة رقم 5، لا وجود بعدُ للكلمات من 6 إلى 12. نفرض ذلك عبر القناع السببي (causal mask):
/mask on. - رأس واحد = علاقة واحدة. تكدّس المحوّلات عدة رؤوس بالتوازي:
/head all. - دورك:
/head 2ثم/query sleeps(الفعل يبحث عن فاعله)،/example agreement(«she» تنظر إلى «woman»، و«him» ستنظر إلى «man»)،/view arcsللعودة إلى الأقواس،/detail cat(الحساب خطوة بخطوة: q·k, ÷√d, ÷T, exp, تسوية)،/seed 7(تتحرّك الأرقام وتبقى العلاقات)،/resetللبدء من جديد. المحطّة التالية: قناة #transformer-block، حيث يُكدَّس هذا الانتباه مع طبقات كثيفة وروابط بواقية.
أوامر القناة
/sentence <word>— استبدل الجملة المُحلَّلة (السطر كاملًا؛ من 2 إلى 12 رمزًا)./query <word>— اختر الرمز الذي «ينظر» إلى الآخرين (كلمة من الجملة، أو رقمها)./head <1|2|3|4|all>— اعرض رأس انتباه واحدًا، أو الرؤوس الأربعة مكدَّسة./temperature <T=0.1..5>— حرارة softmax: منخفضة = انتباه حادّ، مرتفعة = مخفَّف./mask <on|off>— القناع السببي: لا يرى كل رمز إلا الرموز التي تسبقه (ونفسه)./view <arcs|matrix>— أقواس من رمز الاستعلام، أو مصفوفة الانتباه الكاملة./example <agreement|pronoun|long>— حمّل جملة جاهزة مع استعلامها الأكثر دلالة./seed <n=1..999>— غيّر الضوضاء الحتمية للتضمينات وإسقاطات Q/K/V./detail <word>— فكّك الوزن بين الاستعلام وهذا الرمز: q·k، ÷√d، ÷T، exp، تسوية./reset— العودة إلى الجملة الافتراضية، الاستعلام «black»، الرأس 1، T = 1، قناع مُطفأ، عرض الأقواس.
المسرد
- الانتباه
- عملية تسمح لكل عنصر من متتالية بأن يوزن الآخرين حسب الصِّلة، ثم يجمع معلوماتهم. في المشهد: الأقواس الخارجة من رمز الاستعلام، وتكون أسمك نحو الكلمات التي تهمّه.
- استعلام، مفتاح، قيمة (Q, K, V)
- ثلاثة إسقاطات خطية لنفس متجه الدخل. يُعبّر الاستعلام عمّا تبحث عنه الكلمة، ويُعبّر المفتاح عمّا تعرضه كل كلمة، وتُعبّر القيمة عمّا تنقله إن نُظر إليها. تقيس النتيجة q·k مدى التوافق بين المطلوب والمعروض.
- softmax والحرارة
- يحوّل نتائج اعتباطية إلى أوزان موجبة مجموعها 1: exp(s_j / T) / Σ exp(s_k / T). تُضخِّم الحرارة المنخفضة T الفروق (انتباه حادّ)، والمرتفعة تسحقها (انتباه مخفَّف، قريب من المنتظم).
- الانتباه بالجداء المُقيَّس (scaled dot-product)
- softmax(Q·Kᵀ / √d_k)·V: تُقسَم النتائج على الجذر التربيعي لبُعد المفاتيح (√4 = 2 هنا). بدون هذا التقييس، في الأبعاد العالية تصبح الجداءات الداخلية ضخمة ويتشبّع softmax، فيقتل التدرّج.
- الانتباه متعدّد الرؤوس
- عدة انتباهات تُحسَب بالتوازي بإسقاطات Q و K و V مختلفة، ثم توصَل وتُسقَط. يمكن لكل رأس أن يتخصّص في علاقة: مطابقة، فاعل-فعل، معنى، موضع…
/head allيكدّسها معًا. - القناع السببي
- يضع النتائج المتّجهة إلى الرموز المستقبلية إلى −∞ قبل softmax: يصبح وزنها 0 وتصير المصفوفة مثلثية سُفلى. هذا ما يسمح لوحدة فكّ الترميز (GPT) بأن تولّد كلمة بكلمة دون الغش بالنظر إلى الأمام.
- الانتباه الذاتي مقابل الانتباه المتقاطع
- في الانتباه الذاتي، تأتي الاستعلامات والمفاتيح والقيم من المتتالية نفسها: الجملة تنظر إلى نفسها (هذه القناة). أما في الانتباه المتقاطع، فتأتي الاستعلامات من متتالية (الترجمة الجاري توليدها) والمفاتيح/القيم من أخرى (الجملة المصدر).
- مصفوفة الانتباه