تخطّي إلى المحتوى
Kudos AI
Read in English
بناء نموذج لغة

الانتباه والانتباه الذاتي

الاستعلامات والمفاتيح والقيم مبنيةً من الأساس: لماذا وُجد الانتباه، وكيف يُحسب انتباه الجداء القياسي المقيس، ولماذا يُقسم على جذر البُعد، وكيف يعمل الإقناع السببي، مع حساب كل مصفوفة والتحقّق منها.

قراءة 6 دقيقةKudos AI

المتطلبات المسبقة: الانتشار العكسي والنزول التدرّجي

انتباه الجداء القياسي المقيس مبنياً خطوةً خطوة على مثال المقالة المحلول: مصفوفة الدرجات، والقسمة على جذر اثنين، وتسوية كل صف بدالة softmax، ثم مزج القيم في الخرج.

الانتباه الذاتي هو الآلية التي جعلت نماذج اللغة الحديثة ممكنة. فهي تتيح لكل موضع في متتالية أن ينظر في كل موضع آخر ويقرّر بنفسه أيّها يهمّ. وتبني هذه المقالة تلك الآلية من المشكلة التي تحلّها حتى الحساب المصفوفي الكامل، محلولةً كل رقم على مثال من ثلاث وحدات صغير بما يكفي للتحقّق يدوياً.

أ. المشكلة التي يحلّها الانتباه

فكّر في تحديد مرجع الضمير «هو» في جملة. المعلومة اللازمة تقع في مكان آخر من المتتالية، وموضعها يتوقّف كلياً على الجملة. ولا تستطيع مقاربة النافذة الثابتة التعبير عن «انظر إلى الوراء نحو الكلمة السابقة التي تعتمد عليها هذه فعلاً».

يجعل الانتباه ذلك الاعتماد مُتعلَّماً ومعتمداً على البيانات: إذ يحسب كل موضع، من محتوى الوحدات نفسها، كم يستمدّ من كل موضع آخر.

مستكشف أوزان الانتباه

استعلام واحد ينتبه إلى أربعة أزواج مفتاح/قيمة.

أكبر وزن
29.7%
تشتّت الانتباه
0.990
الرمزq · k÷ √dₖالوزن
the0.400.2022.0%
cat1.000.5029.7%
sat0.920.4628.5%
down0.200.1019.9%

متجه الاستعلام

القسمة على √dₖ

المخرَج - المجموع الموزون لمتجهات القيمة

[0.220, 0.297, 0.285, 0.199]

الانتباه متوسط موزون، والسوفت‑ماكس هو ما يحدّد الأوزان. اخفض درجة الحرارة فيتركّز على رمز واحد، وارفعها فينتشر الانتباه بالتساوي. وتعطيل القسمة على √dₖ يباعد بين الدرجات الخام ويدفع السوفت‑ماكس نحو التشبّع، وهذا بالضبط سبب وجود هذا العامل.

ب. الاستعلامات والمفاتيح والقيم

يُسقَط كل تضمين وحدة دخل xi\mathbf{x}_i إلى ثلاثة متجهات بثلاث مصفوفات أوزان مُتعلَّمة:

qi=Wq xi,ki=Wk xi,vi=Wv xi.\mathbf{q}_i = W_q\,\mathbf{x}_i, \qquad \mathbf{k}_i = W_k\,\mathbf{x}_i, \qquad \mathbf{v}_i = W_v\,\mathbf{x}_i .

وتشبيه قاعدة البيانات ملائم فعلاً:

  • الاستعلام هو ما يبحث عنه هذا الموضع؛
  • والمفتاح هو ما يعلنه كل موضع عن نفسه؛
  • والقيمة هي ما يسهم به كل موضع فعلاً إن التُفت إليه.

ومطابقة استعلام بمفتاح تقيس الصلة؛ والقيم هي ما يُمزج. وفصل «ما يعرّف الوحدة» (المفتاح) عن «ما تسهم به» (القيمة) هو ما يمنح الآلية مرونتها - وWq,Wk,WvW_q, W_k, W_v تُتعلَّم بالمرور الخلفي من الانتشار العكسي والنزول التدرّجي.

ج. انتباه الجداء القياسي المقيس

الآلية كلها، لكل المواضع دفعةً واحدة:

Attention⁡(Q,K,V)=softmax⁡ ⁣(QK⊤dk)V.\operatorname{Attention}(Q, K, V) = \operatorname{softmax}\!\left(\frac{QK^{\top}}{\sqrt{d_k}}\right)V .

اقرأها في أربع خطوات: سجّل درجة كل استعلام مقابل كل مفتاح (QK⊤QK^\top)، وقِسها على dk\sqrt{d_k}، وسوِّ كل صف ليجمع إلى 1 (softmax)، ثم خذ متوسط القيم مرجّحاً بذلك.

ويلاحظ راشكا أن هذا يُسمّى انتباه الجداء القياسي المقيس، وأنه الآلية المستخدَمة في المحوّل الأصلي وفي عائلة GPT.

د. حلّها بالكامل

ثلاث وحدات، وdk=2d_k = 2. ولإبقاء الحساب قابلاً للتحقّق نأخذ QQ وKK مُسقَطَين بالفعل ومتساويين، مع قيم متمايزة:

Q=K=[100111],V=[100231].Q = K = \begin{bmatrix}1 & 0\\ 0 & 1\\ 1 & 1\end{bmatrix}, \qquad V = \begin{bmatrix}1 & 0\\ 0 & 2\\ 3 & 1\end{bmatrix} .

الخطوة 1 - درجات الانتباه. المدخلة (i,j)(i,j) هي qi⋅kj\mathbf{q}_i \cdot \mathbf{k}_j:

QK⊤=[101011112].QK^{\top} = \begin{bmatrix}1 & 0 & 1\\ 0 & 1 & 1\\ 1 & 1 & 2\end{bmatrix} .

تحقّق من واحدة: الصف 3 العمود 3 هو q3⋅k3=(1)(1)+(1)(1)=2\mathbf{q}_3\cdot\mathbf{k}_3 = (1)(1)+(1)(1) = 2، وهي أكبر درجة في المصفوفة - فاستعلام الوحدة 3 يطابق مفتاحها هي أفضل مطابقة.

الخطوة 2 - القياس. اقسم على dk=2≈1.4142\sqrt{d_k} = \sqrt2 \approx 1.4142:

QK⊤2=[0.707100.707100.70710.70710.70710.70711.4142].\frac{QK^\top}{\sqrt2} = \begin{bmatrix}0.7071 & 0 & 0.7071\\ 0 & 0.7071 & 0.7071\\ 0.7071 & 0.7071 & 1.4142\end{bmatrix} .

الخطوة 3 - softmax لكل صف. في الصف 1، يعطي الأُسّ e0.7071=2.0281e^{0.7071} = 2.0281، وe0=1e^{0} = 1، وe0.7071=2.0281e^{0.7071} = 2.0281، ومجموعها 5.05625.0562. وبالقسمة:

[2.02815.0562, 15.0562, 2.02815.0562]=[0.4011, 0.1978, 0.4011].\left[\tfrac{2.0281}{5.0562},\ \tfrac{1}{5.0562},\ \tfrac{2.0281}{5.0562}\right] = [0.4011,\ 0.1978,\ 0.4011] .

الصفوف الثلاثة:

A=[0.40110.19780.40110.19780.40110.40110.24830.24830.5035].A = \begin{bmatrix} 0.4011 & 0.1978 & 0.4011\\ 0.1978 & 0.4011 & 0.4011\\ 0.2483 & 0.2483 & 0.5035 \end{bmatrix} .

يجمع كل صف إلى 1 - فهذه ترجيحات حقيقية. ويضع الصف 3 وزن 0.50350.5035 على الموضع 3، مطابقاً أقوى درجة من الخطوة 1.

الخطوة 4 - القيم المرجّحة. اضرب AA في VV. الصف 1، المركّبة الأولى:

0.4011(1)+0.1978(0)+0.4011(3)=0.4011+1.2033=1.6044.0.4011(1) + 0.1978(0) + 0.4011(3) = 0.4011 + 1.2033 = 1.6044 . Attention⁡(Q,K,V)=[1.60440.79671.40111.20331.75871.0000].\operatorname{Attention}(Q,K,V) = \begin{bmatrix} 1.6044 & 0.7967\\ 1.4011 & 1.2033\\ 1.7587 & 1.0000 \end{bmatrix} .

وكل صف خرج مزيج من متجهات القيم الثلاثة، ممزوجة بصلة مُتعلَّمة.

Python

يعمل في متصفحك. تُنزّل عملية التشغيل الأولى بيئة بايثون (~10 ميغابايت)، ثم تُخزّن مؤقتًا.

يعيد تشغيله إنتاج المصفوفتين ويطبع matches: True True.

هـ. لماذا القسمة على جذر البُعد

القياس ليس تجميلاً. فالجداء القياسي لمتجهين ذوي بُعد dkd_k يجمع dkd_k حدّاً، فينمو مقداره مع dkd_k - بمقدار dk\sqrt{d_k} تقريباً لمركّبات مستقلة وحيدة التباين.

والدرجات الكبيرة مشكلة لدالة softmax. فمع كبر المدخلات تقترب softmax من متجه أحادي: وزن قريب من 1 والبقية قرب 0. وفي ذلك النظام المشبَع تكون تدرّجاتها ضئيلة جداً، فـيتعثّر التعلّم. والقسمة على dk\sqrt{d_k} تُبقي الدرجات في مدى تظلّ فيه softmax حسّاسة وتظلّ التدرّجات متدفّقة.

ومع dk=64d_k = 64 تكون الدرجات غير المقيسة أكبر نحو ثماني مرات من المقيسة - وهو كافٍ بيسر للإشباع.

الشكل أدناه هو الرأس نفسه، وفيه أمران يمكنك تحريكهما. فإدارة استعلام الرمز الثالث تُديره في المستوي الذي تعيش فيه مفاتيحه، ولا يستجيب سوى الصف الثالث من المصفوفة: أما المفاتيح والقيم فلا تتزحزح، وهذا بالضبط ما يجعل الاستعلام استعلامًا. ثم ارفع البُعد. مع وجود القسمة لا يحدث شيء البتة: فالمصفوفة عند 512 بُعدًا هي المصفوفة أعلاه حتى آخر منزلة عشرية. أوقف القسمة ثم ارفع البُعد من جديد، وراقب الصف وهو ينهار على رمز واحد. وهذا الانهيار هو كل سبب وجود الجذر التربيعي في الصيغة.

تفاعلي: وجّه استعلامًا ثم غيّر البُعد

يتحرك استعلام الرمز الثالث وحده. أما المفاتيح والقيم فتبقى كما وضعتها الدرس.

أوزان الانتباه، صفًا صفًا

الرمز 10.40110.19780.4011الرمز 20.19780.40110.4011الرمز 30.24830.24830.5035الرمز 1الرمز 2الرمز 3
المقسوم عليه
1.4142
أكبر وزن
0.5035
انتشار الصف 3
1.496 بت
مخرج الصف 3
1.76, 1.00

مع وجود القسمة لا تعتمد مصفوفة الانتباه على d_k إطلاقًا: اسحب البُعد من 2 إلى 512 ولن يتزحزح وزن واحد. وهذه الثبوتية هي كل مضمون الجذر التربيعي: فهو يُبقي الدرجات المقسومة بحجم ثابت بينما تنمو الجداءات القياسية الخام مثل sqrt(d_k)، فيبقى الـsoftmax في المدى الذي ما زال فيه تدرّج يُعاد. والصف الثالث منتشر على 1.496 بت من أصل 1.585 ممكنة.

و. الإقناع السببي

النموذج الذي يولّد النص من اليسار إلى اليمين يجب ألا يرى المستقبل. فلو استطاع الموضع 2 الالتفات إلى الموضع 3، لدُرّب النموذج ومعه الإجابة ولأخفق وقت التوليد، حين لا يكون المستقبل موجوداً فعلاً.

ويمنع الانتباه السببي ذلك بالإقناع: فقبل softmax، تُضبَط كل درجة عند j>ij > i على −∞-\infty، فيكون e−∞=0e^{-\infty} = 0 وتنال تلك المواضع وزناً صفرياً. وتُعاد تسوية الأوزان الباقية لتجمع إلى 1.

وبتطبيق ذلك على درجاتنا المقيسة:

Acausal=[1.0000000.33020.669800.24830.24830.5035].A_{\text{causal}} = \begin{bmatrix} 1.0000 & 0 & 0\\ 0.3302 & 0.6698 & 0\\ 0.2483 & 0.2483 & 0.5035 \end{bmatrix} .

يلتفت الصف 1 إلى نفسه فقط، فيُجبَر وزنه على 11. ويتوزّع الصف 2 بين الموضعين 1 و2 - ولاحظ أن هاتين ليستا قيمتي الصف 2 غير المُقنَعتين 0.19780.1978 و0.40110.4011؛ فمع إزالة الموضع 3، تُعاد تسوية الباقيتين بمجموعهما هما، 0.1978+0.4011=0.59890.1978 + 0.4011 = 0.5989، فتعطيان 0.33020.3302 و0.66980.6698. (وحمل القيم المقرّبة يدوياً يعطي 0.33030.3303 و0.66970.6697؛ والأرقام أعلاه من الحساب بالدقة الكاملة.) أما الصف 3، الذي لم يُسمح له قط برؤية ما بعد الموضع 3، فلم يتغيّر.

ويلاحظ راشكا أيضاً أن قناع إسقاط عشوائي (dropout) كثيراً ما يُطبَّق على أوزان الانتباه أثناء التدريب، للحدّ من فرط الملاءمة.

ز. رؤوس متعدّدة

يلتقط حساب انتباه واحد نوعاً واحداً من العلاقات. أما الانتباه متعدّد الرؤوس فيشغّل عدة حسابات بالتوازي بـWq,Wk,WvW_q, W_k, W_v منفصلة، ثم يسلسل المخرجات ويُسقطها ثانيةً إلى الأسفل. ويمكن للرؤوس المختلفة أن تتخصّص - رأس يتتبّع الاعتماديات النحوية، وآخر روابط موضوعية أبعد مدى - ولا يُجبَر النموذج على حشر كل علاقة في ترجيح واحد.

الخلاصات الأساسية

  • يتيح الانتباه لكل موضع أن يقرّر، من المحتوى، كم يستمدّ من كل موضع آخر.
  • تُسقَط كل وحدة إلى استعلام ومفتاح وقيمة؛ فتُطابَق الاستعلامات بالمفاتيح، والقيم هي ما يُمزج.
  • الآلية هي softmax⁡(QK⊤/dk)V\operatorname{softmax}(QK^\top/\sqrt{d_k})V - درجة، فقياس، فتسوية، فمزج.
  • المقسوم عليه dk\sqrt{d_k} يمنع إشباع softmax ويُبقي التدرّجات صالحة.
  • الإقناع السببي يضبط درجات المستقبل على −∞-\infty فتُعاد تسوية الأوزان على الماضي وحده.
  • الانتباه متعدّد الرؤوس يشغّل عدة نسخ بالتوازي لالتقاط علاقات مختلفة.

ما التالي

الانتباه هو لبّ المحوّل، لكن نموذج اللغة العامل يحتاج أيضاً إلى تقطيع وتضمينات ومعلومات موضعية وكتل تغذية أمامية وهدف تدريب. وتُغطّى هذه الأجزاء عبر بقية هذا المسار، أما النظير في الذكاء الاصطناعي الكلاسيكي لفكرة «ابحث في فضاء الاحتمالات» فيُطوَّر في البحث التنافسي والمينيماكس.

المراجع والقراءات الإضافية

  • Sebastian Raschka, Build a Large Language Model (From Scratch), Manning, 2025· مكتبة مراجع Kudos AI

تُذكر الأعمال المحمية بحقوق النشر للمرجعية فقط ولا تُستضاف هنا؛ يرجى الرجوع إلى الناشر للوصول إليها.

قراءات ذات صلة

قراءة 7 دقيقةبناء نموذج لغة

معمارية المحوّل

تركيب GPT من الانتباه: إسقاطات متعدّدة الرؤوس، وتسوية الطبقة محلولةً يدوياً، ولماذا تنقذ وصلات الاختصار التدرّج، وتوسّع شبكة التغذية الأمامية أربع مرات، وعدّ بارامترات يعيد إنتاج GPT-2 الصغير عند 124 مليوناً بالضبط.

الذكاء الاصطناعي التوليديالتعلّم العميقمعالجة اللغات الطبيعية
قراءة 6 دقيقةبناء نموذج لغة

التقطيع إلى وحدات والتضمينات

كيف يصير النص أرقاماً يستطيع النموذج التدرّب عليها: بناء مفردات، ولماذا لا يحتاج ترميز أزواج البايتات إلى وحدة «مجهول» قط، وطبقة التضمين بوصفها استرجاعاً يمكن البرهان على أنه متجه أحادي مضروب في مصفوفة، ولماذا يجب إعادة حقن الموضع يدوياً.

الذكاء الاصطناعي التوليديمعالجة اللغات الطبيعيةالتعلّم العميق
قراءة 6 دقيقةبناء نموذج لغة

التدريب المسبق والضبط الدقيق

كيف يحوّل التنبّؤ بالكلمة التالية نصاً غير موسوم إلى إشراف، ولماذا الإنتروبيا المتقاطعة ليست إلا سالب متوسط لوغاريتم الاحتمال، وماذا تقيس الحيرة فعلاً، ولماذا يظلّ نموذج يُكمل النص بطلاقة عاجزاً عن اتّباع تعليمة.

الذكاء الاصطناعي التوليديالتعلّم العميق
← العودة إلى كل المقالات