Когда я пишу новости про ИИ, то часто сталкиваюсь с проблемой: они пестрят техническими терминами, которые не всегда понятны даже людям использующим ИИ регулярно. SFT, MoE, RL/RLHF/DPO, миллионы их.
Я захотел описать самые популярные термины простым русским языком, чтобы каждый, даже нетехнический человек, мог разобраться в самой главной технологии современности. Чтобы, когда я пишу на Хабр или куда-то ещё, для сложных терминов я сразу мог бы дать ссылку на понятное и простое объяснение.
А ещё, даже на Хабре почти каждая статья про ИИ просто копипастит оригинальные иллюстрации на английском, я и сам этим грешу. Но в этом проекте, мне захотелось сопровождать мои материалы симпатичными и понятными иллюстрациями на русском языке, поэтому я рисую их самостоятельно.
Так я начал свой хобби-проект «AI человеческим языком». Каждую новую статью про популярный термин я хочу адаптировать под Хабр, и выкладывать сюда.
После громко стрельнувших DeepSeek V3/R1, и прочих, многие стали обращать внимание на то, что в описании моделей используется "архитектура Mixture of Experts". Также, её можно увидеть у Microsoft, Mistral, Facebook: Phi3.5-MoE, Mixtral, NLLB-200, и прочие.
Поэтому первое, о чем мне хочется рассказать - это архитектура "Mixture of Experts".
Что такое "Mixture of Experts"?
В языковой модели входные токены умножаются на матрицы весов столько же раз, сколько есть слоев, последовательно. Каждое такое перемножение - дорогая квадратичная операция. Для моделей с десятками, а то и сотнями миллиардов параметров это просто невероятно большое количество вычислений.
Эти вычисления не только занимают заметное количество времени, но и требуют огромных вычислительных ресурсов.
В классической архитектуре Mixture of Experts (дословно "смесь экспертов") модель разбивается на части (тех самых "экспертов"), каждая из которых компетентна в своей области. Одновременно с этим обучают маленькую "проверяющую" (gating) модельку, которая умеет на основе входной задачи прикинуть, к ответам каких экспертов нам стоит прислушаться сильнее, а ответы каких стоит проигнорировать (полностью или частично).
Не стоит путать "эксперта" с самостоятельным ИИ, который может работать сам по себе. Не стоит воспринимать MoE как "чат" между экспертами, когда они совещаются и принимают общее решение (так работают агенты). "Эксперт" - это условное название для независимого кусочка нейросети внутри модели, который сильнее остальных кусочков обучен для конкретного набора задач, вот и всё.
Скажем, в модель на вход подается задача "реши математическое уравнение". Задача "проверяющей" модели сказать "в финальный ответ должны войти 100% ответа эксперта-математика, 100% эксперта-логика, и 20% ответа эксперта по английскому языку, эксперта по живописи и эксперта по ботанике можно не слушать вообще".
В итоге, когда финальный ответ будет собран, в него попадут только ответы экспертов, которых проверяющая модель посчитала наиболее подходящими для этой задачи. Такой подход позволяет упростить обучение модели, т.к. теперь обучение можно проводить на уровне независимых "экспертов".
Sparse Mixture of Experts
Следующий шаг улучшения этой архитектуры - это sparse Mixture of Experts. Sparse дословно переводится как "редкий, малонаселенный", её так прозвали за то, что из всех "экспертов" модели в момент времени работает лишь малая часть.
Сегодня под Mixture of experts практически всегда подразумевается именно sparse версия. Суть проста: исследователи задались вопросом - если мы заранее знаем, что некоторые эксперты не нужны для ответа на этот вопрос ("проверяющая" модель умножит их ответы на ноль), зачем нам вообще тратить время на вычисление их ответов?
![Иллюстрация sparse Mixture of Experts Иллюстрация sparse Mixture of Experts](https://habrastorage.org/getpro/habr/upload_files/b0f/018/e36/b0f018e360c4b76d68bfc19132e4d3a6.png)
Так родилась идея переделать "проверяющую" модель в другую маленькую модельку "распределителя" (routing), которая на основе входной задачи определяет какие эксперты нам понадобятся (и в каких пропорциях), а какие нет. В результате мы вычисляем ответы только небольшой группы "экспертов", а не всех параметров модели.
И здесь случилось чудо. Вышедшая на рынок модель с архитектурой sparse Mixture of experts - Mixtral 8x7B состояла из восьми "экспертов", но в формировании каждого ответа участвовали только два из них. Какие два - для каждого запроса решала та самая маленькая модель-"распределитель".
В итоге, модель с 47 миллиардами параметров вычисляла ответы используя только 13 миллиардов - одну четверть от всех параметров. Эти вычисления были в 4 раза быстрее (!), но ничуть не хуже по качеству.
Сегодня, две самые популярные модели, которые прославились как раз дешевизной их работы, при высоком уровне качества: DeepSeek V3 и DeepSeek R1. И они обе тоже используют архитектуру MoE, за счет которой модели в ~671 миллиардов параметров требуют вычислительных мощностей всего на ~37 миллиардов (в 18 раз меньше!).
Надеюсь, вам было интересно и понятно. Если есть идеи о том, что можно было бы улучшить - напишите, пожалуйста, в комменты, буду рад внести правки.
P.S. Я веду Телеграм канал, где не только регулярно пишу про ИИ/агентов, но и даю глубокую аналитику по новостям, а также рассказываю как сделать компанию, в которой все сотрудники — AI-агенты. Велком!
Varya_vcadre
Спасибо большое за статью. Это талант говорить о сложных вещах так понятно! И картиночки отличные)))
ElKornacio Автор
боже, я вам случайно минус ткнул, пальцем промазал. простите пожалуйста, это не специально) и спасибо за ваш отзыв)
novoselov
Насчет картиночек: человеки приучены к восприятию информации слева-направо и сверху-вниз, поэтому картинку стоит перевернуть... как-то так: