مقالات معمّقة حول التكنولوجيا التي تشكّل المستقبل.

نماذج فضاء الحالة مقابل المحولات: دليل عملي

دليل عملي لنماذج فضاء الحالة وMamba-3 والبنى الهجينة: ما الذي ينجح، ومتى تفضلها على المحولات في أحمال العمل الإنتاجية.

نهر متدفق انسيابي بجوار شبكة كثيفة من العقد المتوهجة، يرمز إلى نماذج SSM مقابل المحولات.

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

هذا ليس مقالاً دعائياً. سأشرح ما هي نماذج فضاء الحالة فعلاً، وأين يحسّن Mamba-3 الأمور حقاً، وأين ما زالت هذه النماذج متعثرة، وكيف ينبغي لفريقك أن يفكر في تبنيها. مطور يتحدث إلى مطور.

لماذا تصطدم المحولات بحائط عند التوسع

أنت تعرف قصة التعقيد التربيعي. الانتباه الذاتي (Self-attention) يحسب مصفوفة N×N لتسلسل طوله N، فمضاعفة طول السياق تضاعف الحوسبة والذاكرة أربع مرات. ولوقت طويل لم يكن هذا مهماً كثيراً، إذ كانت النماذج تعمل على بضعة آلاف من الرموز، والعتاد يواكب ذلك.

تلك الحقبة انتهت. أحمال العمل التي نبنيها اليوم تحتاج بانتظام إلى سياقات تتجاوز 100 ألف رمز. مساعدو البرمجة يحتاجون إلى رؤية مستودعات كاملة. خطوط المعالجة متعددة الوسائط تبتلع ساعات من الفيديو. والوكلاء الأذكياء يحتفظون بتاريخ محادثات يمتد لأيام. عند هذه المقاييس، لا يكون الانتباه التربيعي مكلفاً فحسب، بل يصبح حائطاً حقيقياً.

ومشكلة ذاكرة KV تزيد الأمر سوءاً. أثناء التوليد التلقائي، تخزّن كل طبقة في المحول أزواج المفاتيح والقيم لكل رمز رآه، وهذا الكاش ينمو خطياً مع كل طبقة ويستهلك ذاكرة GPU بسرعة. شاهدت نموذج محول بسعة 7B يستهلك 40 جيجابايت من VRAM لكاش KV وحده عند سياق 128 ألف رمز. وهذه ذاكرة لا تستطيع استخدامها لتجميع المزيد من الطلبات في دفعة واحدة.

  • نمو الذاكرة التربيعي يجعل سياقات بحجم مليون رمز شبه مستحيلة مع الانتباه القياسي
  • نمو كاش KV يحدّ من عدد المستخدمين المتزامنين لكل GPU، وهذا يضاعف التكلفة مباشرة في الإنتاج
  • استهلاك الطاقة في استدلال المحولات على السياقات الطويلة صار يصعب تبريره
  • التطبيقات الفورية (الروبوتات، الذكاء الاصطناعي على الأجهزة الطرفية) تحتاج توليد رموز في أقل من ملّي ثانية، وهذا ما لا يستطيع الانتباه تحقيقه
  • ظاهرة «مصرف الانتباه» (attention sink) تُضعف الجودة على التسلسلات الطويلة جداً حتى لو توفرت الذاكرة

هذه ليست مخاوف نظرية. إنها السبب في أن ثلاثة فرق عملت معها بدأت تقيّم البدائل بجدية العام الماضي.

كيف تعمل نماذج فضاء الحالة فعلاً

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

رياضياً، يُعرَّف نموذج فضاء الحالة بأربع مصفوفات، A وB وC وD، تحكم كيفية تطور الحالة المخفية h استجابةً للمدخل x. بعد تقطيع المعادلات المستمرة للبيانات التسلسلية، تحصل على علاقة تكرارية بسيطة جداً للحساب أثناء الاستدلال.

import torch
def ssm_step(A_bar, B_bar, C, D, h, x_t):
"""Single SSM step: O(1) memory, O(1) compute.
Compare this to attention, which needs to look at
every previous token. The SSM just updates its state.
"""
h_new = A_bar @ h + B_bar @ x_t  # Update hidden state
y_t = C @ h_new + D * x_t         # Compute output
return h_new, y_t
def ssm_generate(A_bar, B_bar, C, D, tokens, embed):
"""Autoregressive generation with constant memory.
Whether you've processed 100 tokens or 500,000,
this uses the same amount of memory.
"""
h = torch.zeros(A_bar.shape[0])
outputs = []
for t in tokens:
x_t = embed(t)
h, y_t = ssm_step(A_bar, B_bar, C, D, h, x_t)
outputs.append(y_t)
return torch.stack(outputs)

الجمال واضح في الشيفرة نفسها. الاستدلال يستهلك ذاكرة وحوسبة ثابتتين O(1) لكل رمز، بغض النظر عن طول التسلسل. لا يوجد كاش KV ولا انفجار تربيعي. التاريخ كله مضغوط داخل متجه الحالة المخفية.

الشرط؟ أثناء التدريب، تنفيذ هذه العلاقة التكرارية بالتسلسل سيكون بطيئاً جداً. الحيلة أن الحساب نفسه يمكن إعادة صياغته كالتفاف (convolution) أو مسح متوازٍ (parallel scan)، وهذا ما تتعامل معه وحدات GPU بكفاءة. أي أنك تحصل على تدريب متوازٍ واستدلال تكراري، وهذا أفضل ما في العالمين.

من Mamba إلى Mamba-3: ماذا أصلح كل جيل

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

قدّم Mamba، الذي طرحه Albert Gu وTri Dao أواخر 2023، حلاً أنيقاً لهذه المشكلة: جعل معاملات نموذج فضاء الحالة تعتمد على المدخل. بدلاً من مصفوفات A وB وC الثابتة، يحسب Mamba قيمها كدوال للرمز الحالي. هكذا يتعلم النموذج تخزين المعلومات ذات الصلة وتجاهل الضوضاء بشكل انتقائي. هذه الآلية «الانتقائية» منحت نماذج فضاء الحالة الوعي بالمحتوى الذي كانت تفتقده.

قدّم Mamba-2 فكرة نظرية مفادها أن نماذج فضاء الحالة المهيكلة والانتباه الخطي ثنائيان رياضياً، وهو إطار يُعرف باسم State Space Duality (SSD). ولم يكن هذا مجرد طرح أكاديمي، بل أتاح تطبيقات واعية بالعتاد تستفيد من نوى الtensor في GPU بشكل أفضل، ما رفع إنتاجية التدريب بشكل ملحوظ.

يصبح Mamba-3 مثيراً للاهتمام من ناحية النشر الفعلي. وأهم ثلاثة ابتكارات فيه:

  1. تتبع الحالة متعدد المقاييس: يحتفظ النموذج بالحالة على دقات زمنية متعددة في آن واحد، فيلتقط الأنماط المحلية والاعتماديات بعيدة المدى دون التضحية بأيهما
  2. ضغط الحالة التكيفي: تتوسع الحالة المخفية ديناميكياً مع المقاطع المعقدة في الاستدلال، وتنكمش مع النصوص المتوقعة، فتوفر الحوسبة دون خسارة في الجودة
  3. تحسين التهيئة والبوابات: تحسنت استقرارية التدريب على نطاق واسع بشكل كبير، وهذا مهم جداً عندما تنفق ملايين الدولارات على عملية تدريب واحدة

لا يتفوق Mamba-3 على المحولات في كل اختبار مرجعي، ولا يحتاج إلى ذلك. فهو يطابق الجودة في غالبية الاختبارات القياسية مع استهلاك جزء بسيط من حوسبة الاستدلال. وفي معظم أحمال العمل الإنتاجية، هذه هي المقايضة المهمة.

الانتباه الخطي والتقارب مع نماذج فضاء الحالة

هناك مسار موازٍ يستحق الفهم. الانتباه الخطي (Linear attention) يعالج مشكلة الكفاءة نفسها، لكن من داخل إطار المحولات. الانتباه القياسي يحسب المصفوفة الكاملة N×N. أما الانتباه الخطي فيستبدل دالة softmax بدالة نواة قابلة للتفكيك، ثم يعيد ترتيب المعادلات بحيث لا تُبنى المصفوفة التربيعية أبداً.

# Standard attention: O(N^2 * d)
# score = softmax(Q @ K.T / sqrt(d)) @ V
# Linear attention: O(N * d^2)
# Replace softmax with kernel feature map phi()
# Rearrange: compute K^T @ V first (d×d), then multiply by Q
def linear_attention_step(q_t, running_kv, running_k, k_t, v_t, phi):
"""Incremental linear attention — runs like a recurrence.
This is why SSMs and linear attention are duals:
both compress history into a fixed-size state.
"""
k_feat = phi(k_t)
q_feat = phi(q_t)
running_kv = running_kv + k_feat.unsqueeze(-1) * v_t.unsqueeze(-2)
running_k = running_k + k_feat
y_t = (q_feat @ running_kv) / (q_feat @ running_k + 1e-6)
return y_t, running_kv, running_k

انظر إلى الشيفرة بتمعن. الانتباه الخطي، عند تشغيله تدريجياً، يحافظ على حالة متراكمة ويحدّثها مع كل رمز جديد. يبدو مألوفاً، أليس كذلك؟ ينبغي أن يكون كذلك، فهو يقوم بالشيء نفسه تقريباً الذي تقوم به نماذج فضاء الحالة. وقد جعل إطار SSD هذا الارتباط رسمياً، وهو من أهم الرؤى النظرية في أبحاث نمذجة التسلسل الأخيرة.

دفعت بنى مثل GLA (Gated Linear Attention) وأنواع RetNet هذا الاتجاه أبعد، عبر إضافة بوابات تعتمد على البيانات تطمس الفاصل بين الانتباه الخطي ونماذج فضاء الحالة الانتقائية تقريباً بالكامل. الخلاصة العملية: لا تعتبر هذه الأساليب متنافسة، فهي تتقارب.

الهجين: ما الذي يفوز فعلاً في الإنتاج

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

تتفوق طبقات SSM في ضغط المعلومات التسلسلية ونقلها بكفاءة. أما طبقات الانتباه فما زالت بلا منافس في الاسترجاع الدقيق المعتمد على المحتوى، مثل «ابحث عن السطر الدقيق في الصفحة 47 الذي يجيب عن هذا السؤال». الهجين الجيد يستخدم SSM في 80 إلى 90% من طبقاته، ويضيف الانتباه حيث يكون أكثر أهمية.

  • نماذج على طراز Jamba: تتناوب طبقات Mamba والانتباه مع كتل MoE للشبكات الأمامية، فتوجّه المعالجة بين SSM الكفؤة والانتباه الدقيق ديناميكياً
  • تصاميم عائلة Griffin: وحدات خطية متكررة ذات بوابات مع انتباه محلي بنافذة منزلقة، وتحقق نتائج قوية مع انتباه كامل بالحد الأدنى
  • هجائن Mamba-Attention: كتل Mamba-3 لمعظم الطبقات، مع طبقات انتباه كامل في أعماق استراتيجية لتوجيه المعلومات الشاملة
  • خلفاء StripedHyena: تداخل التفافات بوابية وطبقات SSM وانتباه متفرق بأنماط مُحسّنة عبر البحث الآلي عن البنية (NAS)

الأرقام تدعم هذا. أثبتت مجموعات بحثية مستقلة عدة أن توزيع 85/15 بين SSM والانتباه يطابق جودة المحول الخالص عند العدد نفسه من المعاملات، مع تقليص عمليات الاستدلال (FLOPs) بنسبة 40 إلى 60%. وتكون وفورات الذاكرة أكبر في أحمال العمل ذات السياقات الطويلة. هذا ليس تحسناً هامشياً، بل هو تخفيض لفاتورة GPU إلى النصف تقريباً.

معايير الأداء في الإنتاج: أين تنجح نماذج فضاء الحالة وأين تفشل

دعني أكون محدداً في الأرقام، لأن ادعاءات الكفاءة الغامضة لا تفيد أحداً يتخذ قرارات النشر.

إنتاجية الاستدلال: نموذج Mamba-3 بحجم 8 مليار معامل يولّد الرموز بالسرعة نفسها سواء كان السياق 1 ألف أم 500 ألف رمز. أما المحول المماثل فيتباطأ تدريجياً مع نمو كاش KV. وعند سياق 500 ألف رمز، يقدم نموذج SSM إنتاجية أعلى لكل GPU بمقدار 5 إلى 8 أضعاف. هذا ليس نظرياً، فأنا قمت بقياسه بنفسي.

المستخدمون المتزامنون: بدون كاش KV، تستطيع نماذج SSM خدمة عدد أكبر بكثير من الطلبات المتزامنة. على وحدة A100 واحدة، حيث يتعامل المحول مع نحو 8 تدفقات متزامنة عند سياق 32 ألف رمز، يستطيع النموذج المكافئ من SSM التعامل مع أكثر من 30. لأي شخص يشغل الاستدلال على نطاق واسع، هذا الرقم هو ما يغير الحسابات الاقتصادية.

سرعة التدريب: المكاسب هنا أكثر تواضعاً. يتدرب Mamba-3 بسرعة تقارب 1.4 ضعف إنتاجية المحول المكافئ على مجموعات H100. وتتسع الفجوة مع التسلسلات الأطول، فعند ما يزيد عن 32 ألف رمز، يتدرب نموذج SSM أسرع بمرتين إلى ثلاث مرات لأنه يتجنب الانتباه التربيعي تماماً.

لكن يجب أن أكون صريحاً بشأن القيود. في المهام التي تتطلب استرجاعاً حرفياً دقيقاً من سياقات طويلة، مثل «ما هي رسالة الخطأ الدقيقة في السطر 4382؟»، ما زالت نماذج SSM الخالصة تتأخر. فالحالة المضغوطة ذات الحجم الثابت تمثيل فيه فقدان للمعلومات. أما الانتباه فيستطيع ببساطة الرجوع إلى الرموز الأصلية. وهذا بالضبط سبب نجاح البنى الهجينة: طبقات الانتباه تتولى الاسترجاع الذي لا تستطيع SSM القيام به.

أين ما زالت نماذج فضاء الحالة قاصرة

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

  1. التعلم داخل السياق: ما زالت المحولات أفضل في تكييف سلوكها بناءً على أمثلة قليلة في الموجّه (few-shot). نماذج SSM تستطيع ذلك لكن بموثوقية أقل. إذا كان تطبيقك يعتمد بشدة على هندسة الموجّهات مع أمثلة، فستخيّبك نماذج SSM الخالصة.
  2. نضج المنظومة: أدوات المحولات استفادت من سنوات من التحسين. نوى SSM الخاصة وبنى تقديم الخدمة ومكتبات الضبط الدقيق تتحسن بسرعة، لكنها لم تصل بعد إلى مستوى التكافؤ. خصص وقتاً إضافياً للتكامل.
  3. عدم اليقين في التوسع فوق 70 مليار معامل: تُظهر نماذج Mamba-3 حتى 70 مليار معامل منحنيات توسع جيدة، لكن ليست لدينا بيانات قوية عند مستوى 200 مليار فأكثر. ومدى صحة قوانين توسع SSM عند الأحجام القصوى مجهول فعلاً.
  4. تقنيات الضبط الدقيق: LoRA وQLoRA للمحولات مفهومتان جيداً. تطبيقهما على بنى SSM يتطلب مقاربات مختلفة، وأفضل الممارسات ما زالت تتبلور.
  5. عدم التوافق مع العتاد: وحدات GPU الحالية مُحسّنة لعمليات ضرب المصفوفات التي يحبها الانتباه. تعتمد SSM بشكل كبير على المسح المتوازي، الذي يعمل بكفاءة معقولة على العتاد الحديث، لكنه ليس العملية التي صُممت وحدات GPU حولها.

لا شيء من هذه الأمور يمثل عائقاً قاطعاً. إنها مشكلات هندسية لها مسارات حل معروفة. لكنها حقيقية، ويجب أن تدخل في حساب جدولك الزمني.

توصيات عملية: متى تتبنى، وكيف تبدأ

بعد تقييم نماذج SSM على أحمال عمل إنتاجية متعددة، هذا هو الإطار الذي أعتمده عند تقديم المشورة للفرق.

تبنَّ بقوة إذا كان عملك يتضمن استدلالاً على سياقات طويلة (32 ألف رمز فأكثر بانتظام)، أو متطلبات تزامن عالية، أو نشراً حساساً للكمون على الأجهزة الطرفية. العائد على الاستثمار كبير وفوري. ابدأ ببنية هجينة مثل Jamba أو نموذج من عائلة Griffin بدلاً من SSM الخالصة، فستحصل على معظم مكاسب الكفاءة بمخاطرة أقل.

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

  • حلّل أحمال عمل الاستدلال الفعلية قبل أن تقرر: الوسيط لطول السياق وعدد المستخدمين المتزامنين هما المتغيران الأساسيان
  • ابدأ بالبنى الهجينة لا بـ SSM الخالصة، فهي أقل مخاطرة وما زالت تحقق تخفيضاً في تكلفة الاستدلال بنسبة 40 إلى 60%
  • قِس الأداء على مهامك المحددة، فنماذج SSM تتفوق في التلخيص والاستدلال بعيد المدى لكنها تتأخر في الاسترجاع الدقيق
  • ابنِ البنية التحتية للمقارنة بين البنى الآن، فأنت تحتاج إلى قياس الكمون والإنتاجية والذاكرة وتكلفة كل استعلام، لا الدقة وحدها
  • تابع منظومة أدوات SSM كل ربع سنة، فوتيرة التحسن سريعة لدرجة أن ما هو غير عملي اليوم قد يصبح جاهزاً للإنتاج خلال ثلاثة أشهر

المشهد المعماري ينقسم، وهذا أمر جيد

انتهى عصر البنية الواحدة التي تحكم الجميع. نحن نتجه نحو عالم تختار فيه الفرق المكونات الحسابية (الانتباه الكامل، الانتباه الخطي، SSM الانتقائية، الالتفافات البوابية) وتركّبها وفق قيودها المحددة. هكذا تعمل التخصصات الهندسية الناضجة. لا تبني كل هيكل من الفولاذ، بل تختار المواد بحسب الأحمال التي يجب أن تتحملها.

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

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