الشبكات التكرارية ونماذج التسلسل2023متقدم11 دقيقة قراءة

مامبا: نمذجة التسلسلات في زمن خطّي باستخدام فضاءات حالة انتقائية

Mamba: Linear-Time Sequence Modeling with Selective State Spaces

Gu, A. · Dao, T. — COLM

المشكلة

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

الإسهام

فضاء الحالة الانتقائي (S6): تحويل معاملات النموذج (Δ وB وC) إلى دوالّ تعتمد على المُدخَل حتى يقرّر النموذج عند كل خطوة ما يحفظه وما يتجاهله. خوارزمية مسح متوازٍ مصمَّمة لاستغلال العتاد تنفّذ هذا التكرار الانتقائي بكفاءة على وحدات المعالجة الرسومية دون كتابة الحالة الكاملة في الذاكرة البطيئة. بنية مامبا تُغلّف هذه الآلية في كتلة واحدة مبسّطة تدمج فضاء الحالة مع بوابات ضربية — بلا انتباه ذاتي ولا كتلة MLP منفصلة. النتيجة: مامبا بثلاثة مليارات معامل تضاهي جودة المحوِّلات اللغوية مع سرعة توليد أعلى بخمسة أضعاف.

الأثر

أثبتت مامبا أن الانتباه الذاتي ليس السبيل الوحيد للوصول إلى جودة المحوِّلات في نمذجة اللغة. فتحت الباب أمام موجة من البنيات المبنية على فضاءات الحالة مثل Mamba-2 وVision Mamba وJamba، إضافة إلى نماذج هجينة تجمع بين الانتباه وفضاء الحالة. مبدأ الانتقائية — أي ربط سلوك النموذج بالمُدخَل — صار قاعدة تصميمية أساسية في كل نماذج فضاء الحالة اللاحقة. كذلك انتقل أسلوب المسح المُحسَّن للعتاد إلى تطبيقات أخرى خارج فضاءات الحالة.

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

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

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

المشكلة: قوة الانتباه الذاتي تأتي بثمن باهظ

بحلول 2023، كانت جميع تقريباً — GPT وClaude وGemini وBERT — مبنية على المُحوِّل. السرّ في قوته أن آلية الانتباه الذاتي تربط كل بكل رمز آخر في خطوة واحدة، وهذا ما يمنحه تفوّقاً في فهم اللغة.

لكن هذه القوة تأتي بثمن مرتفع:

  • تكلفة تربيعية. الانتباه الذاتي يقارن كل زوج من الرموز: ضاعف طول التسلسل وستتضاعف التكلفة أربع مرات. مستند من مئة ألف رمز يكلّف عشرة آلاف ضعف ما تكلّفه فقرة من ألف رمز.

  • ذاكرة المفاتيح والقيم المتنامية. أثناء ، يحتفظ النموذج بمتّجه مفتاح ومتّجه قيمة لكل رمز سابق. كلما طال السياق كبرت هذه الذاكرة، فتستنزف موارد وتُبطئ التوليد.

حاولت بدائل عديدة تجاوز هذه القيود — الانتباه الخطّي، والالتفافات الشاملة، و المُهيكلة مثل S4 — لكنها جميعاً وقعت في المأزق نفسه: عاملت كل مُدخَل بالطريقة ذاتها، دون تمييز بين معلومة جوهرية وضوضاء لا قيمة لها.

افتح في المختبر
حرّك شريط طول التسلسل وراقب كيف تتصاعد تكلفة الانتباه بينما تظل تكلفة مامبا ثابتة.
تستيقظ التجربة عند وصولك…

أساسيات: نماذج فضاء الحالة باختصار

قبل أن نفهم ما أضافته مامبا، نحتاج أولاً إلى استيعاب الأساس الذي بنت عليه: نماذج فضاء الحالة المُهيكلة (S4).

تخيّل نموذج فضاء الحالة كأنه خطّ أنابيب فيه خزّان مخفي: إشارة دخل x(t)x(t) تصل، فتُحدّث h(t)h(t)، ثم يخرج منها ناتج y(t)y(t). الحالة المخفية أشبه بمستوى الماء في الخزّان — تتراكم فيها المعلومات مع الزمن، والمُخرج يُقرأ منها.

