EMO — MoE с эмерджентной модульностью: обзор и запуск 12.5% экспертов | AiManual
AiManual Logo Ai / Manual.
08 Май 2026 Инструмент

EMO — новая MoE-модель с эмерджентной модульностью: обзор архитектуры и как использовать 12.5% экспертов

Разбираем архитектуру EMO от Allen AI: как модель сама выращивает модули из данных, почему достаточно 12.5% экспертов и как запустить веса с HuggingFace.

Модель, которая сама решает, кого разбудить

Вы когда-нибудь видели, чтобы нейросеть сама собирала себе команду экспертов под конкретную задачу? Без жесткого роутера, без ручной разметки, просто из данных. Примерно так работает EMO — свежая разработка исследователей из Allen AI и University of Washington. Они заявили, что их архитектура Mixture of Experts с эмерджентной модульностью способна активировать всего 12.5% от общего числа экспертов, не теряя в качестве. И да, веса уже лежат на HuggingFace, а значит можно попробовать на своей видеокарте.

В мире, где китайские гиганты давят на количество экспертов (DeepSeek с 256, Kimi с 384), EMO выглядит вызовом. Зачем 384 эксперта, если можно обойтись десятой частью? Но тут есть нюанс: «эксперты» в EMO не фиксированы, они возникают динамически. Звучит как магия? Разберемся.

Чем EMO отличается от классического MoE

Классический MoE — это как комитет, где каждому члену выдали бейдж с профессией. Роутер смотрит на запрос и говорит: «Встаньте, пожалуйста, токенист по кулинарии и кодер из третьего ряда». В EMO бейджей нет. Вместо этого модель на лету формирует группы нейронов, которые наилучшим образом отвечают на вход. Эмерджентная модульность означает, что специализация возникает сама, без явного разделения на «экспертов».

💡 Простыми словами: вы не говорите модели «вот эксперт по Python, вот по математике». Вы даете ей кучу данных, и она сама собирает кластеры нейронов, которые лучше всего справляются с похожими запросами. Причем эти кластеры могут пересекаться и меняться.

На практике EMO использует Top-k активацию с динамическим k. В обычных MoE (вроде Qwen3-MoE) k фиксировано — 2 или 4 эксперта. В EMO k подстраивается под сложность токена. Простые токены обрабатываются одним экспертом (или даже частью), сложные — несколькими. В среднем активируется 12.5% от общего числа параметров. Это не магия, это результат обучения с разреженной регуляризацией, которая штрафует модель за использование слишком многих нейронов.

Что под капотом: архитектура и цифры

Allen AI выпустила две версии EMO: EMO-7B и EMO-32B (общий пул параметров). При инференсе EMO-7B активирует около 1.2B параметров, EMO-32B — около 4B. Сравните с Qwen 3.5, где активируется 17-24B. EMO радикально легче.

ПараметрEMO-7BEMO-32BQwen 3.5-397B
Всего параметров7B32B397B
Активируется~1.2B (17%)~4B (12.5%)17-24B
MMLU (5-shot)64.271.888.7
HumanEval pass@132.951.472.6

Цифры не бьют топы, но для модели с 4B активных параметров — солидно. Да и главная фишка не в бенчмарках, а в экономии. Запустить EMO-32B можно на одной RTX 3090 с 24GB VRAM без квантования. Попробуйте провернуть такое с плотной 32B моделью.

Как это работает на практике (с кодом)

Хватит теории. Идем на HuggingFace коллекцию EMO, качаем веса. Установка через transformers — стандартная, но есть нюанс: нужна версия >=4.48.0, так как там добавили поддержку динамического top-k.

pip install transformers>=4.48.0 torch

Теперь загружаем модель. Обратите внимание: модель не использует стандартный класс MixtralForCausalLM, у нее свой EmoForCausalLM. Но API унифицирован.

from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('allenai/EMO-32B')
model = AutoModelForCausalLM.from_pretrained(
    'allenai/EMO-32B',
    torch_dtype=torch.bfloat16,
    device_map='auto'
)
# Промпт на русском
messages = [{'role': 'user', 'content': 'Объясни, что такое эмерджентная модульность, простыми словами.'}]
inputs = tokenizer.apply_chat_template(messages, return_tensors='pt').to(model.device)
outputs = model.generate(inputs, max_new_tokens=200)
print(tokenizer.decode(outputs[0]))

Во время инференса модель сама решает, какие «эксперты» запустить. Вы можете отследить динамику активации через параметр output_attentions=True — модель вернет маску, какие нейроны были активны на каждом слое. Полезно для исследований.

⚠️ На CPU модель будет мучительно медленной — лучше запускать на GPU с хотя бы 16GB VRAM. Если карта слабее, используйте 4-битную квантизацию через bitsandbytes.

Эмерджентная модульность vs классические эксперты: кто кого?

Здесь мы подходим к самому интересному. Классический MoE с фиксированными экспертами — проверенная технология. Но у нее есть проблема: эксперты часто дублируются, а роутер может перегружать одних и недогружать других. Эмерджентная модульность решает это, позволяя модели самой подстраивать количество «специалистов» под сложность. Плюс — более эффективное использование параметров.

Минус: такие динамические структуры сложнее оптимизировать на железном уровне. Большинство существующих фреймворков (vLLM, TensorRT-LLM) заточены под предопределенные экспертные блоки. EMO требует кастомного ядра для эффективной работы. Но Allen AI уже выложили оптимизированный бэкенд на основе Triton, который в 2-3 раза ускоряет инференс по сравнению с наивной реализацией.

Кому эта модель сдалась

  • Исследователям — изучить, как возникает модульность, покопаться в активациях.
  • Стартапам с ограниченным бюджетом на GPU — получить 32B-качество на одной карте.
  • Разработчикам агентов — модель отлично справляется с многозадачностью, так как умеет переключать контексты.
  • Фанатам MoE, которых достали фиксированные роутеры и кто хочет попробовать новый подход.

Если вы ждете готового production-ready решения — EMO пока сыровата. Нет поддержки многопоточного инференса, документация скудная, сообщество маленькое. Но в качестве proof-of-concept это настоящий прорыв.

Неочевидный совет: следите за эмерджентностью

Мы привыкли, что нейросеть — это черный ящик. А EMO показывает, что внутри могут спонтанно формироваться структуры, похожие на модули человеческого мозга. Если этот тренд продолжится, возможно, следующий шаг — модели, которые сами решают, какие веса обновлять при дообучении, без тонкого тюнинга всех параметров. Уже сейчас EMO позволяет замораживать 90% нейронов и дообучать только «активную часть» — получается дешевый аналог LoRA, но встроенный в архитектуру.

Попробуйте запустить EMO-7B на своей карте и посмотреть, как модель адаптируется к разным языкам и стилям. Уверен, вы заметите, что для математики и для стихов активируются разные наборы нейронов. Это не гипотеза — это можно увидеть глазами.

Подписаться на канал