أحمد حايس
الرئيسيةمن أناالدوراتالمدونةالعروض
أحمد حايس

دورات عربية متخصصة في التقنية والبرمجة والذكاء الاصطناعي.

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

تعلم أسرعوصول مباشر للدورات والمسارات من الموبايل.
تنقل أوضحالروابط الأساسية والدعم في مكان واحد بدون تشتيت.

المنصة

  • الرئيسية
  • من أنا
  • الدورات
  • العروض
  • المدونة

الدعم

  • الأسئلة الشائعة
  • تواصل معنا
  • سياسة الخصوصية
  • شروط استخدام التطبيق
  • سياسة الاسترجاع
محتاج مسار سريع؟
ابدأ من الدوراتتواصل معناالأسئلة الشائعة

© 2026 أحمد حايس. جميع الحقوق محفوظة.

الرئيسيةالدوراتالعروضالمدونةالدخول
الذكاء الاصطناعي

Mixture of Experts للمتوسط: ليه DeepSeek-V3 أرخص 37x من GPT-4

📅 ٨ مايو ٢٠٢٦⏱ 6 دقائق قراءة
Mixture of Experts للمتوسط: ليه DeepSeek-V3 أرخص 37x من GPT-4

هذا المقال يتطلب مستوى متوسط — تحتاج فهم أساسي لمعمارية Transformer، الـ feedforward layers، ومفهوم الـ inference cost. لو أنت مبتدئ تمامًا، اقرأ مقال "Embeddings للمبتدئ" قبل ده.

لو شفت سعر DeepSeek-V3 على الـ API ($0.27 لكل مليون input token) ومقارنته بـ GPT-4 Turbo ($10 لكل مليون)، الفرق 37x. ده مش هامش ربح ولا حرب أسعار. ده اختلاف معماري جوهري اسمه Mixture of Experts، وهو السبب اللي خلّى موديلات 2025-2026 تكسر معادلة "الذكاء = تكلفة عالية".

Mixture of Experts: ازاي موديل بـ 671B باراميتر يتكلف زي موديل 37B

تمثيل بصري لشبكة عصبية متفرعة ترمز لـ Mixture of Experts حيث يتم توجيه التوكنز لخبراء متخصصين بدل تشغيل كل الشبكة

المشكلة باختصار

الموديل الكثيف (Dense) زي Llama 3 70B بيشغّل كل الـ 70 مليار باراميتر مع كل توكن واحد. لو سؤالك "ما تاريخ ميلاد جمال عبد الناصر؟"، الموديل بيستهلك نفس الـ FLOPs اللي بيستهلكها لو سؤالك "اشرحلي ميكانيكا الكم بمعادلات لاجرانج". ده هدر هائل، وهو السبب الرئيسي إن الـ inference غالي.

المعضلة الكلاسيكية: عايز موديل ذكي (يعني باراميترات كتير) ورخيص (compute قليل وقت الـ inference). الاتنين ضد بعض في المعمارية الكثيفة. MoE بتفك الارتباط ده بالظبط.

المثال البسيط: المستشفى المتخصص

تخيّل مستشفى فيه 256 طبيب، كل واحد متخصص في حاجة محددة. لما مريض بيدخل، الاستقبال (الـ router) بيشوف الشكوى ويبعته لاتنين بس من الأطباء، اللي بالظبط مناسبين لحالته. مش معقول كل المرضى يشوفهم كل الـ 256 طبيب — ده هيكون هدر مهول.

المريض الجاي يشكي من ألم في القلب → الراوتر بيبعته لطبيب القلب وطبيب الباطنة. مريض تاني يشكي من كسر → الراوتر بيبعته لطبيب العظام وطبيب الأشعة. كل مريض بيستفيد من خبرة المستشفى الكاملة، لكن مش كل المستشفى بتشتغل عليه.

Mixture of Experts بيشتغل بنفس المنطق: عندك مجموعة "خبراء" (شبكات FFN صغيرة)، وفيه مكوّن اسمه Gating Network بياخد التوكن الجاي ويقرر يبعته لأنهي اتنين أو تلاتة من أصل 256.

