الرئيسيةمن أناالدوراتالمدونةسوق الأوامرالمناهج والباقاتالشركاء

دورات عربية متخصصة في التقنية والبرمجة والذكاء الاصطناعي.

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

المنصة

  • الرئيسية
  • من أنا
  • الدورات
  • المناهج والباقات
  • سوق الأوامر
  • المدونة

الدعم

  • الأسئلة الشائعة
  • تواصل معنا
  • سياسة الخصوصية
  • شروط استخدام التطبيق
  • سياسة الاسترجاع

© 2026 أحمد حايس. جميع الحقوق محفوظة.

الرئيسيةالدوراتالمناهجالمدونةالدخول
الذكاء الاصطناعي

آلية الانتباه للمبتدئ: إزاي الذكاء الاصطناعي بيعرف الكلمة بتشير لمين

مبتدئ20 يوليو 20264 دقائق قراءة
آلية الانتباه للمبتدئ: إزاي الذكاء الاصطناعي بيعرف الكلمة بتشير لمين

المستوى: مبتدئ — المقال ده لأي حد سمع عن ChatGPT وعايز يفهم القطعة الأساسية اللي بتخلّيه "يفهم" الجملة. مفيش شرط تعرف رياضيات متقدمة.

آلية الانتباه (Attention): إزاي الذكاء الاصطناعي بيعرف الكلمة بتشير لمين

بعد ما تخلّص المقال ده هتفهم القطعة اللي بنى عليها ChatGPT وClaude وكل نماذج اللغة الحديثة. اسمها Attention، وهي السبب إن النموذج بيربط الكلمات ببعض صح بدل ما يقراها واحدة واحدة.

المشكلة باختصار

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

رسم توضيحي لآلية الانتباه Attention يربط كلمة it بكلمة cat في جملة إنجليزية بخطوط بأوزان مختلفة

الفكرة بمثال بسيط: الحفلة الصاخبة

تخيّل إنك في حفلة زحمة وصوت عالي. ناس كتير بتتكلم في وقت واحد. فجأة حد في الطرف التاني نطق اسمك. هتلاقي دماغك ركّز على الصوت ده لوحده وفلتر باقي الضوضاء.

ده بالظبط اللي بيعمله الانتباه. لكل كلمة، النموذج بيقرّر: مين الكلمات التانية المهمة ليّا دلوقتي؟ وبيدّي كل كلمة "وزن". الكلمة المهمة بتاخد وزن عالي، والباقي وزن قليل. كلمة "أنها" بتدّي وزن كبير لـ "القطة"، ووزن صغير لباقي الكلمات.

الشرح العلمي: Query و Key و Value

دلوقتي بعد ما وضحت الصورة، نبقى دقيقين. كل كلمة النموذج بيحوّلها لـ 3 حاجات (كلها قوائم أرقام):

  • Query (استعلام): يعني "أنا بدوّر على إيه؟".
  • Key (مفتاح): يعني "أنا بعرض إيه للكلمات التانية؟".
  • Value (قيمة): يعني "المعلومة اللي هقدّمها لو حد ركّز عليّا".

النموذج بيضرب الـ Query بتاع كل كلمة في الـ Key بتاع كل كلمة تانية. الناتج بيقوله قد إيه الكلمتين مرتبطين. بعدها بيمرّر النتايج على دالة اسمها softmax علشان تحوّلها لأوزان مجموعها 1. الأوزان دي هي "الانتباه". أخيرًا بيجمع الـ Values مضروبة في الأوزان دي، فيطلع تمثيل جديد لكل كلمة "شايف" سياقها كله. لأن كل كلمة بتبص على كل الكلمات في نفس الجملة، الآلية دي اسمها Self-Attention.

مثال تنفيذي: انتباه في أقل من 20 سطر

الكود ده بيحسب self-attention بسيط بـ NumPy. انسخه وشغّله زي ما هو:

Python
import numpy as np

def softmax(x):
    e = np.exp(x - x.max(axis=-1, keepdims=True))
    return e / e.sum(axis=-1, keepdims=True)

