Skip to content
EN

MoE (Mixture of Experts)

Коротко:

MoE (Mixture of Experts) — sparse transformer architecture: вместо monolithic FFN, модель содержит много expert networks + router, который выбирает top-k experts для каждого token. Total params huge (1.8T), но active per-token меньше (400B). Inference cost sub-linear к total size. Public MoE models: Mixtral 8x7B (47B total, 13B active), DeepSeek R1 (671B, ~37B active), GPT-4 suspected MoE.

Ниже: подробности, пример, смежные термины, FAQ.

Проверить свой сайт →

Подробности

  • Router: для каждого token выбирает top-k=2 experts (из 8-128)
  • Expert: обычно FFN блок в transformer layer
  • Parameters: 10-100× больше чем dense equivalent at same inference cost
  • Pros: capacity huge + inference cost manageable + experts могут специализироваться
  • Cons: complexity training, routing collapse (few experts overused), serving overhead

Пример

# Run Mixtral 8x7B via Ollama (quantized)
$ ollama pull mixtral:8x7b
$ ollama run mixtral:8x7b "What is MoE?"

# Python with transformers
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained('mistralai/Mixtral-8x7B-Instruct-v0.1')
# 47B total params, but only 13B 'active' при inference

Смежные термины

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

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

Преимущества и особенности MoE

MoE модели обладают рядом преимуществ, которые делают их привлекательными для разработки и внедрения в различных задачах машинного обучения:

  • Эффективность вычислений: активируя только 2-4 эксперта из 64 или более, MoE значительно снижает нагрузку на вычислительные ресурсы.
  • Гибкость: архитектура MoE позволяет легко добавлять новых экспертов без необходимости переобучения всей модели.
  • Улучшение качества: за счет специализации экспертов, каждый из которых фокусируется на определенной задаче или типе данных, модель может достигать лучших результатов.

Например, в модели, содержащей 128 экспертов, можно активировать только 8 из них на каждом шаге, что приводит к 16-кратному снижению вычислительных затрат при сохранении высокой точности.

Практическое применение MoE в Python

Для реализации модели MoE в Python можно использовать библиотеку TensorFlow и Keras. Ниже представлен пример конфигурации MoE модели:

import tensorflow as tf
from tensorflow.keras import layers

class MoE(layers.Layer):
    def __init__(self, num_experts, expert_dim, activation='relu'):
        super(MoE, self).__init__()
        self.num_experts = num_experts
        self.expert_dim = expert_dim
        self.activation = activation
        self.experts = [layers.Dense(expert_dim, activation=self.activation) for _ in range(num_experts)]

    def call(self, inputs):
        outputs = []
        for expert in self.experts:
            outputs.append(expert(inputs))
        return tf.reduce_mean(outputs, axis=0)

inputs = tf.keras.Input(shape=(input_dim,))
moe_layer = MoE(num_experts=8, expert_dim=64)(inputs)
model = tf.keras.Model(inputs=inputs, outputs=moe_layer)

В этом примере мы создаем пользовательский слой MoE, который содержит 8 экспертов, каждый из которых имеет размерность 64. В процессе вычисления мы получаем выходные данные от всех экспертов и вычисляем их среднее значение, что позволяет интегрировать их результаты.

Больше по теме

Часто задаваемые вопросы

Почему MoE такой тренд?

Позволяет scale parameters дешево (inference cost ~ active params). Frontier models 2025+ — почти все MoE (GPT-4, Claude 3.5, Gemini, DeepSeek R1).

Fine-tuning MoE?

Сложнее чем dense. LoRA на router + experts отдельно. Requires more data.

Running MoE locally?

Нужно memory для total params (все experts грузятся). Mixtral 8x7B → 47B × 2 bytes FP16 = 94 GB. INT4 quant → ~26 GB.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.