التعريف العلمي الدقيق

في كل MoE layer، بدل ما يكون عندك FFN واحدة (كبيرة)، بيكون عندك N من الـ FFNs (تسمى experts، عادة 8 أو 64 أو 256). لكل توكن x، الـ router بيحسب توزيع احتمالي على الخبراء عبر softmax(W_g · x)، وبياخد الـ top-k خبراء فقط (عادة k=1 أو k=2).

الناتج النهائي = combination مرجّح للخبراء النشطين فقط. الباقي مش بيتشغّل أصلاً. ده بيعمل فصل صريح بين:

  • Total parameters: حجم الموديل الكامل المخزّن في الذاكرة.
  • Active parameters: اللي بيتحرّك فعلاً مع كل توكن.

DeepSeek-V3 عنده 671B إجمالي، لكن 37B بس active لكل توكن. يعني الذكاء بحجم 671B لكن التكلفة الحسابية بحجم 37B تقريبًا. ده الـ trick.

رسم تخطيطي يقارن بين شبكة Dense تشغل كل الباراميترات وشبكة MoE تشغل خبراء قليلة فقط لكل توكن

الأرقام المقاسة من الورقة الفنية

  • DeepSeek-V3: 671B total / 37B active (نسبة تفعيل 5.5%)، 256 expert + 1 shared expert، top-2 routing. السعر $0.27/1M input tokens (DeepSeek API، يناير 2026).
  • Mixtral 8x22B: 141B total / 39B active، 8 experts top-2. يحقق throughput يقارب 4x من Llama-3-70B Dense على نفس الـ A100.
  • GPT-4 Turbo (مُقدَّر، غير مؤكد رسميًا): يُعتقد ~1.76T total / ~280B active بنسبة تفعيل 16%. السعر $10/1M.
  • Benchmark MMLU: DeepSeek-V3 = 88.5، GPT-4 Turbo = 86.4، Llama 3 70B Dense = 82.0.

اللي بيحصل فعلاً: نفس الذكاء (أو أعلى)، بتكلفة 1/37. ده مش تحسين هامشي. ده تغيير في الاقتصاد الكلي للـ AI inference.

كود تنفيذي: MoE layer من الصفر بـ PyTorch

Python
import torch
import torch.nn as nn
import torch.nn.functional as F

class Expert(nn.Module):
    def __init__(self, d_model, d_ff):
        super().__init__()
        self.fc1 = nn.Linear(d_model, d_ff)
        self.fc2 = nn.Linear(d_ff, d_model)

    def forward(self, x):
        return self.fc2(F.silu(self.fc1(x)))

class MoELayer(nn.Module):
    def __init__(self, d_model, d_ff, num_experts=8, top_k=2):
        super().__init__()
        self.num_experts = num_experts
        self.top_k = top_k
        self.gate = nn.Linear(d_model, num_experts, bias=False)
        self.experts = nn.ModuleList(
            [Expert(d_model, d_ff) for _ in range(num_experts)]
        )

    def forward(self, x):
        # x: [batch, seq, d_model]
        scores = self.gate(x)                    # [b, s, E]
        top_w, top_i = scores.topk(self.top_k, dim=-1)
        top_w = F.softmax(top_w, dim=-1)         # تطبيع على k فقط

        out = torch.zeros_like(x)
        for k in range(self.top_k):
            for e in range(self.num_experts):
                mask = (top_i[..., k] == e)
                if mask.any():
                    selected = x[mask]
                    weight = top_w[..., k][mask].unsqueeze(-1)
                    out[mask] += weight * self.experts[e](selected)
        return out

# تجربة سريعة
layer = MoELayer(d_model=512, d_ff=2048, num_experts=8, top_k=2)
x = torch.randn(2, 16, 512)
y = layer(x)
print(y.shape)  # torch.Size([2, 16, 512])

# عدد الـ active params تقريبًا = 2 / 8 = 25% من الـ total
total = sum(p.numel() for p in layer.parameters())
active_ratio = layer.top_k / layer.num_experts
print(f"total={total:,}, active≈{int(total * active_ratio):,}")