# 4 كلمات، كل كلمة متمثّلة بـ 3 أرقام (تمثيل مبسّط)
X = np.array([
    [1.0, 0.0, 1.0],   # القطة
    [0.9, 0.1, 0.8],   # التعبانة
    [0.2, 1.0, 0.1],   # قعدت
    [1.0, 0.1, 0.9],   # أنها
])

d = X.shape[1]
Q, K, V = X, X, X                      # في الواقع بتتضرب في مصفوفات متعلَّمة
scores = Q @ K.T / np.sqrt(d)          # قد إيه كل كلمة قريبة من التانية
weights = softmax(scores)              # أوزان الانتباه (مجموع كل صف = 1)
output = weights @ V                   # التمثيل الجديد مع السياق

print(np.round(weights, 2))
# صف "أنها" هيدّي أعلى وزن لـ "القطة" لأن تمثيلهم متقارب

لو غيّرت أرقام كلمة "أنها" تبقى قريبة من "قعدت"، هتلاقي الوزن اتنقل. ده بيوريك إن الانتباه مش ثابت، بيتغيّر حسب المحتوى.

ليه ده مهم عمليًا؟ وبأرقام

الآلية دي اتقدّمت في ورقة "Attention Is All You Need" سنة 2017، وهي أساس معمارية الترانسفورمر اللي شغّالة عليها كل النماذج الكبيرة النهارده. مثال واقعي: لو عندك جملة فيها 1000 كلمة، النموذج بيحسب علاقة كل كلمة بكل كلمة، يعني حوالي 1,000,000 عملية مقارنة. وعلشان يمسك أنواع علاقات مختلفة في نفس الوقت (نحوية، معنوية)، بيستخدم كذا "رأس انتباه" بالتوازي، ممكن يوصلوا 96 رأس في النماذج الكبيرة.

الـ trade-off اللي لازم تعرفه

الانتباه الكامل قوي، لكن تكلفته بتكبر بمربّع طول النص. لو ضاعفت عدد الكلمات من 1000 لـ 2000، الحسابات مابتزدش الضعف، بتزيد 4 أضعاف تقريبًا (من مليون لـ 4 مليون). يعني بتكسب فهم دقيق للسياق، بتخسر سرعة وذاكرة كل ما النص يطول. عشان كده ظهرت حلول زي FlashAttention والانتباه المتناثر (Sparse Attention) علشان يخفّفوا التكلفة دي.

متى لا تستخدم الانتباه الكامل

لو بتشتغل على نصوص طويلة جدًا (100 ألف كلمة أو أكتر) في كل استدعاء، الانتباه الكامل هيبقى غالي ومكلّف على الذاكرة. هنا الأنسب حلول انتباه خطّي أو متناثر. وكمان لو مهمتك بسيطة جدًا وبتعتمد على أنماط قصيرة وثابتة، ممكن موديل أخف (زي شبكة CNN صغيرة) يكفّي من غير تعقيد الترانسفورمر. الافتراض هنا إنك بتوازن بين الدقة والتكلفة.

الخطوة التالية

افتح محرّر Python وشغّل الكود اللي فوق. بعدها غيّر أرقام أي كلمة وشوف مصفوفة الأوزان بتتغيّر إزاي. لو فهمت ليه صف كلمة معيّنة بيدّي وزنه لكلمة تانية، تبقى مسكت جوهر الترانسفورمر كله.

المصادر

  • Vaswani et al., "Attention Is All You Need", 2017 — arxiv.org/abs/1706.03762 (الورقة الأصلية للترانسفورمر وآلية الانتباه).
  • Jay Alammar, "The Illustrated Transformer" — jalammar.github.io/illustrated-transformer (شرح مصوّر لـ Query/Key/Value).
  • Dao et al., "FlashAttention", 2022 — arxiv.org/abs/2205.14135 (تخفيض تكلفة الانتباه على الذاكرة).
  • توثيق softmax في NumPy/الرياضيات — en.wikipedia.org/wiki/Softmax_function.

هل استفدت من المقال؟

اطّلع على المزيد من المقالات والدروس المجانية من نفس المسار المعرفي.

تصفّح المدونة