استكشف بنية Mixture of Experts (MoE). تعرف على كيفية قيام شبكات البوابات والطبقات المتفرقة بتوسيع نطاق الشبكات العصبية من أجل تحقيق أداء عالٍ في مجال الذكاء الاصطناعي والرؤية الحاسوبية.
مزيج الخبراء (MoE) هو تصميم معماري متخصص في التعلم العميق يسمح للنماذج بالتوسع إلى أحجام ضخمة دون زيادة متناسبة في تكلفة الحوسبة. على عكس الشبكة العصبية الكثيفة القياسية (NN)، حيث تكون كل معلمة نشطة لكل مدخلات، يستخدم نموذج MoE تقنية تسمى الحساب الشرطي. يعمل هذا النهج على تنشيط مجموعة صغيرة فقط من مكونات الشبكة — يشار إليها باسم "الخبراء" — بناءً على الخصائص المحددة لبيانات الإدخال. من خلال القيام بذلك، تتيح بنى MoE إنشاء نماذج أساسية قوية يمكن أن تمتلك تريليونات من المعلمات مع الحفاظ على زمن الاستدلال وسرعة التشغيل لأنظمة أصغر بكثير.
تنبع كفاءة نموذج Mixture of Experts من استبدال الطبقات الكثيفة القياسية بطبقة MoE متفرقة. تتكون هذه الطبقة عادةً من عنصرين رئيسيين يعملان معًا لمعالجة المعلومات بكفاءة:
في حين أن كلا المفهومين ينطويان على استخدام نماذج فرعية متعددة، من الضروري التمييز بين مزيج الخبراء ومجموعة النماذج. في المجموعة التقليدية، يعالج كل نموذج في المجموعة نفس المدخلات، ويتم حساب متوسط نتائجها أو التصويت عليها لتعظيم الدقة. يزيد هذا النهج من التكلفة الحسابية بشكل خطي مع عدد النماذج.
على العكس من ذلك، فإن نموذج MoE هو نموذج واحد موحد حيث تمر المدخلات المختلفة بمسارات مختلفة. يهدف نموذج MoE المتفرق إلى القابلية للتوسع والكفاءة من خلال تشغيل جزء صغير فقط من إجمالي المعلمات لأي خطوة استدلال معينة. وهذا يسمح بالتدريب على كميات هائلة من بيانات التدريب دون التكاليف الباهظة المرتبطة بالمجموعات الكثيفة.
أصبحت بنية MoE حجر الزاوية للذكاء الاصطناعي الحديث عالي الأداء، لا سيما في السيناريوهات التي تتطلب قدرات متعددة المهام واحتفاظًا واسعًا بالمعرفة.
لفهم كيفية اختيار شبكة البوابة للخبراء، انظر هذا المثال المبسط PyTorch . إنه يوضح آلية التوجيه التي تختار الخبير الأكثر صلة بمدخلات معينة.
import torch
import torch.nn as nn
# A simple router deciding between 4 experts for input dimension of 10
num_experts = 4
input_dim = 10
router = nn.Linear(input_dim, num_experts)
# Batch of 2 inputs
input_data = torch.randn(2, input_dim)
# Calculate scores and select the top-1 expert for each input
logits = router(input_data)
probs = torch.softmax(logits, dim=-1)
weights, indices = torch.topk(probs, k=1, dim=-1)
print(f"Selected Expert Indices: {indices.flatten().tolist()}")
على الرغم من مزاياها، فإن نماذج MoE تطرح تحديات فريدة على عملية التدريب. وتتمثل إحدى المشكلات الأساسية في توازن الحمل؛ فقد يفضل جهاز التوجيه عددًا قليلاً من الخبراء "الشعبيين" بينما يتجاهل الآخرين، مما يؤدي إلى إهدار القدرات. وللتخفيف من حدة هذه المشكلة، يستخدم الباحثون وظائف خسارة إضافية لتشجيع الاستخدام المتساوي لجميع الخبراء.
علاوة على ذلك، يتطلب نشر هذه النماذج الضخمة إعدادات أجهزة متطورة. نظرًا لأن إجمالي عدد المعلمات مرتفع (حتى لو كانت المعلمات النشطة منخفضة)، غالبًا ما يتطلب النموذج ذاكرة VRAM كبيرة، مما يستلزم تدريبًا موزعًا عبر عدة وحدات معالجة رسومات. تساعد الأطر مثل Microsoft في إدارة التوازي اللازم لتدريب هذه الأنظمة بكفاءة. لإدارة مجموعات البيانات وسير عمل التدريب لهذه البنى المعقدة ، توفر أدوات مثل Ultralytics البنية التحتية الأساسية للتسجيل والتصور والنشر.