أربع مصفوفات تتحكّم بهذا الخطّ: A\boldsymbol{A} تحدّد كيف تتطوّر الحالة من تلقاء نفسها (أشبه بمعدّل تسرّب الخزّان)، وB\boldsymbol{B} تحدّد كمّية الدخل الجديد التي تصل إلى الخزّان، وC\boldsymbol{C} تحدّد ما نقرأه من الحالة كمُخرج، وΔ\Delta تضبط حجم الخطوة الزمنية (التمييز). النقطة الجوهرية أن هذه المعاملات الأربعة في النماذج السابقة كانت ثابتة — لا تتغيّر من رمز إلى آخر. يُعرف هذا السلوك بثبات الزمن الخطي (LTI).

ht=Aht1+Bxtyt=Chth_t = \overline{\boldsymbol{A}}\, h_{t-1} + \overline{\boldsymbol{B}}\, x_t \qquad y_t = \boldsymbol{C}\, h_t
ارتجاع فضاء الحالة المنفصل — محرّك S4في كل خطوة زمنية، تمزج الحالة المخفية بين قيمتها السابقة (مُوزَّنة بـĀ) والمُدخَل الجديد (مُوزَّن بـB̄)، ثم يُقرأ الناتج من الحالة عبر C. في نماذج LTI تظل Ā وB̄ وC ثابتة عند كل خطوة.
افتح في المختبر
بدّل بين وضع الالتفاف (متوازٍ، يُستخدم في التدريب) ووضع التكرار (تسلسلي، يُستخدم في الاستدلال) لترى كيف يُحسب فضاء الحالة نفسه بطريقتين مختلفتين.
تستيقظ التجربة عند وصولك…

الفكرة المحورية: الانتقائية هي ضغط ذكي

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

السؤال الحاسم هنا: ما الذي يُضغط وما الذي يُهمل؟ في نماذج LTI يكون الضغط أعمى تماماً عن المحتوى: المصفوفة A\boldsymbol{A} نفسها تحكم كل خطوة، فلا يستطيع النموذج أن يميّز بين كلمة مهمة مثل «هاري» وكلمة حشو مثل «آه». لهذا السبب تخفق نماذج LTI في المهام التي تحتاج استدلالاً مبنياً على المحتوى، كمهمة النسخ الانتقائي: نسخ رموز محدّدة من مواضع متفرقة وتجاهل ما بينها.

الحل الذي طرحته مامبا هو الانتقائية: تحويل معاملات فضاء الحالة — تحديداً Δ\Delta وB\boldsymbol{B} وC\boldsymbol{C} — إلى دوالّ تعتمد على المُدخَل الحالي. بهذا يصبح النموذج قادراً على:

  • حفظ رمز مهم بفتح البوابة (Δ\Delta كبيرة → الحالة تُعاد ضبطها وتمتص المُدخَل الجديد)
  • تجاهل الضوضاء بإغلاق البوابة (Δ\Delta صغيرة → الحالة تستمر والمُدخَل ينزلق)
  • التحكّم بما يدخل الحالة (B\boldsymbol{B} معتمد على المُدخَل) وبما يُقرأ منها (C\boldsymbol{C} معتمد على المُدخَل)
افتح في المختبر
لاحظ كيف تعجز نماذج LTI عن النسخ الانتقائي عندما تكون المسافات بين الرموز عشوائية، بينما تحلّه آلية الانتقائية في مامبا بدقّة تامّة.
تستيقظ التجربة عند وصولك…

فضاء الحالة الانتقائي: الانتقال من S4 إلى S6

التعديل الذي تُجريه مامبا على S4 بسيط بشكل مدهش. بدلاً من أن تكون المعاملات ثوابت لا تتغيّر، تصبح ثلاثة منها دوالّ تعتمد على الرمز المُدخَل:

  • Bt=LinearN(xt)\boldsymbol{B}_t = \text{Linear}_N(x_t) الدخل أصبح يتغيّر بحسب المُدخَل
  • Ct=LinearN(xt)\boldsymbol{C}_t = \text{Linear}_N(x_t) — إسقاط الخرج أصبح يتغيّر بحسب المُدخَل
  • Δt\Delta_t = (Linear(xt))(\text{Linear}(x_t)) — حجم الخطوة الزمنية أصبح يتغيّر بحسب المُدخَل

