اعلان منتصف المقال

الأحد، 14 يونيو 2026

6 أدلة أساسية لفهم كيف تعمل نماذج اللغة الكبيرة LLM

6 أدلة أساسية لفهم كيف تعمل نماذج اللغة الكبيرة
Deep Dive — Large Language Models

6 أدلة أساسية لفهم
كيف تعمل نماذج اللغة الكبيرة

رحلة تقنية من الـ Tokens الأولى إلى الإجابة النهائية — بدون لغو، كل شيء بالتفصيل.

ابدأ القراءة

الدليل 01 / 06

ما هو الـ Token؟

الـ Token هو الوحدة الأساسية التي يفهمها النموذج. ليس حرفًا وليس كلمة — بل شيء بينهما.

كلمة كاملة (Word-level) جزء من كلمة (Subword / BPE) حرف (Character-level)
النص الأصلي
"الذكاء الاصطناعي"
Tokenization
خوارزمية الـ Tokenizer
Token IDs
[42, 1089, 3521, 77]
كيف يفكر النموذج في الـ Token

النموذج لا يرى النص كنص — يراه كمتتالية أرقام. كل token له رقم تعريف (ID) فريد في مفردات النموذج (Vocabulary). كلمة واحدة قد تكون token واحد، أو عدة tokens. هذا يعتمد على خوارزمية الـ Tokenizer المستخدمة.

مثال توضيحي: تقسيم الجملة
الذكاء الاصطناعي يغير العالم
un believe able !
1 token ≈
≈ 4 أحرف إنجليزي أو ¾ كلمة
~100K
حجم مفردات GPT-4
50-150K
حجم مفردات Llama 3
BPE
خوارزمية التقسيم الأشهر
ملاحظة مهمة: اللغات المختلفة تحتاج عددًا مختلفًا من الـ Tokens لنفس النص. النص الإنجليزي عادةً أكثر كفاءة (كلمات أقل) بينما العربية والCJK تحتاج tokens أكثر.
# كيف يحول Tokenizer النص إلى أرقام from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3") text = "الذكاء الاصطناعي" tokens = tokenizer.encode(text) print(tokens) # [42, 1089, 3521, 77] print(len(tokens)) # 4 tokens

الدليل 02 / 06

كيف يؤثر تصنيف الـ Tokens على التكلفة؟

كل طلب للنموذج يحسب على أساس عدد الـ Tokens المدخلة والمُخرجة — وهذا يؤثر مباشرة على فاتورتك.

$0.03
لكل 1K input tokens — GPT-4o
$0.06
لكل 1K output tokens — GPT-4o
$0
لتكاليف التخزين أو الذاكرة
Context
حد أقصى للاستدعاء الواحد
عامل التأثير التأثير على التكلفة كيفية التحسين
طول النص المدخل يتناسب طردًا مع عدد الـ Tokens تقصير الـ System Prompt، حذف المحادثات القديمة
طول الإجابة غالبًا أغلى (سعر أعلى per token) وضع حدود max_tokens، تحسين الـ Prompts
حجم الـ Context تكلفة ثابتة بغض النظر عن الاستخدام اختيار نموذج بحجم context مناسب
لغة النص العربية/CJK تحتاج tokens أكثر استخدام نماذج محسّنة للغات معينة
نموذج متعدد الوسائط تكلفة إضافية للصور ضغط الصور قبل الإرسال إن أمكن
حساب عملي: لو أرسلت 2000 token وأجبت بـ 500 token باستخدام GPT-4o:
التكلفة = (2 × $0.03) + (0.5 × $0.06) = $0.09 للطلب الواحد.
لو استخدمت 10,000 طلب يوميًا = $900 شهريًا.
نصيحة لتوفير التكلفة

استخدم Streaming لتجربة ردود النموذج أثناء الكتابة وتوقف مبكرًا إن لم تعد الإجابة مفيدة. وأيضًا: الـ Caching — بعض مقدمي الخدمة يحفظون الردود المتكررة لتجنب إعادة الحساب.


الدليل 03 / 06

Embeddings وكيفية عمل RoPE

كل كلمة أو token تُحوَّل إلى متجه رياضي (Embedding) — قائمة أرقام تفهمها الآلة فقط. لكن كيف يحتفظ النموذج بموقع كل كلمة في الجملة؟

ما هو Embedding؟

Embedding هو تمثيل رقمي للنص داخل فضاء متعدد الأبعاد. الكلمات المتشابهة في المعنى تكون قريبة في هذا الفضاء. مثال: "ملك" و"ملكة" تكون المسافة بينهما أقل من المسافة بين "ملك" و"سيارة".

من Token إلى Vector
كلمات → أرقام → فضاء متجهي
Input
"الذكاء"
Token ID
[3521]
Embedding
[-0.23, 0.81, ...]
4,096 عدد
Vector
RoPE: الترميز الدوراني للموضع

RoPE (Rotary Position Embedding) هو التقنية التي يستخدمها معظم النماذج الحديثة (Llama, Mistral, Falcon) لتضمين معلومات الموضع في المتجهات. الفكرة بسيطة وأنيقة: نستخدم دورانًا رياضيًا بدلاً من جمع أو ضرب مباشر لمتجهات الموضع.

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

# حساب زاوية RoPE لبُعد معين import numpy as np # أبعاد embedding النموذج dim = 4096 theta = 10000.0 # ترددات مختلفة لكل بُعد (أزواج من الأبعاد) freqs = 1.0 / (theta ** (np.arange(0, dim, 2) / dim)) # موقع الكلمة رقم 100 في الجملة pos = 100 angles = pos * freqs print(f"زاوية البُعد 0: {angles[0]:.4f} راد") # تُستخدم لتدوير متجه embedding — الحفاظ على معلومات الموضع
RoPE vs Attention Masks: قبل RoPE، كانت النماذج تستخدم Absolute Position Embeddings (متجهات موضع مطلقة) أو Relative Position Embeddings (متجهات موضع نسبية). RoPE يتفوق عليها لأنه يعالج الترتيب بشكل دوراني مما يوفر:

• أطوال context أكبر ( Llama 3 يدعم 128K tokens)

• حسابات أقل بفضل عدم إضافة مصفوفات جديدة

• استدلال أسرع (fewer parameters to compute)


الدليل 04 / 06

قواعد البيانات المتجهية الذكية

RAG (Retrieval-Augmented Generation) يبدأ من هنا — تحويل المستندات إلى متجهات والبحث عنها ذكيًا.

كيف يعمل Semantic Search
📄 المستند الأول — عن الذكاء الاصطناعي 0.94
📄 المستند الثاني — تعلم الآلة 0.87
📄 المستند الثالث — الشبكات العصبية 0.76
📄 المستند الرابع — الطهي 0.31
ما الفرق بين قاعدة بيانات عادية و Vector DB؟

قاعدة البيانات العادية تبحث بـ تطابق تام (WHERE name = "أحمد"). قاعدة البيانات المتجهية تبحث بـ التشابه الدلالي — تجد النصوص التي تعني نفس الشيء حتى لو الصياغة مختلفة تمامًا.

HNSW
خوارزمية الفهرسة الأهم
Cosine
مقياس التشابه الأشهر
1M+
متجهات/ثانية (Pinecone)
1536
أبعاد embedding OpenAI
Agentic Vector Databases — الجيل التالي

Agentic تعني أن قاعدة البيانات لا تكتفي بالبحث — بل تتخذ قرارات. مثال: عند سؤال "ما أفضل استراتيجية تسويق؟"، قاعدة البيانات الوكيلية قد:

1. تُقسّم السؤال إلى استعلامات متعددة

2. تنفذها بالتوازي على مجموعات مختلفة

3. تدمج النتائج وتُعيد ترتيبها حسب الصلة

هذا يُحاكي كيف يعمل assistant ذكي حقيقي.

# إنشاء وقراءة من Vector DB (Pinecone) import pinecone, openai pc = pinecone.Pinecone(api_key="your-key") index = pc.Index("knowledge-base") # 1) تحويل السؤال إلى متجه query = "ما هي أعراض السكري؟" response = openai.Embedding.create( model="text-embedding-3-small", input=query ) query_vector = response['data'][0]['embedding'] # 2) البحث في قاعدة البيانات results = index.query( vector=query_vector, top_k=5, include_metadata=True ) # 3) إرسال النتائج للنموذج مع السؤال for match in results['matches']: print(match['metadata']['text'])

الدليل 05 / 06

آلية Attention ومفاهيم QKV وKV Cache

قلب النماذج اللغوية — كيف "تنتبه" الآلة لكل كلمة في سياق الكلمات الأخرى.

Self-Attention Matrix (4 كلمات)
الـ
ذكاء
الذي
يتعلم
الـ
0.9
0.05
0.03
0.02
ذكاء
0.1
0.7
0.12
0.08
الذي
0.05
0.1
0.65
0.2
يتعلم
0.02
0.05
0.1
0.83
كل خلية تُمثّل مقدار "الانتباه" الذي تولّده الكلمة في الصف نحو الكلمة في العمود. القيمة العالية (غامق) = علاقة قوية.

Q Query — الاستعلام

"ماذا أبحث عنه؟" — كل token يسأل سؤالًا عن الكلمات الأخرى. يمثل اهتمام/احتياج هذا الـ token.

K Key — المفتاح

"ماذا أقدم؟" — كل token يعرض نفسه كمحتوى. يُستخدم للمقارنة مع الـ Queries.

V Value — القيمة

"ما هي المعلومات الفعلية؟" — المحتوى الحقيقي لكل token. هذا ما يُستخدم لحساب المخرجات.

Cache KV Cache

تخزين الـ K و V المحسوبين سابقًا لتجنب إعادة حسابهم في كل خطوة. هذا يوفر ~50% من وقت الاستدلال.

Multi-Head Attention: النماذج الحديثة لا تستخدم attention واحد، بل dozens متوازية (عادة 32 أو 64 head). كل head يتعلم علاقات مختلفة — واحد للتركيب النحوي، آخر للمعنى، ثالث للعلاقات المنطقية.
# Self-Attention بشكل مبسط import torch.nn.functional as F def self_attention(Q, K, V, scale=True): # 1) حساب التشابه بين Q و K scores = torch.matmul(Q, K.transpose(-2, -1)) # 2) تطبيع if scale: scores = scores / (K.size(-1) ** 0.5) # 3) Softmax للحصول على أوزان الانتباه attn_weights = F.softmax(scores, dim=-1) # 4) حساب المخرجات المرجّحة return torch.matmul(attn_weights, V), attn_weights

الدليل 06 / 06

من الـ Tokens إلى الإجابات: الاستدلال

ماذا يحدث بالضبط بين لحظة إرسال سؤالك وظهور أول حرف من الإجابة؟

1

Tokenization — تقسيم النص

النص يُقسَّم إلى tokens باستخدام الـ Tokenizer. كل كلمة أو جزء كلمة يصبح token برقم ID فريد. الـ System Prompt والـ User Message يُجمَّعا معًا.

2

Embedding Layer — التحويل إلى أرقام

كل Token ID يُحوَّل إلى متجه embedding عالي الأبعاد (مثلاً 4096 بُعد). هذا المتجه يحمل المعنى الدلالي للكلمة.

3

Transformer Layers — الطبقات المتتالية

المتجهات تمر عبر dozens من Transformer Layers. كل طبقة فيها: Multi-Head Attention → Feed-Forward Network. الـ RoPE يضيف معلومات الموضع تلقائيًا.

4

Output Head — التنبؤ بالـ Token التالي

آخر طبقة تخرج توزيع احتمالات على كل الـ tokens في المفردات. النموذج يختار الـ token صاحب أعلى احتمال (greedy) أو يستخدم sampling.

5

Decoding Loop — التوليد token بtoken

الـ token المُنتَخب يُضاف إلى input، ثم تُعاد العملية. هذا loop يتكرر حتى يصل النموذج إلى token الإيقاف (EOS) أو الحد الأقصى للطول. Streaming يُرسل كل token فورًا للمستخدم.

70B
معاملات Llama 3 70B
~15ms
زمن أول token (GPU)
~50ms
لكل token تالٍ
KV Cache
يقلل time/token بنسبة 50%
Speculative Decoding — الجيل القادم من الاستدلال

بدلاً من انتظار كل token، نموذج صغير (draft model) يتنبأ بعدة tokens دفعة واحدة، ثم النموذج الكبير يتحقق منها دفعة واحدة. إذا كان صحيحًا — وفرنا وقتًا. هذه التقنية تُسرّع الاستدلال بـ 2-3x.

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

ليست هناك تعليقات

كافة الحقوق محفوظةلـ صن واي تكنولوجي 2016 | تصميم : رضا العبادي