Como funciona

Quando um modelo não cabe na memória de uma única GPU, o paralelismo de modelo distribui suas camadas ou parâmetros entre várias GPUs. No paralelismo de pipeline, cada GPU processa um estágio da rede. No paralelismo de tensor, uma única operação é dividida entre GPUs.

A comunicação entre GPUs é o gargalo: dados precisam ser transferidos entre estágios a cada passo. Frameworks como DeepSpeed e Megatron-LM implementam essas técnicas de forma otimizada.

O paralelismo de modelo é frequentemente combinado com o paralelismo de dados (3D parallelism) para escalar treinamentos de modelos com centenas de bilhões de parâmetros.

Exemplo prático

Um modelo de 100 bilhões de parâmetros não cabe em uma GPU de 80 GB. Com paralelismo de modelo em 4 GPUs, cada uma armazena ~25 bilhões de parâmetros. O forward pass passa dados de uma GPU para a próxima.

Texto
GPU 0: camadas 1-20
GPU 1: camadas 21-40
GPU 2: camadas 41-60
GPU 3: camadas 61-80

Com DeepSpeed, a configuração é feita via JSON:

JSON
{
  "tensor_parallel": {"size": 4},
  "pipeline_parallel": {"size": 2}
}

Para que serve

Treinar e servir modelos que excedem a memória de uma GPU. É a base de sistemas como Megatron-LM e DeepSpeed. Complementa o paralelismo de dados em treinamentos de grande escala.