AI-термины человеческим языком

Что такое Mixture of Experts (MoE)?

Подготовлено ElKornacio: t.me/elkornacio

Краткий ответ: Mixture of Experts (MoE) - это когда модель разбивается на части ("эксперты"), каждая из которых компетентна в своей области, и в формировании ответа участвуют только самые подходящие из них. Это позволяет сильно ускорить вычисления, т.к. вместо обсчета всей модели, мы вычисляем ответы только выбранного подмножества экспертов.


Если вы совсем не представляете, как работает LLM - начните лучше со статьи про LLM.

В классической LLM входные токены умножаются на матрицы весов столько же раз, сколько слоев представлено в модели, последовательно. Каждое такое перемножение - квадратичная операция, и для моделей с десятками, ато и сотнями миллиардов параметров это просто невероятно большое количество вычислений. Эти вычисления не только занимают заметное количество времени, но и требуют больших вычислительных ресурсов.

Да и обучение моделей такого размера требует огромных ресурсов (и времени).

Mixture of Experts (MoE)

В классической архитектуре Mixture of Experts (дословно "смесь экспертов") модель разбивается на части (тех самых "экспертов"), каждая из которых компетентна в своей области. Одновременно с этим обучают маленькую "проверяющую" (gating) модельку, которая умеет на основе входной задачи прикинуть, к ответам каких экспертов нам стоит прислушаться сильнее, а ответы каких стоит проигнорировать (полностью или частично).

Скажем, в модель на вход подается задача "реши математическое уравнение". Задача "проверяющей" модели сказать "в финальный ответ должны войти 100% ответа эксперта-математика, 100% эксперта логика, и 20% ответа эксперта по английскому языку, эксперта по живописи и эксперта по ботанике можно не слушать вообще". В итоге, когда финальный ответ будет собран, в него попадут только ответы экспертов, которых проверяющая модель посчитала наиболее подходящими для этой задачи. Такой подход позволяет упростить обучение модели, т.к. теперь обучение можно проводить на уровне независимых "экспертов".

Следующий шаг улучшения этой архитектуры - это sparse Mixture of Experts. Сегодня под Mixture of experts практически всегда подразумевается именно sparse версия. Суть проста: исследователи задались вопросом - если мы заранее знаем, что некоторые эксперты не нужны для ответа на этот вопрос ("проверяющая" модель умножит их ответы на ноль), зачем нам вообще тратить время на вычисление их ответов?

Так родилась идея переделать "проверяющую" модель в другую маленькую модельку "распределителя" (routing), которая на основе входной задачи определяет какие эксперты нам понадобятся (и в каких пропорциях), а какие нет. В результате мы вычисляем ответы только небольшой группы экспертов, а не всех параметров модели.

И здесь случилось чудо. Первая вышедшая на рынок модель с архитектурой sparse Mixture of experts - Mixtral 8x7B. Она состояла из восьми экспертов, но в формировании каждого ответа участвовали только два из них. Какие два - для каждого запроса решала та самая маленькая модель-"распределитель". В итоге, модель с 47 миллиардами параметров вычисляла ответы используя только 13 миллиардов - одну четверть от всех параметров. Эти вычисления были в 4 раза быстрее (!), но ничуть не хуже по качеству.