المصفوفة A\boldsymbol{A} وحدها تبقى ثابتة، لأنها لا تؤثّر في النموذج إلا من خلال تفاعلها مع Δ\Delta عند التمييز، وبالتالي فإن جعل Δ\Delta انتقائية يمنح A\boldsymbol{A} انتقائية ضمنية.

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

Bt=sB(xt),Ct=sC(xt),Δt=τΔ ⁣(Parameter+sΔ(xt))\boldsymbol{B}_t = s_B(x_t), \quad \boldsymbol{C}_t = s_C(x_t), \quad \Delta_t = \tau_\Delta\!\bigl(\text{Parameter} + s_\Delta(x_t)\bigr)
آلية الانتقائية — المعاملات تصبح مُعتمدة على المُدخَلB وC يُحسبان من المُدخَل بطبقات خطية بسيطة. أما Δ فتُحسب من المُدخَل ثم تمرّ عبر دالة softplus لضمان أنها موجبة دائماً. هذا هو التعديل الوحيد مقارنة بـS4 — لكنه يحوّل النموذج من أعمى عن المحتوى إلى واعٍ به.
افتح في المختبر
لاحظ كيف تعمل Δ كبوابة: قيمة كبيرة تُعيد ضبط الحالة وتُدخل الرمز الجديد، وقيمة صغيرة تحافظ على الحالة وتتجاهل الرمز.
تستيقظ التجربة عند وصولك…

Δ بوابة مُتعلَّمة: العلاقة مع LSTM

في مامبا ليست فكرة جديدة من العدم — جذورها تعود إلى مفهوم البوابات في الكلاسيكية. تُثبت الورقة (المبرهنة 1) أنه حين يكون بُعد الحالة يساوي 1، فإن فضاء الحالة الانتقائي يتحوّل تماماً إلى ذات بوابة:

gt=σ(Linear(xt))g_t = \sigma(\text{Linear}(x_t))، ثم ht=(1gt)ht1+gtxth_t = (1 - g_t)\, h_{t-1} + g_t\, x_t

هذه هي البوابة المعروفة في LSTM: حين تقترب gtg_t من 1 فالمعنى «تجاهل الحالة القديمة واستوعب المُدخَل الجديد»، وحين تقترب من 0 فالمعنى «حافظ على الحالة الحالية وتخطَّ هذا المُدخَل».

مامبا تُعمِّم هذه الفكرة في اتّجاهين: أولاً بُعد الحالة NN أكبر بكثير (عادة 16)، ما يمنح النموذج حالة مخفية أغنى وأكثر تعبيراً. ثانياً البوابة لا تُصمَّم يدوياً بل تنبع من تمييز منهجي لنظام ديناميكي مستمر.

gt=σ(Linear(xt)),ht=(1gt)ht1+gtxtg_t = \sigma(\text{Linear}(x_t)), \qquad h_t = (1 - g_t)\, h_{t-1} + g_t\, x_t
المبرهنة 1 — فضاء الحالة الانتقائي شبكة ارتجاعية مُعمَّمة ذات بوابةعندما N=1 وA=−1 وB=1 مع تفعيل softplus على Δ، يتحوّل تكرار فضاء الحالة الانتقائي إلى هذه المعادلة بالضبط. البوابة g هي التي تحدّد التوازن بين الاحتفاظ بالحالة القديمة واستيعاب المُدخَل الجديد.
افتح في المختبر
غيّر قيمة البوابة وراقب كيف يتغيّر التوازن في الحالة المخفية بين الاحتفاظ بالمعلومات السابقة واستيعاب المُدخَل الجديد.
تستيقظ التجربة عند وصولك…

تحقيق السرعة: المسح المُحسَّن للعتاد

حين تصبح معاملات فضاء الحالة معتمدة على المُدخَل، يفقد النموذج اختصار الالتفاف. التكرار المباشر تسلسلي ويتطلّب تخزين حالة بأبعاد (B,L,D,N)(B, L, D, N) — أكبر بكثير من المُدخَل نفسه. على المعالج الرسومي يعني هذا تنقّلاً مستمراً بين الذاكرة الرئيسية البطيئة (HBM) والذاكرة المحلية السريعة (SRAM)، وهذا هو عنق الزجاجة الفعلي في العمليات غير الضربية.

