moe-training
Train Mixture of Experts (MoE) models using DeepSpeed or HuggingFace. Use when training large-scale models with limited compute (5× cost reduction vs dense models), implementing sparse architectures like Mixtral 8x7B or DeepSeek-V3, or scaling model capacity without proportional
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Train Mixture of Experts (MoE) models using DeepSpeed or HuggingFace. Use when training large-scale models with limited compute (5× cost reduction vs dense models), implementing sparse architectures like Mixtral 8x7B or DeepSeek-V3, or scaling model capacity without proportional compute increase. Covers MoE architectures, routing mechanisms, load balancing, expert parallelism, and inference optimization.
How to use
Zainstaluj DeepSpeed z obsługą MoE: pip install deepspeed==0.6.0. Opcjonalnie sklonuj Megatron-DeepSpeed z repozytorium Microsoft dla trenowania na dużą skalę, lub użyj HuggingFace Transformers z accelerate: pip install transformers accelerate.
Zdefiniuj warstwę MoE w swoim modelu, tworząc klasę MoELayer z parametrami: rozmiar ukryty (hidden_size), liczba ekspertów (num_experts, domyślnie 8) i top_k (ile ekspertów aktywować na raz, zwykle 2). Każdy ekspert to niezależna sieć neuronowa specjalizująca się w różnych wzorcach.
Skonfiguruj router, który decyduje, które eksperty aktywować dla każdego tokena wejściowego. Router uczy się, które eksperty są najlepsze dla danego wejścia, co zmniejsza liczbę aktywnych parametrów.
Dodaj mechanizm równoważenia obciążenia, aby zapewnić, że wszystkie eksperci są równomiernie wykorzystywani podczas trenowania — unika to sytuacji, gdzie jeden ekspert otrzymuje zbyt wiele przykładów.
Trenuj model używając DeepSpeed lub HuggingFace Trainer, podając konfigurację MoE. Monitoruj, ile parametrów jest aktywnych w każdym kroku — w Mixtral 8x7B aktywnych jest zaledwie 13 miliardów z 47 miliardów parametrów.
Po treningu zoptymalizuj wnioskowanie, włączając sparse activation — model będzie szybszy i mniej wymagający zasobów niż gęste sieci tej samej wielkości.