خليط الخبراء (MoE): كيف يعمل ومتى تستخدمه
تريد التوسع من نموذج بـ 7 مليار (7B) معلمة إلى نموذج بـ 70 مليار (70B) معلمة دون شراء أربع وحدات معالجة رسومية (GPUs) إضافية.
يقترح أحدهم استخدام "خليط الخبراء" (Mixture of Experts - MoE). ويدّعون أنك ستحصل على أداء نموذج الـ 70B باستخدام قدرات حوسبة تعادل نموذج الـ 7B فقط.
يبدو الأمر وكأنه "غداء مجاني"، ولكن هناك خدعة.
كيف يعمل؟
يستخدم المحول الكثيف (Dense Transformer) مثل Llama 3.2 نسبة 100% من معلماته لكل رمز (token). إذا قمت بالتوسع من 7B إلى 70B، فستضاعف كلاً من الذاكرة والحوسبة بمقدار 10 مرات.
يقوم MoE بالفصل بين هذين الأمرين؛ حيث يخزن النموذج المزيد من المعلمات (تكلفة ذاكرة أعلى) ولكنه يستخدم جزءاً بسيطاً منها فقط لكل رمز (تكلفة حوسبة أقل).
المقايضة:
• Dense 7B: إجمالي المعلمات 7B | النشطة 7B | الحوسبة 7B | الذاكرة 14 GB • Dense 70B: إجمالي المعلمات 70B | النشطة 70B | الحوسبة 70B | الذاكرة 140 GB • MoE 45B: إجمالي المعلمات 45B | النشطة ~13B | الحوسبة ~14B | الذاكرة ~90 GB
الخدعة: لا تزال تدفع تكلفة الذاكرة الخاصة بنموذج كبير. لا يمكنك تشغيل Mixtral على وحدة معالجة رسومية واحدة بسعة 24 جيجابايت. أنت بحاجة إلى ذاكرة فيديو (VRAM) كافية لاستيعاب جميع الخبراء، حتى أولئك الذين لا يتم استخدامهم.
البنية الهندسية:
في نموذج MoE المتناثر (Sparse MoE)، يتم استبدال شبكة التغذية الأمامية (FFN) القياسية بعدة شبكات FFN "خبراء" وموجه (router) مُتعلم.
- يأخذ الموجه رمزاً (token).
- يخصص درجة لكل خبير.
- يختار أفضل k من الخبراء (في Mixtral، k=2).
- يمرر الرمز عبر هؤلاء الخبراء فقط.
- يدمج النتائج.
الموجه ليس مجدولاً يدوياً، بل هو طبقة مُتعلمة. فهو يتعلم إرسال الرموز الرياضية إلى خبير معين ورموز البرمجة إلى خبير آخر.
تحدي التدريب:
الخطر الأكبر هو "انهيار الموجه" (router collapse). فبدون مساعدة، قد يرسل الموجه كل رمز إلى نفس الخبيرين. وبما أن هذين الخبيرين يصبحان أفضل، فإن الموجه يرسل إليهما المزيد من البيانات، مما يجعل الخبراء الآخرين عديمي الفائدة.
يستخدم المهندسون "خسارة موازنة الحمل المساعدة" (auxiliary load-balancing loss) لإصلاح ذلك، وهي تقوم بمعاقبة النموذج إذا لم يستخدم جميع الخبراء بالتساوي.
متى يجب تجنب MoE:
• تحتاج إلى زمن استجابة (latency) ثابت: يتميز MoE بتباين أعلى في أوقات الاستجابة. • ذاكرة الفيديو (VRAM) محدودة: إذا كان لديك وحدة معالجة رسومية واحدة بسعة أقل من 48 جيجابايت، فالتزم بالنماذج الكثيفة (dense models). • تقوم ببناء نماذج صغيرة جداً: إذا كان نموذجك أقل من 3 مليار معلمة، فإن العبء الإضافي (overhead) سيكون مرتفعاً جداً. • تحتاج إلى بنية تحتية بسيطة: يتطلب MoE توازياً معقداً للخبراء (expert parallelism) ونوى مخصصة (custom kernels).
يكون MoE في أفضل حالاته عندما تستهدف نموذجاً كثيفاً أساسياً يتجاوز 30 مليار معلمة، وتتوفر لديك الذاكرة اللازمة لدعمه.
خليط الخبراء (MoE): ما الذي يفعله حقاً في الكواليس ومتى يؤتي ثماره
تتجه النماذج اللغوية الكبيرة (LLMs) نحو أحجام هائلة. ولكن، هل يعني هذا أننا سنحتاج دائماً إلى قوة حوسبة أكبر لكل عملية استدلال (inference)؟ ليس بالضرورة. هنا يأتي دور "خليط الخبراء" (Mixture of Experts - MoE).
في هذا المقال، سنغوص في أعماق MoE، ونفهم كيف يعمل، ولماذا أصبح حجر الزاوية في النماذج الحديثة مثل Mixtral و GPT-4.
النماذج الكثيفة مقابل النماذج المتفرقة (Dense vs. Sparse Models)
لفهم MoE، يجب أولاً فهم الفرق بين النماذج الكثيفة والمتفرقة.
النماذج الكثيفة (Dense Models)
في النموذج الكثيف التقليدي، يتم تفعيل كل معلمة (parameter) في النموذج لكل مدخل (input). إذا كان لديك نموذج يحتوي على 100 مليار معلمة، فإن كل عملية حسابية ستستخدم الـ 100 مليار معلمة بالكامل. هذا يعني أنه مع زيادة حجم النموذج، تزداد التكلفة الحسابية (computational cost) بشكل خطي ومباشر.
النماذج المتفرقة (Sparse Models)
النماذج المتفرقة، مثل MoE، تتبع نهجاً مختلفاً. بدلاً من استخدام النموذج بأكمله، تقوم بتفعيل جزء فقط من المعلمات لكل مدخل. هذا يسمح ببناء نماذج ضخمة جداً من حيث عدد المعلمات، ولكن مع الحفاظ على تكلفة حسابية منخفضة أثناء الاستدلال.
كيف يعمل خليط الخبراء (MoE)؟
تتكون بنية MoE من مكونين رئيسيين:
- الخبراء (Experts): هي عبارة عن شبكات عصبية صغيرة (Feed-Forward Networks) متخصصة. بدلاً من وجود شبكة واحدة ضخمة، لدينا العديد من الشبكات الصغيرة.
- شبكة البوابة (Gating Network / Router): هي "العقل المدبر" الذي يقرر أي من الخبراء هو الأنسب لمعالجة مدخل معين.
آلية العمل:
عندما يدخل "الرمز" (token) إلى النموذج:
- تستلم شبكة البوابة الرمز.
- تقوم الشبكة بحساب "أوزان" لكل خبير، لتحديد مدى ملاءمة كل خبير لهذا الرمز.
- يتم توجيه الرمز إلى أفضل (أو أفضل $k$) من الخبراء (عادة ما يكون $k=1$ أو $k=2$).
- يقوم هؤلاء الخبراء فقط بمعالجة الرمز، ثم يتم دمج نتائجهم.
هذا يعني أنه على الرغم من أن النموذج قد يحتوي على تريليونات المعلمات، إلا أن عدد المعلمات التي يتم تفعيلها فعلياً لكل رمز قد يكون بضعة مليارات فقط.
لماذا نستخدم MoE؟ (المميزات)
- الكفاءة الحسابية: يمكنك الحصول على أداء نموذج ضخم بتكلفة استدلال تقترب من تكلفة نموذج أصغر بكثير.
- قابلية التوسع (Scalability): يسهل زيادة عدد المعلمات في النموذج دون زيادة التكلفة الحسابية لكل عملية استدلال بشكل مماثل.
- التخصص: يمكن للخبراء أن يتخصصوا في أنماط معينة من البيانات (مثل البرمجة، الرياضيات، أو اللغات المختلفة) أثناء التدريب.
ما هي التحديات؟ (العيوب)
- استهلاك الذاكرة (VRAM): بينما تقل التكلفة الحسابية، تظل الحاجة إلى تخزين جميع المعلمات في الذاكرة قائمة. هذا يعني أنك تحتاج إلى ذاكرة فيديو (VRAM) كبيرة جداً لتشغيل نموذج MoE ضخم.
- صعوبة التدريب: تدريب شبكة البوابة لضمان توزيع العمل بشكل عادل بين الخبراء أمر صعب. قد يحدث "تحيز للخبير" (expert collapse)، حيث يختار الموجه خبيراً واحداً دائماً، مما يجعل بقية الخبراء غير مفيدين.
- تعقيد البنية التحتية: يتطلب توزيع نماذج MoE عبر عدة وحدات GPU تنسيقاً معقداً لضمان سرعة نقل البيانات.
الخلاصة: متى يؤتي MoE ثماره؟
يعد MoE الحل الأمثل عندما تريد بناء نموذج يتمتع بـ معرفة واسعة جداً (عبر زيادة عدد المعلمات) ولكن مع الحفاظ على سرعة استجابة عالية (عبر تقليل المعلمات المفعلة).
إذا كنت تبحث عن نموذج ذكي جداً ولكن ميزانيتك للحوسبة محدودة، فإن النماذج القائمة على MoE هي الخيار الأمثل.
للمزيد من المحتوى التعليمي، انضم إلى مجتمعنا: https://t.me/GyaanSetuAi