تتغلّب مامبا على هذه المشكلة بدمج ثلاث تقنيات معروفة في نواة حسابية واحدة:

  • . تُحمَّل المعاملات الصغيرة (Δ,A,B,C)(Δ, A, B, C) من HBM إلى SRAM مرة واحدة، ثم يُنفَّذ التمييز والمسح الكامل وحساب المُخرَج بالكامل داخل SRAM، ولا يُكتب إلى HBM إلا الناتج النهائي. هذا يقلّص عمليات القراءة من الذاكرة بمقدار NN (بُعد الحالة).

  • . التكرار ht=Aˉtht1+Bˉtxth_t = \bar A_t h_{t-1} + \bar B_t x_t يملك خاصية التجميع (associativity)، فيمكن حسابه بالتوازي عبر مجموع بادئي كفء (مسح بليلوك)، مما يتجنّب عنق الزجاجة التسلسلية.

  • . أثناء ، بدلاً من تخزين جميع الحالات الوسيطة، تُعاد حسابها فورياً من المُدخلات الصغيرة الموجودة في SRAM أصلاً. هذا يُبقي استهلاك الذاكرة مكافئاً لـFlashAttention.

افتح في المختبر
لاحظ كيف تتجنّب النواة المدمجة التنقّل المتكرر إلى الذاكرة البطيئة: المعاملات تُحمَّل مرة واحدة إلى SRAM، ولا يُكتب إلى HBM إلا الناتج النهائي.
تستيقظ التجربة عند وصولك…

كتلة مامبا: تصميم مبسَّط عن قصد

في معظم بنيات فضاء الحالة السابقة (مثل H3 وHyena)، كانت البنية تتناوب بين كتلة فضاء حالة وكتلة مستقلة، تماماً كما يتناوب المُحوِّل بين طبقة انتباه وطبقة MLP. مامبا تتخلّص من هذا التناوب بدمج الاثنين في كتلة واحدة متجانسة مستوحاة من وحدة الانتباه ذات البوابة.

كل كتلة مامبا تتكوّن من فرعين متوازيين:

  • الفرع الرئيسي: إسقاط خطّي ← أحادي البُعد ← تفعيل SiLU ← فضاء حالة انتقائي
  • فرع البوابة: إسقاط خطّي ← تفعيل SiLU

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

ملاحظة عملية مهمة: كتلتا مامبا تحتويان نفس عدد الذي يحتويه زوج واحد من طبقتَي انتباه+MLP في المحوِّل (نحو 12D212D^2 معامل)، ما يجعل المقارنة بينهما عادلة ومباشرة.

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

الفكرة مُترجَمة إلى كود

فضاء الحالة الانتقائي: من S4 إلى S6 في نحو 25 سطراًpython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import numpy as np

def softplus(x):
    return np.log1p(np.exp(x))

def selective_ssm(x, A, W_B, W_C, W_delta):
    """فضاء الحالة الانتقائي (S6): المعاملات تعتمد على المُدخَل.
    x: (L, D) تسلسل المُدخلات
    A: (D, N) مصفوفة الحالة (ثابتة)
    W_B, W_C: (D, N) أوزان الإسقاط
    W_delta: (D, 1) إسقاط حجم الخطوة
    """
    L, D = x.shape
    N = A.shape[1]
    h = np.zeros((D, N))               # الحالة المخفية
    outputs = []

    for t in range(L):
        # ── الانتقائية: المعاملات تعتمد على x[t] ──
        B_t = x[t] @ W_B               # (N,) — معتمد على المُدخَل
        C_t = x[t] @ W_C               # (N,) — معتمد على المُدخَل
        delta_t = softplus(x[t] @ W_delta)  # (D,) — معتمد على المُدخَل

        # ── التمييز ──
        A_bar = np.exp(delta_t[:, None] * A)     # (D, N)
        B_bar = delta_t[:, None] * B_t[None, :]  # (D, N)

        # ── الارتجاع ──
        h = A_bar * h + B_bar * x[t, :, None]    # (D, N)
        y_t = (h * C_t[None, :]).sum(axis=-1)    # (D,)
        outputs.append(y_t)

    return np.stack(outputs)  # (L, D)

