Mixture-of-Experts (MoE) (BG)

From Systems analysis Wiki
Jump to navigation Jump to search

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

Сравнение на изтъкнати архитектури MoE
Модел Разработчик Общ брой
параметри
Активни
параметри
Брой
експерти
Избирани
експерти (k)
Switch Transformer C-2048 Google 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. 1.0 1.1 1.2 1.3 1.4 1.5 «Applying Mixture of Experts in LLM Architectures». NVIDIA Technical Blog. [1]
  2. «Mixture of Experts (MoE): A Big Data Perspective». arXiv. [2]
  3. 3.0 3.1 «Mixture-of-Experts (MoE): что это такое и как работает». LLM Studio. [3]
  4. «Serving Mixtral MoE Model». Friendli.ai Blog. [4]
  5. «What is Mixture of Experts (MoE)? How it Works and Use Cases». Zilliz Learn. [5]
  6. «Mixture of Experts (MoE) vs Dense LLMs». Maximilian Schwarzmüller's Blog. [6]
  7. «Understanding Mixture of Experts in Deep Learning». VE3. [7]
  8. 8.0 8.1 «Mixture of Experts Explained». Hugging Face Blog. [8]
  9. «Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity». arXiv. [9]
  10. «Auxiliary-Loss-Free Load Balancing Strategy for Mixture-of-Experts». OpenReview. [10]
  11. «DeepSeek-V3 Explained: 3. Auxiliary-Loss-Free Load-Balancing». gopubby.com. [11]
  12. «Switch Transformers: Scaling to Trillion Parameter Models with...». cse.ust.hk. [12]
  13. «MoEQuant: Enhancing Quantization for Mixture-of-Experts...». arXiv. [13]
  14. «A Survey of Mixture of Experts Models: Architectures and Applications in Business and Finance». Preprints.org. [14]
  15. «Mixtral of Experts». arXiv. [15]
  16. «A Survey on Inference Optimization Techniques for Mixture of Experts Models». arXiv. [16]
  17. «Time-MoE: A Scalable and Unified Framework for Pre-training Time Series Foundation Models». arXiv. [17]
  18. «MoEVD: A Mixture of Experts-based Framework for Vulnerability Detection». Semantic Scholar. [18]
  19. «What a Decentralized Mixture-of-Experts (MoE) Is and How It Works». Gate.io Learn. [19]
  20. «LLaMA-MoE: Building Mixture-of-Experts from Open-source LLMs». arXiv. [20]