Expert Parallelism
Aprende como o paralelismo de especialistas distribui modelos Mixture-of-Experts por GPUs, reduzindo as exigências de memória enquanto equilibra o encaminhamento, a comunicação e o desempenho.
O paralelismo de especialistas é uma técnica de computação distribuída que aloca diferentes especialistas de um modelo de mistura de especialistas em diferentes GPUs ou aceleradores. Em vez de cada dispositivo armazenar todos os especialistas, cada dispositivo mantém um subconjunto. Um roteador treinado envia cada token de entrada para os especialistas selecionados, permitindo que modelos muito grandes aumentem a capacidade de parâmetros sem ativar cada parâmetro para cada entrada.
A técnica aplica-se especificamente a arquiteturas de mistura de especialistas, e não a redes neurais densas comuns. É comumente usada ao treinar ou servir grandes modelos de linguagem e modelos de visão e linguagem cujas camadas de especialistas consumiriam muita memória em um único dispositivo.
Como Funciona o Paralelismo de Especialistas#
Uma camada de MoE contém várias redes de especialistas, tipicamente redes neurais feed-forward, além de um roteador. Para cada token, o roteador produz pontuações e seleciona um pequeno número de especialistas, frequentemente chamado de roteamento top-k.
Em uma camada com oito especialistas distribuída em quatro GPUs, por exemplo, cada GPU pode armazenar dois especialistas. O processamento segue então quatro etapas principais:
- O roteador seleciona especialistas para cada token.
- Os tokens são trocados entre as GPUs para que cheguem aos dispositivos que contêm esses especialistas.
- Cada especialista processa seus tokens atribuídos localmente.
- Os resultados retornam às posições originais dos tokens e continuam através do modelo.
Essa troca comumente depende da comunicação all-to-all, uma operação coletiva descrita na documentação de operações coletivas do NVIDIA NCCL. O guia de paralelismo do NVIDIA Megatron Bridge mostra como a contagem de especialistas e o tamanho do paralelismo de especialistas determinam o número de especialistas alocados em cada GPU.
O paralelismo de especialistas economiza memória por dispositivo porque os pesos dos especialistas são particionados. No entanto, ele não elimina os custos de computação ou comunicação: os tokens podem cruzar fronteiras de dispositivos ou nós em cada camada de MoE.
Paralelismo de Especialistas vs. Técnicas Relacionadas#
O paralelismo de especialistas é uma forma de treinamento distribuído, mas divide um modelo de forma diferente de outras estratégias:
- Paralelismo de dados: Cada dispositivo armazena uma réplica completa do modelo e processa um lote diferente. Os gradientes são sincronizados entre as réplicas, conforme explicado na visão geral de treinamento distribuído do PyTorch. Isso é eficaz quando o modelo completo cabe em cada dispositivo.
- Paralelismo de tensores: Matrizes de peso individuais e operações matemáticas dentro de uma camada são divididas entre os dispositivos. O paralelismo de especialistas, em vez disso, atribui especialistas completos aos dispositivos.
- Paralelismo de pipeline: Grupos consecutivos de camadas executam em diferentes dispositivos, com micro-lotes fluindo através deles como estágios de pipeline.
- Paralelismo de contexto: Sequências de entrada longas são particionadas entre os dispositivos para reduzir os requisitos de memória de ativação.
- Paralelismo de tensores de especialistas: Os especialistas são distribuídos entre os dispositivos, e cada especialista individual também é fragmentado por tensores. Essa abordagem híbrida pode acomodar especialistas maiores, mas introduz comunicação adicional.
Essas abordagens são complementares. Grandes sistemas de MoE podem combinar paralelismo de especialistas, dados, tensores, pipeline e contexto de acordo com o tamanho do modelo e a topologia de hardware.
Aplicações no mundo real#
Assistentes multilíngues em grande escala: Um modelo de linguagem de MoE pode conter muitas redes de especialistas enquanto ativa apenas algumas para cada token. O paralelismo de especialistas distribui essas redes em um cluster de atendimento, permitindo que o sistema retenha alta capacidade de modelo sem carregar cada especialista em cada GPU. Tempos de execução de produção como implantação paralela de especialistas do vLLM e paralelismo de especialistas do TensorRT-LLM suportam este tipo de layout de inferência.
Análise de conteúdo multimodal: Um grande modelo de MoE que processa patches de imagem e tokens de texto pode rotear entradas por meio de especialistas selecionados distribuídos em múltiplos aceleradores. Isso pode apoiar a compreensão de documentos, resposta visual a perguntas e outros serviços de IA multimodal enquanto mantém a memória de especialistas por dispositivo gerenciável. O mesmo princípio pode se aplicar a transformers de visão esparsos em grande escala, embora a maioria dos modelos de visão compactos em tempo real não o exija.
Benefícios, Gargalos e Orientação Prática#
O paralelismo de especialistas oferece três vantagens principais: menor memória de peso de especialistas por GPU, suporte a modelos com maior capacidade total e computação esparsa eficiente quando apenas alguns especialistas são ativados por token. O guia de paralelismo de especialistas do Amazon SageMaker ilustra como o grau de paralelismo de especialistas controla a distribuição em um cluster.
Seu principal desafio é o desbalanceamento de carga. Se o roteador enviar muitos tokens para um único especialista, a GPU desse especialista se torna um gargalo enquanto as outras aguardam. As consequências incluem menor throughput, latência instável e possível descarte de tokens quando a capacidade do especialista é limitada. Os engenheiros devem monitorar tokens por especialista, balanceamento de roteamento, tempo de comunicação, uso de memória e latência de ponta a ponta. Interconexões de alta largura de banda e sobreposição de computação e comunicação podem reduzir a sobrecarga de transferência.
O paralelismo de especialistas é desnecessário ao usar um modelo denso como Ultralytics YOLO26. O treinamento do Ultralytics YOLO com múltiplas GPUs usa paralelismo de dados distribuído em vez disso:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Two-GPU YOLO training uses data parallelism, not expert parallelism.
results = model.train(
data="coco8.yaml",
epochs=10,
imgsz=640,
device=[0, 1],
)Este fluxo de trabalho replica o YOLO26 em duas GPUs e divide os lotes de treinamento entre elas; ele não roteia entradas entre as redes de especialistas. As equipes também podem usar o treinamento em nuvem da Ultralytics Platform para gerenciar conjuntos de dados de visão, treinamento, métricas, exportação e implantação sem configurar a infraestrutura distribuída manualmente.