# الفرق الوحيد عن S4: أن B وC ودلتا تُحسب من x[t]
# وليست ثابتة. هذا يتيح للنموذج اختيار ما يحفظه وما ينساه.
# هذا كل شيء. هذا هو جوهر ابتكار مامبا.

النتائج: أداء يضاهي المحوِّلات بنصف الحجم

اختُبرت مامبا على ثلاثة أنواع من البيانات — اللغة والحمض النووي والصوت — وحقّقت أرقاماً قياسية جديدة بين النماذج دون التربيعية في كلّ منها:

  • اللغة: مامبا بثلاثة مليارات معامل تفوّقت على محوِّلات بالحجم نفسه (Pythia-3B) بأربع نقاط في مهام الاستدلال المنطقي، بل تجاوزت Pythia-7B الذي يفوقها حجماً بأكثر من الضعف. وحين قُورنت بأقوى إعدادات المحوِّلات المُحسَّنة (وصفة LLaMA أي ++Transformer)، حقّقت مامبا قيم مكافئة عند جميع الأحجام من 125 مليون إلى 1.3 مليار معامل.

  • الحمض النووي: مامبا كانت النموذج الوحيد الذي تحسّنت حيرته باطّراد مع زيادة طول السياق وصولاً إلى تسلسلات بطول مليون رمز. وفي مهمة للتمييز بين خمسة أنواع من القردة العليا (تتشارك 99% من شفرتها الجينية)، تفوّقت مامبا بوضوح على HyenaDNA.

  • الصوت: في توليد الكلام (SC09)، تفوّق نموذج مامبا صغير بستة ملايين معامل على نماذج GAN و الأكبر حجماً بكثير. ونموذج بأربعة وعشرين مليون معامل خفّض درجة FID إلى 0.67 — أفضل نتيجة لنموذج ذاتي الارتجاع حتى وقتها.

  • السرعة: مامبا تحقّق استدلال أعلى بخمسة أضعاف من محوِّلات بحجم مماثل، والسبب أنها لا تحتاج ذاكرة مفاتيح وقيم — كل ما تحتفظ به حالة مخفية ثابتة الحجم. عملياً هذا يعني أن مامبا بـ6.9 مليار معامل أسرع عند التوليد من محوِّل بـ1.3 مليار.

لماذا كانت مامبا مهمة؟

  1. 2020

    S4 — فضاءات الحالة المُهيكلة تتغلّب على المدى الطويل

    قدّم غو وفريقه نموذج S4 الذي حقّق نتائج ممتازة على مقياس المدى الطويل بدمج ديناميكيات الزمن المستمر مع حساب التفافي كفء. لكن S4 أخفقت في المهام اللغوية لأن طبيعتها الثابتة زمنياً (LTI) لم تُتح لها الاستدلال بناءً على المحتوى.

  2. 2023

    H3 وHyena — فضاءات الحالة تقترب من المحوِّلات

    وضعت H3 نموذج S4 بين وصلات بوّابية، بينما استبدلت Hyena نموذج S4 بالتفاف مُعامَل عبر شبكة MLP. كلا المحاولتين ضيّقتا الفجوة مع المحوِّلات لكنهما لم تلحقا بها في المهام اللغوية.

  3. 2023

    مامبا — الانتقائية تكسر حاجز الجودة

    بتحويل معاملات فضاء الحالة إلى دوالّ تعتمد على المُدخَل، ومعالجة التحدي الحوسبي الناتج بمسح متوازٍ مُحسَّن للعتاد، أصبحت مامبا أول نموذج بزمن خطّي يصل إلى جودة المحوِّلات في اللغة مع سرعة توليد أعلى بخمسة أضعاف.

  4. 2024

    مامبا-2 — ثنائية فضاء الحالة والانتباه

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

  5. 2024

    جامبا — أول بنية هجينة فضاء حالة-محوِّل إنتاجية

    أطلقت AI21 Labs نموذج Jamba الذي يتناوب بين طبقات مامبا وطبقات انتباه مع مزيج من الخبراء للتعامل مع نافذة سياق بطول 256 ألف رمز بكفاءة — وأثبت عملياً أن البنية الهجينة قابلة للتوسّع الإنتاجي.

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

المرجعGu, Dao. Mamba: Linear-Time Sequence Modeling with Selective State Spaces. COLM, 2024.

مصطلحات هذه الورقة