Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Expert Parallelism

O paralelismo de especialistas distribui os especialistas das camadas de mistura de especialistas entre GPUs e encaminha cada token para eles usando comunicação de todos para todos.

O paralelismo de especialistas (EP) é uma estratégia de treino distribuído e inferência para modelos de mistura de especialistas (MoE), que coloca diferentes especialistas em diferentes GPUs e encaminha cada token para os dispositivos que contêm os especialistas selecionados para o processar. Uma camada MoE substitui um grande bloco feed-forward de um transformador por várias redes de especialistas mais pequenas e por um encaminhador que ativa apenas alguns especialistas por token, pelo que o total de parâmetros pode crescer muito mais depressa do que a computação aplicada a cada token. O paralelismo de especialistas permite armazenar esses parâmetros na memória: em vez de cada GPU armazenar todos os especialistas, cada uma armazena uma parte. Já em 2017, Noam Shazeer e colegas da Google distribuíram especialistas pelos dispositivos, com uma cópia partilhada de cada um, na sua camada MoE esparsamente controlada; em junho de 2020, o GShard ampliou esta abordagem, distribuindo os especialistas de um modelo de tradução com mais de 600 mil milhões de parâmetros por 2,048 aceleradores TPU v3. O paralelismo de especialistas é hoje padrão no treino e na execução de modelos de linguagem e modelos de visão-linguagem MoE de grande dimensão.

Como os tokens circulam entre GPUs#

Cada camada MoE é executada em quatro etapas:

  1. Encaminhamento: O encaminhador pontua cada token em relação a cada especialista e seleciona os especialistas top-k, normalmente um, dois ou oito.
  2. Encaminhamento: Uma operação coletiva de todos para todos envia o estado oculto de cada token para as GPUs que contêm os especialistas selecionados.
  3. Computação: Cada GPU executa os seus especialistas locais nos tokens recebidos.
  4. Combinação: Uma segunda operação all-to-all devolve os resultados à GPU original de cada token, onde são ponderados pelas pontuações do encaminhador e somados.

O excerto abaixo simula as etapas de encaminhamento e distribuição de uma camada com 8 especialistas distribuídos por 4 GPUs, dois especialistas por GPU:

import torch

torch.manual_seed(0)
num_experts, num_gpus, top_k = 8, 4, 2
tokens = torch.randn(4096, 512)  # estados ocultos de 4.096 tokens
router = torch.nn.Linear(512, num_experts)

# Encaminhamento: cada token escolhe os seus 2 melhores especialistas com base na pontuação do encaminhador
with torch.no_grad():
    _, experts = router(tokens).topk(top_k, dim=-1)

# Paralelismo de especialistas: os especialistas 0-1 estão na GPU 0, os especialistas 2-3 na GPU 1 e assim por diante
gpu = experts // (num_experts // num_gpus)

# Distribuição: contar as atribuições de tokens a especialistas recebidas por cada especialista e GPU
print(torch.bincount(experts.flatten(), minlength=num_experts).tolist())
print(torch.bincount(gpu.flatten(), minlength=num_gpus).tolist())

A primeira linha do resultado mostra a carga de cada especialista, entre 948 e 1.087 atribuições, face a uma quota igual de 1.024. A segunda linha mostra que as quatro GPUs recebem entre 1.968 e 2.139 das 8.192 atribuições. Mesmo um encaminhador inicializado aleatoriamente distribui o trabalho de forma desigual, e os encaminhadores treinados desenvolvem especialistas populares que desequilibram ainda mais a carga.

Equilíbrio de carga e capacidade#

Uma camada só termina quando a GPU mais ocupada termina; por isso, um encaminhamento desequilibrado deixa o hardware inativo. O treino MoE combate este problema de três formas:

  • Perda auxiliar de equilíbrio: Um termo adicional na função de perda recompensa o encaminhador por distribuir os tokens uniformemente pelos especialistas.
  • Fator de capacidade: Cada especialista aceita, no máximo, um número fixo de tokens por lote — por exemplo, 1.25 vezes a quota equitativa — e os tokens excedentes ignoram esse especialista.
  • Equilíbrio baseado em desvios: O DeepSeek-V3 acrescenta um desvio por especialista às pontuações do encaminhador, que afeta apenas a seleção dos especialistas. Após cada passo, reduz o desvio dos especialistas sobrecarregados e aumenta o dos que estão inativos, equilibrando a carga sem uma perda auxiliar que concorra com o objetivo principal.

Com um limite de capacidade, o percurso de cada token depende da carga dos seus especialistas:

Um token ignorado atravessa a ligação residual da camada sem alterações, pelo que a eliminação de muitos tokens prejudica a qualidade. O DeepSeek-V3 não elimina tokens durante o treino e, em vez disso, recorre ao equilíbrio baseado em desvios.

A comunicação é o outro custo. As duas trocas de todos para todos ocorrem em cada camada MoE; por isso, o paralelismo de especialistas funciona melhor dentro de um nó, onde as GPUs partilham ligações NVLink rápidas, e torna-se dispendioso através das ligações mais lentas entre nós. O DeepSeek-V3 distribui os seus 256 especialistas encaminhados por camada com paralelismo de especialistas de 64 vias em 8 nós, envia cada token para especialistas em, no máximo, 4 nós e sobrepõe as trocas à computação.

Combinação de estratégias de paralelismo#

O paralelismo de especialistas é uma das várias formas de distribuir o treino por vários dispositivos:

  • Paralelismo de dados: Replica o modelo completo em cada GPU e divide cada lote, sincronizando os gradientes após cada passo.
  • Paralelismo de tensores: Divide matrizes de pesos individuais entre GPUs, para que todas as GPUs participem em cada camada.
  • Paralelismo de pipeline: Atribui camadas consecutivas a GPUs diferentes e processa microlotes em fluxo através dessas camadas.
  • Paralelismo de contexto: Divide uma única sequência de entrada longa entre GPUs.

Os modelos densos que cabem em uma GPU não precisam de nada além de paralelismo de dados, que é como Ultralytics YOLO26 treina em várias GPUs quando uma lista de dispositivos, como device=[0, 1], é passada no modo de treinamento. Modelos MoE grandes combinam várias formas de paralelismo: o DeepSeek-V3 treinou seus 671 bilhões de parâmetros, com 37 bilhões ativos por token, usando paralelismo de pipeline de 16 vias, paralelismo de especialistas de 64 vias e paralelismo de dados fragmentado, sem paralelismo de tensores. Mecanismos de inferência como o vLLM aplicam a mesma divisão ao servir um modelo, permitindo que um modelo MoE cujos especialistas excederiam a memória de uma GPU seja executado em várias GPUs, cada uma contendo apenas sua parte dos especialistas.

Explore solutions

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina