Mixture of Experts للمحترف: سعة 671 مليار باراميتر بحساب 37 مليار فقط
المستوى المطلوب: محترف — يفترض معرفتك بأساسيات الـ Transformer وتشغيل النماذج على GPU.
الخلاصة الأول: MoE بيخلّيك تبني نموذج بسعة 671 مليار باراميتر، وتدفع تكلفة حساب نموذج 37 مليار بس لكل توكن. يعني سعة نموذج ضخم بفاتورة استدلال نموذج متوسط — بشرط يكون عندك VRAM يكفّي.
المشكلة باختصار
في النموذج الكثيف (Dense)، كل توكن بيمرّ على كل الأوزان. لو ضاعفت الباراميترات عشان تزوّد الجودة، بتضاعف تكلفة كل توكن وزمن الاستجابة معاها. ده بيخلّي تكبير النموذج غالي بشكل خطّي. السؤال اللي MoE بيجاوب عليه: تكبّر سعة النموذج من غير ما تكبّر فاتورة كل توكن بنفس النسبة؟ ودي مش نظرية — البنية دي شغّالة في الإنتاج دلوقتي في DeepSeek وMixtral وغيرهم.
الفكرة بمثال بسيط
تخيّل عيادة فيها 8 أطباء متخصصين: قلب، عظام، جلدية، وهكذا. لما مريض يدخل، موظف الاستقبال بيقرأ الشكوى ويحوّله لأنسب طبيبين بس، مش بيعرضه على الـ8 كلهم. النتيجة: المريض ياخد رأي متخصص دقيق، والعيادة بتخدم مرضى أكتر، لأن كل طبيب بيشتغل على الحالات اللي تخصّه فقط.
موظف الاستقبال ده هو الـ Router. الأطباء هم الـ Experts. وقرار "طبيبين بس" هو الـ top-2 routing. النموذج فيه خبرة 8 أطباء مخزّنة، لكن كل حالة بتكلّف وقت طبيبين فقط.
التعريف العلمي الدقيق
طبقة MoE بتستبدل طبقة الـ feed-forward العادية جوّه الـ Transformer بمجموعة شبكات FFN مستقلة اسمها experts، وقدّامها شبكة صغيرة اسمها gating network أو router. لكل توكن، الراوتر بيحسب درجات (logits) لكل خبير، بياخد أعلى k خبير (غالبًا k=2)، بيعمل softmax على درجاتهم، وبيجمع مخرجاتهم موزونة. باقي الخبراء مابيتفعّلوش أصلًا للتوكن ده — وده اللي اسمه conditional أو sparse activation.
الفرق الجوهري بالظبط: عدد الباراميترات الكلي بيكبر مع عدد الخبراء، لكن الحساب الفعلي (FLOPs) لكل توكن بيتحدد بعدد الخبراء النشطين بس مش الكل. الفكرة دي اتأسّست في ورقة Shazeer وزملائه سنة 2017، واتعمّمت في Switch Transformers سنة 2021 بتوجيه خبير واحد (top-1).
الأرقام اللي بتفرق
- DeepSeek-V3: 671 مليار باراميتر إجمالي، 37 مليار نشط لكل توكن (5.5% بس). يعني تكلفة الحساب لكل توكن تقارب نموذج كثيف أصغر بنحو 18 إلى 20 مرة. واتدرّب على 14.8 تريليون توكن في حدود 2.788 مليون ساعة GPU من نوع H800.
- Mixtral 8x7B: 46.7 مليار باراميتر إجمالي، 12.9 مليار نشط (top-2 من 8 خبراء)، وبيدّي جودة قريبة من Llama 2 70B باستدلال أسرع حوالي 6 مرات.
ركز في نقطة بتلخبط ناس كتير: "8x7B" مش معناها 56 مليار. طبقات الـ attention مشتركة بين الخبراء، فالإجمالي بيطلع 46.7 مليار مش حاصل ضرب 8 في 7.
مثال تنفيذي: طبقة top-2 MoE بـ PyTorch
الكود ده بيوضّح قلب الفكرة بالتفاصيل: راوتر، اختيار خبيرين، ودمج موزون. شغّال زي ما هو.