Mixture of Experts (MoE)
- ⬜⚡ KV Cache: Memória Eficiente(IA Além do LLM)
Recomendamos completar os pré-requisitos antes de seguir, mas nada te impede de continuar.
GPT-4 tem estimados 1.7 trilhoes de parametros — mas ativar todos a cada token seria computacionalmente impossivel. A solucao: Mixture of Experts (MoE), uma arquitetura que escala parametros sem escalar compute proporcionalmente. Neste artigo, voce vai entender como o router seleciona experts, o problema de load balancing, e por que MoE dominou os modelos frontier.
A ideia: parametros abundantes, compute seletivo
Em um Transformer denso (como LLaMA), todos os parametros sao usados para processar cada token. Em MoE, a camada FFN (feed-forward network) e substituida por multiplos experts — cada um e um FFN independente — e um router decide quais ativar.
- → não escolhido
- Conceito de arquitetura
- Rede e entrega
- Compute
Retenha a assimetria: memória proporcional ao total, cálculo proporcional ao ativo. Ela explica o preço, a velocidade e por que rodar esses modelos localmente é mais difícil do que a contagem de parâmetros ativos sugere.
- 1 · O roteador decide por token, não por pedido. Cada token da mesma frase pode ir para especialistas diferentes. A especialização não é por assunto — emerge do treino e raramente é interpretável.
- 2 · A memória guarda todos; o cálculo usa poucos. É a distinção que confunde ao dimensionar hardware: a memória necessária é a do modelo INTEIRO, e a velocidade é a de um modelo bem menor.
- 3 · Por isso o número anunciado engana nos dois sentidos. Um modelo com centenas de bilhões de parâmetros pode ativar uma fração deles por token: é mais rápido do que o número sugere e exige tanta memória quanto ele sugere.
- 4 · O equilíbrio de carga é o problema central do treino. Sem incentivo, o roteador aprende a mandar tudo para poucos especialistas. Os demais não treinam e viram peso morto — capacidade paga e nunca usada.
- 5 · Servir exige que o especialista esteja alcançável. Em múltiplas placas, os especialistas são distribuídos e o roteamento vira comunicação entre elas. É por isso que a implantação é mais complexa que a de um modelo denso.
- 6 · O ganho é capacidade sem custo proporcional. Mais especialistas aumentam o que o modelo pode saber sem aumentar o cálculo por token. É a razão econômica de a arquitetura ter se espalhado.
O trade-off fundamental: MoE tem compute de modelo pequeno mas memoria de modelo grande. Todos os experts precisam estar na VRAM mesmo que so 2 de 8 sejam usados por token.
O Router: como escolher experts
O router e uma pequena rede (geralmente uma camada linear + softmax) que recebe a representacao do token e produz uma distribuicao de probabilidade sobre os experts.
# Router simplificado em PyTorch
import torch
import torch.nn.functional as F
class Router(torch.nn.Module):
def __init__(self, d_model, num_experts, top_k=2):
super().__init__()
self.gate = torch.nn.Linear(d_model, num_experts, bias=False)
self.top_k = top_k
def forward(self, x):
# x: (batch, seq_len, d_model)
logits = self.gate(x) # (batch, seq_len, num_experts)
scores = F.softmax(logits, dim=-1)
top_scores, top_indices = scores.topk(self.top_k, dim=-1)
top_scores = top_scores / top_scores.sum(dim=-1, keepdim=True)
return top_scores, top_indicesLoad Balancing: o problema central
Se o router prefere poucos experts, os outros nao recebem gradientes e nao treinam. Isso e expert collapse — o modelo desperica a maioria da sua capacidade.
| Tecnica | Como funciona | Usado em |
|---|---|---|
| Auxiliary load balancing loss | Adiciona um termo a loss que penaliza distribuicao desigual de tokens entre experts | Switch Transformer, Mixtral, GPT-4 (provavel) |
| Expert capacity | Limita o numero maximo de tokens que cada expert pode processar. Excedente e descartado ou roteado para outro. | Switch Transformer, GShard |
| Noise in router | Adiciona ruido gaussiano aos logits do router durante treino para explorar experts menos usados | ST-MoE, Mixtral |
| Auxiliary-loss-free balancing | Bias adaptativo no router sem distorcer a loss principal | DeepSeek v3 (inovacao chave) |
Modelos MoE reais
| Modelo | Params totais | Params ativos | Experts | Top-k | Performance |
|---|---|---|---|---|---|
| Mixtral 8x7B | 47B | ~13B | 8 | 2 | ~ LLaMA 2 70B (dense) com 5x menos compute |
| Mixtral 8x22B | 176B | ~44B | 8 | 2 | Compete com GPT-3.5 Turbo |
| GPT-4 (estimado) | ~1.7T | ~220B | ~16 | ~2 | Frontier (ate mar/2024) |
| DeepSeek v3 | 671B | ~37B | 256 | 8 | Compete com GPT-4o por ~$5.5M de treino |
| Grok-1 (xAI) | 314B | ~79B | 8 | 2 | Open-source, competitivo com Mixtral |
DeepSeek v3 e notavel: 256 experts com top-8 ativacao + 1 expert compartilhado (sempre ativo). O expert compartilhado captura conhecimento geral; os especializados cobrem dominios. MLA (Multi-head Latent Attention) comprime K/V em latent space, reduzindo o KV Cache drasticamente.
Expert Parallelism: como servir MoE em clusters
Um MoE de 671B params (DeepSeek v3) não cabe em uma única GPU — nem em 8. O serving requer estratégias específicas de paralelismo. Em modelos densos, o padrão é tensor parallelism (dividir matrizes entre GPUs). Em MoE, adiciona-se expert parallelism: cada GPU hospeda um subconjunto de experts.
| Estratégia | O que faz | Trade-off |
|---|---|---|
| Expert Parallelism | Diferentes GPUs hospedam diferentes experts. All-to-all communication move tokens entre GPUs. | Alta largura de banda inter-GPU necessária (NVLink) |
| Tensor Parallelism | Divide cada camada entre GPUs (matrizes particionadas). | Funciona bem para attention; usado em conjunto com EP |
| Expert Offloading | Experts inativos ficam na RAM CPU; carregados na GPU quando chamados. | Latência alta (PCIe ~10x mais lento que HBM) |
| Token Dropping | Se um expert excede capacidade, tokens em excesso são descartados (skip). | Perda de qualidade controlável com buffer capacity |
O gargalo real em MoE serving é o all-to-all communication: cada token precisa ser enviado para a GPU que hospeda o expert selecionado. Com batch grande, isso gera tráfego massivo entre GPUs. Por isso NVLink (600 GB/s) é praticamente obrigatório para clusters MoE eficientes — Ethernet (100 Gbps) causa degradação severa de throughput.
O que caracteriza a arquitetura de mistura de especialistas?
Fine-tuning MoE: complexidades práticas
Fine-tuning de modelos MoE é mais complexo que modelos densos. A principal questão: o router deve ser atualizado? E se sim, como evitar que o fine-tuning colapse a especialização aprendida no pré-treino?
| Abordagem | O que congela | Quando usar | Risco |
|---|---|---|---|
| Full fine-tuning | Nada — atualiza tudo incluindo router | Quando tem dados suficientes (>100k exemplos) | Router pode colapsar especializações do pré-treino |
| LoRA nos experts | Pesos base dos experts; treina adaptadores LoRA | Fine-tuning eficiente em domínio específico | LoRA pode conflitar se expert não for ativado para o domínio |
| Congelar router | Router congelado; atualiza apenas experts | Preservar routing do pré-treino ao especializar | Router pré-treino pode não ser ótimo para nova tarefa |
| Congelar experts inativos | Só atualiza experts ativados para o domínio | Máxima eficiência; mínima interferência | Identificar quais experts são relevantes é não-trivial |
MoE + LoRA na prática: a implementação mais comum aplica LoRA em todos os experts com rank baixo (r=8 ou r=16). Durante o fine-tuning, apenas os adaptadores LoRA dos experts ativados recebem gradiente — comportamento análogo ao routing normal. O router geralmente é congelado. Custo: ~2% dos parâmetros treináveis de um full fine-tune.
❓ Vale a pena fazer fine-tuning de Mixtral 8x7B vs LLaMA 3 70B para o mesmo caso de uso?
MoE vs Dense: quando usar cada um
📋 Qual arquitetura para um LLM de uso geral em producao?
Para modelos frontier (>100B params), MoE e essencial. O custo de servir um modelo denso de 1.7T params seria astronomico. MoE permite escalara parametros sem escalar compute linearmente.
Alt: Dense — Modelos menores (<70B params) onde a complexidade do MoE nao compensa. LLaMA 3 70B dense e mais simples de servir que um MoE de 70B params.
| Fator | Dense | MoE |
|---|---|---|
| Compute por token | Proporcional aos params totais | Proporcional aos params ATIVOS (muito menor) |
| VRAM necessaria | Proporcional aos params totais | Proporcional aos params TOTAIS (todos os experts na memoria) |
| Complexidade de servir | Simples — sharding padrao | Complexo — expert parallelism + routing overhead |
| Escalabilidade | Linear: 2x params = 2x compute | Sublinear: 2x params pode ser apenas 1.2x compute |
| Treinamento | Estavel, bem compreendido | Load balancing e instabilidade sao desafios ativos |
| Fine-tuning | Simples — LoRA/QLoRA padrao | Complexo — quais experts atualizar? Router muda? |
DeepSeek v3: anatomia de um MoE de fronteira barato
DeepSeek v3 (dezembro 2024) abalou a indústria ao demonstrar que um modelo competitivo com GPT-4o podia ser treinado por ~$5,5M — enquanto estimativas de GPT-4 falam em $100M+. As inovações técnicas foram específicas e complementares:
O resultado: DeepSeek v3 treinou 14.8T tokens em ~2.788 GPU-days (H800 SXM). Modelos concorrentes estimam 30-50× mais compute para qualidade similar. A lição não é "GPUs baratas" — é eficiência de algoritmo compensa hardware. O paper completo está disponível no arXiv e é uma leitura obrigatória para quem trabalha com infraestrutura de LLMs.
Perguntas e respostas
❓ Cada expert se especializa em um dominio (codigo, matematica, etc.)?
❓ Posso rodar um MoE em hardware menor se so carregar 2 experts?
❓ O router e treinado junto com os experts?
O que voce aprendeu: MoE substitui o FFN por multiplos experts + router. Apenas top-k experts sao ativados por token — compute de modelo pequeno, memoria de modelo grande. Load balancing e critico para evitar expert collapse. Modelos frontier (GPT-4, DeepSeek v3) usam MoE massivo. DeepSeek v3 mostrou que inovacao em training efficiency (MLA + auxiliary-loss-free balancing + FP8) pode competir com budgets 20x maiores. Proximo: como LLMs interagem com o mundo real — Tool Calling.
Perguntas frequentes
❓ Como um modelo de 200 bilhões de parâmetros roda sem caber na GPU?
❓ Mistura de especialistas é sempre melhor?
❓ O que é desequilíbrio de roteamento?
Fixando
Qual é o desafio central de treinar essa arquitetura?
Qual é a implicação operacional dessa arquitetura em servir o modelo?
Terminou de ler?
Marcar como concluído registra o XP, mantém sua sequência e coloca 3 cartas deste módulo na fila de revisão espaçada.
Próximos passos sugeridos
Temas deste módulo
Discussão
Carregando comentários…