الكود ده تعليمي ومش محسّن. في الإنتاج، بتستخدم مكتبات زي vLLM أو MegaBlocks أو DeepSpeed-MoE لأنها بتعمل batched routing على مستوى الـ GPU kernels، وبتمنع الـ token dropping اللي ممكن يحصل لما خبير معين يستقبل توكنز أكتر من سعته.

أهم 4 trade-offs لازم تعرفها قبل ما تستخدم MoE

  1. الذاكرة عالية جدًا. رغم إن الـ active params قليلة، لازم تحمّل كل الـ 671B في VRAM لأن أي خبير ممكن يتفعّل في أي لحظة. DeepSeek-V3 محتاج 8x H100 80GB (~640GB VRAM إجمالاً) عشان يشتغل في الـ FP8. مكسبك في الـ compute، خسارتك في الـ memory footprint.
  2. Load Balancing مش سهل. لو الـ router بيبعت 90% من التوكنز لخبير واحد، باقي الخبراء بتموت من قلة التدريب (expert collapse). بتحتاج auxiliary loss (يسمى load balancing loss) عشان توزيع منتظم. ده تعقيد إضافي وقت التدريب وبيقلل الجودة بنسبة 1-2%.
  3. Latency أعلى للـ batch صغير. الـ routing بيضيف overhead حقيقي. لو طلبك واحد بس على GPU واحد، الـ MoE ممكن يكون أبطأ من dense بنسبة 15-25%. المكسب الحقيقي بيظهر مع batch sizes ≥ 16.
  4. Fine-tuning أصعب. الخبراء بتبقى متخصصة بشكل ضمني. لو عملت LoRA fine-tune على domain ضيق (مثلاً نصوص قانونية)، بتقع في catastrophic forgetting لباقي الخبراء أو بيتفعّل خبير واحد بس على كل التوكنز.

متى لا تستخدم MoE

  • لو بتشغّل موديل محلي على لابتوب أو single GPU 24GB — الذاكرة مش هتكفي. Dense 7B-13B أنسب بكتير.
  • لو throughput الإنتاج بتاعك أقل من 5 طلبات/ثانية — overhead الـ routing مش بيتعوّض، والـ Dense هيديك latency أحسن.
  • لو بتعمل fine-tuning مكثّف على domain ضيق — Dense أبسط وأنضف وأقل risk للـ expert collapse.
  • لو P99 latency ثابت شرط حرج (real-time medical, trading) — MoE فيه تباين أعلى لأن توكنز مختلفة بتمر بخبراء مختلفة بـ latency مختلفة.
  • لو الفريق مش جاهز يدير infrastructure معقد — MoE في الإنتاج محتاج expert parallelism وتوزيع GPUs بشكل متقن.

الخطوة التالية

افتح https://platform.deepseek.com، خد نفس prompt اللي بتستخدمه مع GPT-4 Turbo حاليًا، شغّله على DeepSeek-V3، قارن الجودة والتكلفة على 100 طلب فعلي من إنتاجك. لو الجودة مقبولة على use case معين بس (مثلاً تلخيص مستندات، مش code generation)، حوّل ذلك use case فقط للـ MoE وسيب الباقي على Claude/GPT. الانتقال 100% مرة واحدة قرار سيء.

المصادر

  • Shazeer et al., "Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer"، ICLR 2017 — الورقة المؤسِّسة لـ MoE في الـ deep learning الحديث.
  • DeepSeek-AI, "DeepSeek-V3 Technical Report"، arXiv:2412.19437، ديسمبر 2024.
  • Mistral AI, "Mixtral of Experts"، arXiv:2401.04088، يناير 2024.
  • Fedus, Zoph, Shazeer, "Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity"، JMLR 2022.
  • DeepSeek API Pricing Documentation — api-docs.deepseek.com/quick_start/pricing
  • vLLM project documentation, MoE serving — docs.vllm.ai

هل استفدت من المقال؟

اطّلع على المزيد من المقالات والدروس المجانية من نفس المسار المعرفي.

تصفّح المدونة