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.
Бесплатный онлайн-инструмент — проверка HTTP-заголовков: результат мгновенно, без регистрации.
# 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' при inferenceMoE (Mixture of Experts) — это архитектура, использующая механизм, при котором только часть модели активируется для обработки входных данных. Это позволяет существенно сократить вычислительные затраты без потери качества предсказаний. В отличие от традиционных полных моделей, где все параметры участвуют в каждом вычислении, MoE активирует лишь подмножество экспертов, что делает их более эффективными и масштабируемыми.
MoE модели обладают рядом преимуществ, которые делают их привлекательными для разработки и внедрения в различных задачах машинного обучения:
Например, в модели, содержащей 128 экспертов, можно активировать только 8 из них на каждом шаге, что приводит к 16-кратному снижению вычислительных затрат при сохранении высокой точности.
Для реализации модели 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. В процессе вычисления мы получаем выходные данные от всех экспертов и вычисляем их среднее значение, что позволяет интегрировать их результаты.
Позволяет scale parameters дешево (inference cost ~ active params). Frontier models 2025+ — почти все MoE (GPT-4, Claude 3.5, Gemini, DeepSeek R1).
Сложнее чем dense. LoRA на router + experts отдельно. Requires more data.
Нужно memory для total params (все experts грузятся). Mixtral 8x7B → 47B × 2 bytes FP16 = 94 GB. INT4 quant → ~26 GB.
Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.