6 أدلة أساسية لفهم
كيف تعمل نماذج اللغة الكبيرة
رحلة تقنية من الـ Tokens الأولى إلى الإجابة النهائية — بدون لغو، كل شيء بالتفصيل.
ما هو الـ Token؟
الـ Token هو الوحدة الأساسية التي يفهمها النموذج. ليس حرفًا وليس كلمة — بل شيء بينهما.
النموذج لا يرى النص كنص — يراه كمتتالية أرقام. كل token له رقم تعريف (ID) فريد في مفردات النموذج (Vocabulary). كلمة واحدة قد تكون token واحد، أو عدة tokens. هذا يعتمد على خوارزمية الـ Tokenizer المستخدمة.
كيف يؤثر تصنيف الـ Tokens على التكلفة؟
كل طلب للنموذج يحسب على أساس عدد الـ Tokens المدخلة والمُخرجة — وهذا يؤثر مباشرة على فاتورتك.
| عامل التأثير | التأثير على التكلفة | كيفية التحسين |
|---|---|---|
| طول النص المدخل | يتناسب طردًا مع عدد الـ Tokens | تقصير الـ System Prompt، حذف المحادثات القديمة |
| طول الإجابة | غالبًا أغلى (سعر أعلى per token) | وضع حدود max_tokens، تحسين الـ Prompts |
| حجم الـ Context | تكلفة ثابتة بغض النظر عن الاستخدام | اختيار نموذج بحجم context مناسب |
| لغة النص | العربية/CJK تحتاج tokens أكثر | استخدام نماذج محسّنة للغات معينة |
| نموذج متعدد الوسائط | تكلفة إضافية للصور | ضغط الصور قبل الإرسال إن أمكن |
التكلفة = (2 × $0.03) + (0.5 × $0.06) = $0.09 للطلب الواحد.
لو استخدمت 10,000 طلب يوميًا = $900 شهريًا.
استخدم Streaming لتجربة ردود النموذج أثناء الكتابة وتوقف مبكرًا إن لم تعد الإجابة مفيدة. وأيضًا: الـ Caching — بعض مقدمي الخدمة يحفظون الردود المتكررة لتجنب إعادة الحساب.
Embeddings وكيفية عمل RoPE
كل كلمة أو token تُحوَّل إلى متجه رياضي (Embedding) — قائمة أرقام تفهمها الآلة فقط. لكن كيف يحتفظ النموذج بموقع كل كلمة في الجملة؟
Embedding هو تمثيل رقمي للنص داخل فضاء متعدد الأبعاد. الكلمات المتشابهة في المعنى تكون قريبة في هذا الفضاء. مثال: "ملك" و"ملكة" تكون المسافة بينهما أقل من المسافة بين "ملك" و"سيارة".
RoPE (Rotary Position Embedding) هو التقنية التي يستخدمها معظم النماذج الحديثة (Llama, Mistral, Falcon) لتضمين معلومات الموضع في المتجهات. الفكرة بسيطة وأنيقة: نستخدم دورانًا رياضيًا بدلاً من جمع أو ضرب مباشر لمتجهات الموضع.
بدلًا من إضافة رقم موضع إلى كل بُعد، نُدوِّر المتجه بزاوية تتناسب مع موقع الكلمة في الجملة. هذا يسمح للنموذج بالتعامل مع جمل أطول بكثير مع حسابات أقل.
• أطوال context أكبر ( Llama 3 يدعم 128K tokens)
• حسابات أقل بفضل عدم إضافة مصفوفات جديدة
• استدلال أسرع (fewer parameters to compute)
قواعد البيانات المتجهية الذكية
RAG (Retrieval-Augmented Generation) يبدأ من هنا — تحويل المستندات إلى متجهات والبحث عنها ذكيًا.
قاعدة البيانات العادية تبحث بـ تطابق تام (WHERE name = "أحمد"). قاعدة البيانات المتجهية تبحث بـ التشابه الدلالي — تجد النصوص التي تعني نفس الشيء حتى لو الصياغة مختلفة تمامًا.
Agentic تعني أن قاعدة البيانات لا تكتفي بالبحث — بل تتخذ قرارات. مثال: عند سؤال "ما أفضل استراتيجية تسويق؟"، قاعدة البيانات الوكيلية قد:
1. تُقسّم السؤال إلى استعلامات متعددة
2. تنفذها بالتوازي على مجموعات مختلفة
3. تدمج النتائج وتُعيد ترتيبها حسب الصلة
هذا يُحاكي كيف يعمل assistant ذكي حقيقي.
آلية Attention ومفاهيم QKV وKV Cache
قلب النماذج اللغوية — كيف "تنتبه" الآلة لكل كلمة في سياق الكلمات الأخرى.
Q Query — الاستعلام
"ماذا أبحث عنه؟" — كل token يسأل سؤالًا عن الكلمات الأخرى. يمثل اهتمام/احتياج هذا الـ token.
K Key — المفتاح
"ماذا أقدم؟" — كل token يعرض نفسه كمحتوى. يُستخدم للمقارنة مع الـ Queries.
V Value — القيمة
"ما هي المعلومات الفعلية؟" — المحتوى الحقيقي لكل token. هذا ما يُستخدم لحساب المخرجات.
Cache KV Cache
تخزين الـ K و V المحسوبين سابقًا لتجنب إعادة حسابهم في كل خطوة. هذا يوفر ~50% من وقت الاستدلال.
من الـ Tokens إلى الإجابات: الاستدلال
ماذا يحدث بالضبط بين لحظة إرسال سؤالك وظهور أول حرف من الإجابة؟
Tokenization — تقسيم النص
النص يُقسَّم إلى tokens باستخدام الـ Tokenizer. كل كلمة أو جزء كلمة يصبح token برقم ID فريد. الـ System Prompt والـ User Message يُجمَّعا معًا.
Embedding Layer — التحويل إلى أرقام
كل Token ID يُحوَّل إلى متجه embedding عالي الأبعاد (مثلاً 4096 بُعد). هذا المتجه يحمل المعنى الدلالي للكلمة.
Transformer Layers — الطبقات المتتالية
المتجهات تمر عبر dozens من Transformer Layers. كل طبقة فيها: Multi-Head Attention → Feed-Forward Network. الـ RoPE يضيف معلومات الموضع تلقائيًا.
Output Head — التنبؤ بالـ Token التالي
آخر طبقة تخرج توزيع احتمالات على كل الـ tokens في المفردات. النموذج يختار الـ token صاحب أعلى احتمال (greedy) أو يستخدم sampling.
Decoding Loop — التوليد token بtoken
الـ token المُنتَخب يُضاف إلى input، ثم تُعاد العملية. هذا loop يتكرر حتى يصل النموذج إلى token الإيقاف (EOS) أو الحد الأقصى للطول. Streaming يُرسل كل token فورًا للمستخدم.
بدلاً من انتظار كل token، نموذج صغير (draft model) يتنبأ بعدة tokens دفعة واحدة، ثم النموذج الكبير يتحقق منها دفعة واحدة. إذا كان صحيحًا — وفرنا وقتًا. هذه التقنية تُسرّع الاستدلال بـ 2-3x.
ليست هناك تعليقات