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

Pipeline Parallelism

O paralelismo de pipeline coloca camadas consecutivas de um modelo em GPUs diferentes e encaminha minilotes por elas, permitindo treinar modelos maiores do que uma única GPU.

O paralelismo de pipeline é uma técnica de treinamento distribuído que divide uma rede neural por profundidade em grupos consecutivos de camadas, chamados estágios, coloca cada estágio na sua própria GPU e transmite as ativações de um estágio para o seguinte. Para manter todas as GPUs ocupadas, cada lote é dividido em microlotes menores que percorrem os estágios como peças numa linha de montagem. Também é chamado paralelismo de modelo entre camadas. Investigadores da Google, liderados por Yanping Huang, popularizaram a abordagem com microlotes através do GPipe em novembro de 2018, treinando uma AmoebaNet com 557 milhões de parâmetros até atingir 84,4% de precisão top-1 no ImageNet e um transformer multilíngue de tradução com 6 mil milhões de parâmetros e 128 camadas.

Microlotes e a bolha do pipeline#

Com um lote de cada vez, apenas um estágio trabalha enquanto os outros esperam: o estágio 2 não pode começar até o estágio 1 terminar e, durante a retropropagação, a ordem se inverte. Os microlotes permitem que o estágio 1 comece o segundo microlote assim que entrega o primeiro ao estágio 2. Os intervalos ociosos que restam enquanto o pipeline se enche e se esvazia são chamados de bolha. A impressão de uma agenda de propagação para a frente no estilo GPipe, com 4 estágios e 6 microlotes, mostra o seu formato:

stages, micro_batches = 4, 6
steps = micro_batches + stages - 1  # time steps until the last micro-batch leaves the last stage

for stage in range(stages):
    row = ""
    for t in range(steps):
        m = t - stage  # stage s starts micro-batch m once stage s-1 hands it over
        row += f" F{m}" if 0 <= m < micro_batches else "  ."
    print(f"GPU {stage}:{row}")

# Every stage idles for stages - 1 of the steps, in the forward and again in the backward pass
bubble = (stages - 1) / steps
print(f"Idle fraction: {bubble:.0%}")

O resultado é uma escada: a GPU 0 executa passagens de propagação para a frente de F0 a F5 nos primeiros seis dos nove passos e depois espera; a GPU 3 espera três passos antes de começar F0, e a última linha mostra Idle fraction: 33%. A fração da bolha é (estágios − 1) / (microlotes + estágios − 1); assim, 24 microlotes nos mesmos 4 estágios reduzem-na a 11%. Os gradientes de todos os microlotes são somados antes de uma única etapa do otimizador, a mesma operação aritmética da acumulação de gradientes, pelo que a atualização corresponde ao treinamento com o lote completo. O GPipe também descarta as ativações dentro de cada estágio e volta a calculá-las durante a passagem para trás, uma forma de checkpointing de gradientes.

Agendas de pipeline#

Agendas posteriores reordenam o mesmo trabalho para poupar memória ou reduzir a bolha:

  • 1F1B: Introduzido pelo sistema PipeDream em 2018, alterna um microlote de propagação para a frente e um de propagação para trás por estágio assim que o pipeline está cheio. Cada estágio mantém então as ativações de, no máximo, tantos microlotes quantos os estágios, em vez de os manter todos.
  • 1F1B intercalado: Atribui a cada GPU vários estágios menores e não adjacentes. A equipa Megatron-LM da NVIDIA relatou um aumento de rendimento superior a 10% com este método e treinou um modelo de 1 bilião de parâmetros a 502 petaFLOP/s em 3.072 GPUs, ou 52% do pico.
  • Bolha zero: Divide a passagem para trás em gradiente da entrada do estágio, aguardado pelo estágio anterior, e gradiente dos pesos, que pode preencher intervalos ociosos mais tarde. Supera o rendimento do 1F1B em até 23% com um orçamento de memória semelhante.

O PyTorch disponibiliza estas opções como ScheduleGPipe, Schedule1F1B, ScheduleInterleaved1F1B, ScheduleInterleavedZeroBubble e ScheduleDualPipeV na sua API de pipeline, que também divide um modelo em estágios. O DualPipe vem do DeepSeek-V3, cuja equipa executou 16 estágios de pipeline e usou o método para sobrepor computação e comunicação e reduzir a bolha.

Onde se enquadra o paralelismo de pipeline#

Os estágios trocam apenas as ativações nos seus limites, uma vez por microlote; por isso, o paralelismo de pipeline tolera melhor ligações mais lentas entre servidores do que o paralelismo de tensores, que comunica dentro de cada camada. Por isso, as grandes execuções de treinamento combinam ambos. A Meta treinou o Llama 3 405B com paralelismo de tensores em 8 vias dentro de cada servidor com 8 GPUs, 16 estágios de pipeline entre servidores e paralelismo de dados em 64 a 128 réplicas; mecanismos de inferência como o vLLM usam a mesma divisão quando um modelo de linguagem grande (LLM) precisa de mais de um nó. O estágio mais lento determina o ritmo de todo o pipeline, e os estágios inicial e final de um modelo de linguagem também contêm a tabela de embeddings e a camada de saída; por isso, o Llama 3 atribuiu a cada um deles uma camada transformer a menos.

As abordagens relacionadas dividem o trabalho de outras formas:

  • Paralelismo de tensores: Divide as matrizes de pesos dentro de cada camada, para que todas as GPUs participem em todas as camadas.
  • Paralelismo de contexto: Divide uma sequência de entrada longa entre GPUs.
  • Aprendizado dividido: Também divide uma rede por profundidade, mas entre organizações, para que o proprietário dos dados nunca envie dados brutos ao servidor que executa as camadas posteriores.

O paralelismo de dados mantém cada camada em todas as GPUs e, em vez disso, divide o lote, o que é tudo de que um modelo precisa quando cabe num único dispositivo. É assim que o Ultralytics YOLO26 treina em várias GPUs: com device=[0, 1, 2, 3] e batch=64 no modo de treinamento, cada GPU executa o modelo completo de deteção de objetos em 16 imagens, e o PyTorch DistributedDataParallel calcula a média dos gradientes entre GPUs após cada passagem para trás.

Explore as soluções

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