أولاً: المقدمة

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

ثانياً: ما هو MoE؟

قبل التعمّق في MoE، لنراجع سريعاً بنية Transformer الكلاسيكية. في Transformer القياسي، تحتوي كل طبقة Encoder/Decoder على انتباه متعدد الرؤوس (Multi-Head Attention) وشبكة تغذية أمامية كاملة الاتصال (Feed-Forward Network، وغالباً تُختصر بـ FNN). تقوم هذه الـFNN بتنفيذ التحويلات الخطية واللاخطية نفسها على جميع رموز الإدخال (tokens)، ما ينتج عنه حسابات كثيفة واستهلاك موارد مرتفع.

أما تقنية Mixture of Experts (اختصاراً MoE)، فهي تستبدل موضع الـFNN بآلية «خبراء»: إذ تُقسِّم شبكة التغذية الأمامية كبيرة الحجم إلى عدة شبكات فرعية (خبراء)، وتستخدم شبكة بوّابة (Router) لتوجيه الرموز ديناميكياً. عملياً، تحسب شبكة البوّابة درجات (score) لكل خبير وفق خصائص الرمز (مثل embedding أو سياق الانتباه)، ثم تُفعِّل فقط أعلى K خبراء للمشاركة في الحساب، بينما تبقى بقية الخبراء في حالة خمول. بهذه الطريقة يمكن أن يصل إجمالي عدد معلمات النموذج إلى مئات المليارات، لكن المعلمات المُفعّلة فعلياً (Activated Parameters) في كل عملية حساب لا تمثّل سوى جزء صغير عادةً (حوالي 5% إلى 15%)، ما يقلّل بشكل كبير من كلفة الحساب واستهلاك الذاكرة.

  • الاختلاف الجوهري بين Transformer وMoE
    • الحوسبة الكثيفة: في Transformer القياسي، تتعامل الـFNN مع جميع المعلمات بالطريقة نفسها؛
    • الحوسبة الشرطية: في MoE، يُنفَّذ الحساب فقط على جزء من الخبراء، لتحقيق تفعيلٍ متناثر (Sparse Activation).
  • لماذا هذا التصميم؟ يعود ذلك أساساً إلى:
    • القابلية للتوسّع: ضمن حدود الميزانية يمكن زيادة عدد الخبراء لرفع سعة النموذج؛
    • الكفاءة: تقليل FLOPs واستهلاك الذاكرة بسبب انخفاض المعلمات المُفعّلة؛
    • التخصّص: يمكن لخبراء مختلفين أن «يتخصّصوا» في أنواع مختلفة من الخصائص أو المهام لتحسين الأداء.
تخيّل مكتبة (تمثّل Transformer) تحتوي آلاف الكتب (تمثّل المعلمات). للعثور على معلومة يجب تصفّح كل الصفحات؛ بينما MoE يشبه أمين مكتبة (شبكة البوّابة) يختار لك فقط الكتب الأكثر صلة (الخبراء) لتقرأها، فيوفّر الوقت ويزيد الكفاءة.

ثالثاً: المكوّنات الأساسية لـ MoE

يعتمد تشغيل MoE أساساً على وحدتين:

  1. الخبراء (Experts)
    • كل خبير هو طبقة فرعية مستقلة من شبكة التغذية الأمامية (عادةً تحوي تحويلين خطيين مع دالة تفعيل)، وهو أشبه بتدريبٍ متخصص لجزء من فضاء المعلمات (انظر: 《Outrageously Large Neural Networks: The Sparsely‑Gated Mixture‑of‑Experts Layer》).
    • يمكن اعتماد استراتيجيات تقسيم مختلفة بين الخبراء، مثل Balanced K‑Means أو Co‑activation Graph أو Gradient-aware Partitioning، بهدف ضمان أفضل توزيع للمعلمات في المجال الذي يتفوّق فيه كل خبير.
  2. شبكة البوّابة (Router)
    • يُمرَّر الإدخال x عبر إسقاط خطي لإنتاج درجات الخبراء: H(x)=xW\_g، ثم تُضاف ضوضاء قابلة للتعلّم لتنعيم التوجيه: H'(x)=H(x)+SoftPlus(xW\_n)⊙𝒩(0,1) (وتُسمّى العملية Noisy Gating).
    • تعتمد استراتيجية Top‑K: الاحتفاظ بأعلى K خبراء حسب الدرجة، ثم بعد التطبيع إخراج G(x)=Softmax(KeepTopK(H'(x),K))، وتوجيه الإدخال إلى هؤلاء الخبراء.
    • كما تُضاف خسارة مساعدة لموازنة الحمل L\_aux=λ·CV(n\_1,…,n\_E) لضمان تقليل تباين عدد الرموز المرسلة لكل خبير، لتفادي «ازدحام» الخبراء الأكثر شعبية.

رابعاً: لماذا MoE فعّال إلى هذا الحد؟

1. تقليل FLOPs عبر الحوسبة الشرطية

في Transformer القياسي، تتطلب الـFNN تنفيذ الحساب على جميع الخبراء الفرعيين N وعلى جميع الرموز، بتعقيد O(N·d^2). بينما MoE يُفعِّل فقط K خبراء، فينخفض التعقيد إلى O(K·d^2). وعندما يكون K أصغر بكثير من N، ينخفض حجم الحساب تقريباً بنسبة N/K.

2. الإفراط في المعلمات وقدرة التمثيل

النماذج فائقة الحجم تحتاج كثيراً من المعلمات لتمثيل أنماط معقّدة، لكن الزيادة الكثيفة تؤدي إلى اختناق حسابي. تسمح آلية التوجيه المتناثر في MoE بوجود إجمالي معلمات أكبر بكثير من المعلمات المُفعّلة أثناء التدريب (E·d^2)، ما يعزّز قدرة النموذج على التقاط أنماط متنوعة.

3. التخصّص والتوازي الموزّع

يتعلّم كل خبير خصائص في حيّز فرعي محدد، محققاً تقسيم وظائف. كما يمكن نشر خبراء مختلفين على أجهزة مختلفة (Expert Parallelism) لتقليل كلفة التزامن في الشبكة الرئيسية. وبالاعتماد على Pipeline أو Tensor Parallelism يمكن تحقيق معدّل معالجة أعلى وزمن تأخير أقل (انظر: 《GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding》).

4. التحقق العملي

  • نموذج GLaM مع 1.2 تريليون معلمة فعّل فقط 8% من المعلمات، وتفوّق على GPT‑3 (175B) في 29 مهمة NLP، ما يبرز مزايا الحوسبة الشرطية.
  • Switch Transformer باستخدام توجيه Top‑1 حقق زيادة في throughput تقارب 2× مع الحفاظ على الأداء.

خامساً: تفاصيل تقنية حول MoE

تشبه الشبكات العصبية الضخمة التقليدية (مثل Transformer) «لاعباً شاملاً» يستدعي جميع المعلمات في كل مرة، وهو مكلف. بينما يعتمد MoE أسلوب «الاستدعاء عند الحاجة» (الحوسبة الشرطية)، بحيث يشارك عدد محدود من الخبراء فقط، لتجنّب هدر الموارد.

1. التفعيل المتناثر والمعلمات المُفعّلة

نظرياً، طبقة FFN في Transformer تنفّذ حساباً كاملاً على جميع الرموز، لكن عملياً لا تُفعَّل إلا بعض العصبونات، ما يكشف عن متناثريّة طبيعية (انظر: 《MoEfication: Transformer Feed-forward Layers are Mixtures of Experts》). يستفيد MoE من ذلك بتقسيم الـFNN إلى E خبراء، وجعل شبكة البوّابة تختار K خبراء لكل رمز:

المؤشرالشرح
إجمالي المعلماتقد يصل إلى مليارات أو حتى مئات المليارات
المعلمات المُفعّلةتقريباً = إجمالي المعلمات × (K/E)، وغالباً ضمن 5% إلى 15%
الميزة الناتجةتنخفض FLOPs وكلفة الذاكرة تناسبياً، ما يرفع كفاءة التدريب والاستدلال

2. شبكة البوّابة واستراتيجية التوجيه

تقوم شبكة البوّابة (Router) باختيار الخبراء، وآلية شائعة كالتالي:

  1. إسقاط خطي: H(x)=xW\_g
  2. حقن ضوضاء: H'(x)=H(x)+g·StandardNormal()⊙SoftPlus(H(x)) (وتُسمّى أيضاً Noisy Gating)
  3. أخذ Top-K: G(x)=Softmax(KeepTopK(H'(x),K))
  • Top-2 مقابل Top-1: يستخدم GShard استراتيجية Top-2 ويمزج المخرجات لرفع المتانة؛ بينما Switch Transformer يستخدم Top-1 لتبسيط تعقيد الاتصال (انظر: 《GShard...》 و《Switch Transformers...》).
  • التناثر الهرمي: نماذج مثل Qwen3 قد تعدّل قيمة K ديناميكياً عبر أعماق الشبكة للحصول على حوسبة شرطية أدق.

3. موازنة الحمل والخسارة المساعدة

قد تُفعَّل بعض الخبراء باستمرار بسبب درجات عالية، مسببة فرط تحميل. لتفادي عدم توازن الموارد، يستخدم MoE خسارة موازنة الحمل المساعدة (Auxiliary Load Loss)، وتُعرّف غالباً بمعامل التباين لعدد الرموز التي يستقبلها كل خبير:

L\_aux = λ · CV(n₁, n₂, …, n\_E) حيث nᵢ هو عدد الرموز التي عالجها الخبير i في الدفعة الحالية، وλ وزن موازنة.

تُحسَّن هذه الخسارة مع الخسارة الأساسية أثناء ما قبل التدريب للحفاظ على استخدام متقارب للخبراء (يمكن الرجوع إلى GShard وإلى تنفيذ aux\_loss في مكتبة transformers).

سادساً: أمثلة كلاسيكية لنماذج MoE

فيما يلي نماذج MoE مفتوحة المصدر/بحثية بارزة حسب الزمن:

1. Sparsely-Gated Mixture-of-Experts Layer(2017)

قدمه Shazeer وآخرون من Google Brain (راجع 《Outrageously Large Neural Networks: The Sparsely‑Gated Mixture‑of‑Experts Layer》). كان أول إدخال لآلية التوجيه في طبقة التغذية الأمامية، مع Noisy Top‑K Gating وخسارة موازنة الحمل. أسّس لفكرة Conditional Computation والتفعيل المتناثر تحت حجم معلمات ضخم.

2. GShard(2020)

قدمه Lepikhin وآخرون من Google Research (《GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding》). وضع MoE بتوجيه Top‑2 داخل كل طبقة FNN، وعرّف مفهوم capacity، ويدعم توزيع الخبراء تلقائياً عبر عدة آلات/GPUs، مع استراتيجيات توجيه عشوائي وموازنة الحمل، ما مكّن تدريب واستدلال نماذج بحجم 600 مليار معلمة.

3. Switch Transformer(2021)

قدمه Fedus وآخرون من Google Research (《Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity》). قدّم توجيه Top‑1 بحيث يزور كل token خبيراً واحداً فقط، ما يبسط الاتصال، مع إدخال Capacity Factor لتحسين الحمل، ودعم bfloat16. حقق توازناً جيداً بين كلفة الاتصال وthroughput.

4. GLaM(2021)

قدمه Du وآخرون من Google Research (《GLaM: Efficient Scaling of Language Models with Mixture-of-Experts》). يضم 64 خبيراً ويُفعّل خبيرين بكل طبقة، ويستخدم توجيهاً بحسب المودالية (Mixture-of-Modality) لتوجيه مهام/مدخلات من موداليات مختلفة إلى خبراء مختلفين. فعّل 8% فقط من المعلمات.

5. DeepSeek-MoE(2024)

قدمه فريق DeepSeek AI (《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》). استخدم تقسيم خبراء دقيقاً (Fine-Grained Expert Segmentation) وتقنية الخبراء المشتركة (Shared Experts) للمعرفة العامة، مع تفعيل 6 خبراء لكل token.

6. LLaMA-MoE(2024)

قدمه فريق Sys4NLP استناداً إلى Meta LLaMA2 (《LLaMA-MoE: Building Mixture-of-Experts from LLaMA with Continual Pre-training》). يدعم عدة طرق لتقسيم الخبراء (عشوائي/تجميع/Co-activation graph...)، ويقدّم توجيهاً ضوضائياً Top‑K وتوجيه Switch أحادي الخبير، مع تصميم معلمات أخف، ما يوضح مساراً لتطبيق MoE على نماذج خفيفة.

7. Qwen3-235B-A22B(2025)

صدر عن فريق Alibaba Tongyi Qwen، مع توثيق رسمي ومستودع مفتوح. إجمالي المعلمات 235 ملياراً، و128 خبيراً؛ يستخدم جدولة متناثرة هرمية لضبط عدد الخبراء المُفعّلين ديناميكياً، مع تفعيل 8 خبراء لكل token. يدعم سياق 32K ويمكن توسيعه إلى 128K عبر YaRN، ويستخدم GQA وآليات offloading غير متزامنة لتحسين الكفاءة. يقدم حلولاً جديدة للتعامل مع نصوص طويلة وحالات throughput عالية مع خفض كلفة الاستدلال.

سابعاً: سيناريوهات الاستخدام والقيود

عند النشر العملي، لكل من MoE وTransformer الكثيف مزاياه، ويُختار بحسب الموارد والاحتياج:

  • سيناريوهات متعددة الآلات/عالية throughput تناسب MoE أكثر
    • Expert Parallelism: يمكن توزيع خبراء MoE على عدة آلات/أجهزة، بحيث تعالج كل آلة عدداً قليلاً من الخبراء، ما يخفف ضغط الذاكرة عن تكرار النموذج بالكامل.
    • التوجيه الشرطي: لا تحتاج شبكة البوابة إلا لتمرير معلومات توجيه محدودة، دون مزامنة جميع المعلمات، ما يخفض كلفة الاتصال ويرفع throughput.
    • التوسّع المرن: عند توسعة العنقود يمكن إضافة/إعادة توزيع الخبراء، مع فصل سعة النموذج عن موارد العتاد.
  • سيناريوهات آلة واحدة/ذاكرة منخفضة أو throughput منخفض تناسب Transformer الكثيف
    • كلفة التوجيه والإدارة: قد تصبح كلفة البوّابة وإدارة الخبراء والاتصال بين الأجهزة نسبةً كبيرة على جهاز واحد، ما يزيد التأخير وتعقيد التنفيذ.
    • سهولة النشر: Transformer القياسي لا يحتاج موازنة حمل أو توجيهاً إضافياً، والبيئات والأطر أكثر نضجاً.
    • كفاءة استخدام الموارد: يمكن تحسين النماذج الكثيفة عبر Pruning أو Quantization أو Distillation للحصول على أفضل كلفة/أداء.

ثامناً: الخلاصة والتطلّعات

من خلال تتبّع مسار تطور MoE—from «Noisy Top‑K Gating» إلى «التجزئة التلقائية عبر آلات متعددة»، ثم إلى ابتكارات مثل «التوجيه أحادي الخبير» و«خبراء متعدد الموداليات» و«التقسيم الدقيق» و«الجدولة المتناثرة الهرمية»—يتضح أن كل جيل من التطوير يسعى لتحقيق توازن بين «سعة نموذج أكبر» و«استهلاك موارد حسابية أقل». يقوم جوهر MoE على Conditional Computation، ما يمنحه قابلية توسّع وكفاءة عالية، لكنه يضيف تحديات في التوجيه وموازنة الحمل والاتصال.

أصبح MoE فرعاً مهماً في نماذج التعلّم العميق الضخمة؛ وفهم مبادئ تصميمه وسيناريوهات تطبيقه ضروري لدفع الجيل التالي من الأنظمة الذكية عالية الكفاءة.


بعض المصطلحات

Token:هو أصغر وحدة يستخدمها النموذج لمعالجة النص، قد تكون حرفاً صينياً أو كلمة إنجليزية.

参数(Parameters):هي القيم القابلة للتدريب في الشبكة العصبية؛ يمكن تشبيهها بقطع الليغو، وكلما زادت زاد تعقيد النموذج.

条件计算(Conditional Computation):آلية تُفعّل جزءاً فقط من الخبراء بحسب المدخل، كما لو أنك تستشير معلمين متخصصين بدل اجتماع جميع الأفراد.

专家(Expert):الشبكات الفرعية داخل MoE، وكل خبير يعالج نوعاً محدداً من البيانات أو الخصائص.

门控网络(Router/Gating Network):الوحدة التي تقرر لأي خبير/خبراء يُرسل token للمعالجة.

激活参数(Activated Parameters):عدد المعلمات التي تشارك فعلياً في عملية حساب واحدة؛ عادةً أقل بكثير من إجمالي المعلمات.

稀疏激活(Sparse Activation):تفعيل جزء من الخبراء/المعلمات في كل مرة لتقليل الكلفة الحسابية.

稠密模型(Dense Model):النماذج التقليدية التي تستدعي كل المعلمات في كل حساب.

FLOPs(浮点运算次数):مقياس لحجم الحساب (عدد العمليات العائمة)، وكلما قل كان أوفر.

显存(GPU Memory):ذاكرة بطاقة الرسوميات لتخزين المعلمات والنتائج الوسيطة.

前馈网络(Feed-Forward Network,FFN):طبقة في Transformer مسؤولة عن تحويلات لاخطية للمدخلات.

多头注意力(Multi-Head Attention):آلية في Transformer تسمح بالتركيز على أجزاء متعددة من المدخل بالتوازي.

Top-K选择/路由(Top-K Routing):استراتيجية اختيار أعلى K خبراء بالدرجة لتفعيلهم.

Noisy Gating(噪声门控):إدخال ضوضاء أثناء اختيار الخبراء لتحسين المتانة وموازنة الحمل.

辅助负载损失(Auxiliary Load Loss):خسارة تساعد على موازنة أحمال الخبراء لتجنب ازدحام خبير معين.

变异系数(Coefficient of Variation,CV):مقياس إحصائي لمدى توازن أحمال الخبراء؛ الأصغر يعني توازناً أفضل.

专家并行(Expert Parallelism):توزيع الخبراء عبر أجهزة متعددة بحيث ينفّذ كل جهاز جزءه.

分布式并行(Distributed Parallelism):توزيع النموذج/البيانات على عدة أجهزة للتوازي وزيادة الكفاءة.

Pipeline并行:تقسيم النموذج إلى مراحل تُنفَّذ كخط إنتاج.

Tensor并行:توزيع حساب طبقة واحدة على عدة أجهزة بالتوازي.

容量因子(Capacity Factor):معامل يحدد الحد الأقصى للرموز التي يمكن لخبير معالجتها لتجنب الحمل الزائد.

专家容量(Expert Capacity):أقصى عدد tokens يمكن لخبير التعامل معها في forward واحد.

细粒度专家切分(Fine-Grained Expert Segmentation):تقسيم الـFFN إلى خبراء أصغر وأكثر عدداً.

共享专家(Shared Experts):خبراء مشتركون لمعالجة المعرفة العامة المشتركة بين مهام متعددة.

分层稀疏(Hierarchical Sparsity):تعديل عدد الخبراء المُفعّلين ديناميكياً عبر طبقات مختلفة.

GQA(Grouped Query Attention):آلية انتباه فعّالة لتحسين كفاءة الاستدلال.

异步卸载(Asynchronous Offloading):نقل جزء من الحساب/البيانات بشكل غير متزامن لأجهزة أخرى لتحسين استخدام الموارد.

Mixture-of-Modality:توجيه بحسب المودالية (نص/شفرة...) لتخصيص خبراء لموداليات مختلفة.

剪枝(Pruning):إزالة معلمات أقل أهمية لتقليل الحجم والحساب.

量化(Quantization):استخدام دقة أقل لتخزين/حساب المعلمات لتقليل الاستهلاك.

蒸馏(Distillation):تدريب نموذج صغير ليكتسب قدرات نموذج كبير.

路由(Routing):عملية اختيار الخبراء وإرسال tokens إليهم.

主损失(Main Loss):هدف التحسين الأساسي أثناء التدريب.

辅助损失(Auxiliary Loss):هدف تحسين مساعد (مثل موازنة الحمل).

专家切分(Expert Partitioning):تقسيم الشبكة إلى خبراء عبر تجميع/تقسيم رسم بياني...إلخ.

共激活图分割(Co-activation Graph Partitioning):تقسيم الخبراء وفق ترابط تفعيل العصبونات.

梯度感知分割(Gradient-aware Partitioning):تقسيم الخبراء باستخدام معلومات التدرج.

专家路由(Expert Routing):توجيه المدخلات إلى الخبراء.

Top-1/Top-2 路由:إرسال كل token إلى خبير واحد/خبيرين بحسب أعلى الدرجات.

容量(Capacity):الحد الأقصى للرموز التي يستطيع الخبير معالجتها في forward واحد.

激活比例(Activation Ratio):نسبة المعلمات المُفعّلة من إجمالي المعلمات في كل حساب.

吞吐率(Throughput):حجم البيانات المعالجة في وحدة زمن.

延迟(Latency):الزمن اللازم لمعالجة إدخال واحد.

自动分片(Automatic Sharding):توزيع معلمات النموذج تلقائياً عبر أجهزة متعددة.

bfloat16:تنسيق نقطة عائمة منخفض الدقة يُستخدم كثيراً لتقليل الذاكرة في التدريب.

YaRN技术:تقنية لتوسيع طول السياق في النماذج الكبيرة.