Mixture-of-Experts (MoE) (BG)
Mixture-of-Experts (MoE) (от англ. — „Смес от експерти") — това е архитектура на невронни мрежи, основана на принципа на условните изчисления и парадигмата „Разделяй и владей". Вместо да се използва единен монолитен („плътен") модел, при който всички параметри се задействат за обработка на всеки входен сигнал, MoE-архитектурата декомпозира задачата, делегирайки я на подмножество от специализирани подмрежи, наречени „експерти". Специален компонент, мрежата-маршрутизатор (gating network или рутер), динамично определя кои експерти ще обработват всеки конкретен входен token[1][2].
Този подход позволява да се създават модели с огромен брой параметри (стотици милиарди или дори трилиони), като същевременно вычислителните разходи (FLOPs) на етапа на inference се запазват на нивото на значително по-малки плътни модели[3]. Благодарение на това MoE се превърна в ключова технология за мащабиране на съвременните големи езикови модели (LLM) и се използва в такива напреднали системи като Mixtral 8x7B, Grok-1 и, според широко разпространеното мнение, GPT-4[1].
Ключов принцип: условни изчисления и разреденост
Фундаменталният механизъм на MoE е условните изчисления (conditional computation). За разлика от плътните модели, при които всички параметри са активни при обработката на всеки token, MoE-моделите активират само малка част от своите параметри в зависимост от входните данни. Този процес води до разреденост на активациите (sparsity in activation), което е главното отличие от традиционните архитектури[4].
Такъв подход позволява:
- Мащабиране на капацитета на модела: Общият брой параметри (и следователно „знанията" на модела) може да бъде значително увеличен без пропорционален ръст на изчислителното натоварване.
- Повишаване на ефективността: Моделът извършва по-малко изчисления за всеки token, което води до по-бърз inference и намаляване на разходите за обучение при фиксиран изчислителен бюджет[5].
По този начин MoE измества тесното място от изчислителната мощност към изискванията за памет (VRAM), тъй като всички параметри на всички експерти трябва да бъдат заредени в паметта, дори ако в даден момент се използва само малка тяхна част[6].
Компоненти на архитектурата MoE
1. Експертни подмрежи (Experts)
Експертите са, като правило, независими невронни мрежи. В контекста на архитектурата transformer слоевете MoE обикновено заместват плътните напълно свързани блокове (Feed-Forward Networks, FFN), като всеки експерт сам по себе си е FFN[1]. В процеса на обучение всеки експерт може да развива „компетентност" в определени области — например, един може да се специализира в синтаксис, друг в факти от конкретна предметна област, а трети в определен език или стил[7].
2. Управляваща мрежа (Gating Network / Router)
Мрежата-маршрутизатор е малък, но критично важен компонент, който извършва интелигентното разпределение на задачите. За всеки входен token маршрутизаторът изчислява оценки (тегла), определяйки кои експерти са най-релевантни за неговата обработка. Решението за маршрутизация е динамично и контекстно-зависимо[8].
Най-разпространената стратегия е маршрутизацията Top-K, при която за обработка на token се избират K експерти с най-високи оценки. Стойността на K обикновено е малка (например 1 или 2), което и осигурява разредеността.
3. Обединяване на изходните данни
След като избраните K експерти са обработили token, техните индивидуални изходи се обединяват за формиране на окончателния резултат на MoE-слоя. Като правило това се прави чрез претеглено сумиране, при което теглата са нормализираните оценки, генерирани от маршрутизатора[1].
Еволюция на MoE
Концепцията за MoE е предложена за първи път през 1991 година в труда на Робърт Джейкъбс, Джефри Хинтън и Майкъл Джордан, озаглавен „Адаптивна смес от локални експерти"[3]. Въпреки това, поради изчислителните ограничения и сложността на обучението, идеята не получи широко разпространение до епохата на дълбокото обучение.
Пробивът настъпи с появата на архитектурата Transformer. Изследванията от 2010–2015 г., посветени на условните изчисления (Йошуа Бенжио и др.), поставиха теоретичната основа, а работата на Шазир и др. (2017) демонстрира възможността за мащабиране на MoE до LSTM-модел с 137 милиарда параметра[8].
Съвременното възраждане на MoE е свързано с модела Switch Transformer от Google (2021), който се мащабира до 1,6 трлн параметра, използвайки проста, но ефективна маршрутизация Top-1[9]. Успехът на отворения модел Mixtral 8x7B от Mistral AI през 2023 година окончателно утвърди MoE като една от водещите архитектури за създаване на високопроизводителни LLM[1].
Проблеми и методи за оптимизация
Балансиране на натоварването
Един от ключовите проблеми на MoE е дисбалансът на натоварването, при който маршрутизаторът постоянно избира едни и същи „популярни" експерти, докато другите остават недостатъчно използвани. Това води до неефективно обучение и „колапс на експертите".
- Спомагателни функции за загуба (Auxiliary Loss): Традиционен метод, който добавя „наказание" към основната функция за загуба за неравномерното разпределение на token-ите. Въпреки че това помага с балансирането, подходът може да внася „градиенти на смущения", влошавайки общата производителност[10].
- Балансиране без загуба (Loss-Free Balancing): По-нов подход, който динамично прилага отместване (bias) към оценките на маршрутизатора, насочвайки го към по-балансирани решения без намеса в основната задача на обучението[11].
- Маршрутизация по избор на експерт (Expert Choice Routing): Алтернативен подход, при който не token-ите избират експертите, а всеки експерт избира своите `top-k` token-а от пакета. Това гарантира идеално балансиране, но може да бъде по-сложно за реализация[1].
Тонко настройване и квантизация
- Тонко настройване (Fine-tuning): Исторически MoE-моделите са склонни към преобучаване поради големия брой параметри. За смекчаване на този проблем се използват методи като „експертен dropout"[12].
- Квантизация (Quantization): Намаляване на числовата точност на теглата за намаляване размера на модела и ускоряване на inference. За MoE това е сложна задача поради междуекспертния дисбаланс. Методи като MoEQuant предлагат решения, основани на балансирана калибровка за всеки експерт[13].
Системна оптимизация
Ефективното разгръщане на MoE изисква цялостен системен подход, включващ:
- Стратегии за паралелизъм: Експертен паралелизъм (разпределение на експертите по различни GPU), модельен паралелизъм и паралелизъм на данните[14].
- Специализирани ядра (Kernels): Например Megablocks за Mixtral, които оптимизират матричните умножения за разредени операции[15].
- Съвместно проектиране на хардуера (Hardware Co-design): Разработване на хардуерни решения, специално оптимизирани за работните натоварвания на MoE.
Забележителни модели MoE
| Модел | Разработчик | Общ брой параметри |
Активни параметри |
Брой експерти |
Избирани експерти (k) |
|---|---|---|---|---|---|
| Switch Transformer C-2048 | 1,6 трлн | Зависи от размера на експерта | 2048 | 1 | |
| Mixtral 8x7B | Mistral AI | ~47 млрд | ~13 млрд | 8 | 2 |
| Grok-1 | xAI | 314 млрд | 86 млрд | 8 | 2 |
| GPT-4 (предположително) | OpenAI | >1 трлн | - | 16 (предп.) | 2 (предп.) |
| Qwen 2 MoE | Alibaba | 57–90 млрд | 14 млрд | 64 | 4 или 8 |
| DeepSeekMoE 16B | DeepSeek-AI | 16,4 млрд | ~2,8 млрд | 64 (2 активни) | 2 (от 6)[16] |
Приложение в различни области
Въпреки че MoE е най-известна в контекста на LLM, нейното приложение не се ограничава само до обработката на естествен език:
- Прогнозиране на времеви редове: Моделът Time-MoE представя мащабируема архитектура за предварително обучение на прогнозни модели[17].
- Откриване на уязвимости: MoEVD използва MoE за разлагане на задачата за откриване на уязвимости на класификация по типове CWE, при което всеки експерт се специализира в своя тип[18].
- Интеграция с blockchain-технологии: MoE намира приложение в оптимизацията на смарт контракти и откриването на измами, при което експертите анализират различни шаблони на транзакции[19].
- Мултимодални модели: MoE се използва за обединяване на експерти, специализирани в различни модалности (текст, изображение, аудио), създавайки по-универсални системи[20].
Бележки
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 «Applying Mixture of Experts in LLM Architectures». NVIDIA Technical Blog. [1]
- ↑ «Mixture of Experts (MoE): A Big Data Perspective». arXiv. [2]
- ↑ 3.0 3.1 «Mixture-of-Experts (MoE): что это такое и как работает». LLM Studio. [3]
- ↑ «Serving Mixtral MoE Model». Friendli.ai Blog. [4]
- ↑ «What is Mixture of Experts (MoE)? How it Works and Use Cases». Zilliz Learn. [5]
- ↑ «Mixture of Experts (MoE) vs Dense LLMs». Maximilian Schwarzmüller's Blog. [6]
- ↑ «Understanding Mixture of Experts in Deep Learning». VE3. [7]
- ↑ 8.0 8.1 «Mixture of Experts Explained». Hugging Face Blog. [8]
- ↑ «Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity». arXiv. [9]
- ↑ «Auxiliary-Loss-Free Load Balancing Strategy for Mixture-of-Experts». OpenReview. [10]
- ↑ «DeepSeek-V3 Explained: 3. Auxiliary-Loss-Free Load-Balancing». gopubby.com. [11]
- ↑ «Switch Transformers: Scaling to Trillion Parameter Models with...». cse.ust.hk. [12]
- ↑ «MoEQuant: Enhancing Quantization for Mixture-of-Experts...». arXiv. [13]
- ↑ «A Survey of Mixture of Experts Models: Architectures and Applications in Business and Finance». Preprints.org. [14]
- ↑ «Mixtral of Experts». arXiv. [15]
- ↑ «A Survey on Inference Optimization Techniques for Mixture of Experts Models». arXiv. [16]
- ↑ «Time-MoE: A Scalable and Unified Framework for Pre-training Time Series Foundation Models». arXiv. [17]
- ↑ «MoEVD: A Mixture of Experts-based Framework for Vulnerability Detection». Semantic Scholar. [18]
- ↑ «What a Decentralized Mixture-of-Experts (MoE) Is and How It Works». Gate.io Learn. [19]
- ↑ «LLaMA-MoE: Building Mixture-of-Experts from Open-source LLMs». arXiv. [20]