Tutoriais & Guias

Estratégias de Paralelismo para Treinar Grandes Modelos em Múltiplas GPUs

GPipe + PipeDream + Switch TransformerFonte: Lilian Weng23/09/2021, 21:00
O treino de grandes modelos de linguagem neural apresenta desafios significativos, principalmente devido às limitações de memória das GPUs individuais e ao tempo prolongado necessário para convergência. Modelos modernos com dezenas de bilhões de parâmetros excedem a capacidade de uma única máquina. Para contornar estas limitações, existem várias estratégias de paralelismo. O paralelismo de dados copia o modelo completo em múltiplos workers, distribuindo os dados de treino entre eles. Porém, quando o tamanho do modelo ultrapassa a memória disponível, técnicas como a retirada de parâmetros para CPU são necessárias. O paralelismo de modelo divide os pesos entre múltiplas máquinas. O paralelismo de pipeline, implementado em frameworks como GPipe e PipeDream, combina estas abordagens particionando o modelo em camadas e processando múltiplos mini-batches em paralelo para reduzir períodos de inatividade computacional. O paralelismo de tensor particiona a computação de operações individuais, como demonstrado pelo Megatron-LM, paralelizando cálculos dentro de blocos de transformers. Mais recentemente, a abordagem Mixture of Experts ganhou popularidade, particularmente através de implementações como GShard e Switch Transformer. Em vez de processar sempre todos os parâmetros, estes modelos utilizam um mecanismo de gating para ativar apenas um subconjunto de especialistas para cada entrada, reduzindo significativamente a computação enquanto escala o número total de parâmetros até aos trilhões.
Estratégias de Paralelismo para Treinar Grandes Modelos em Múltiplas GPUs — lupAI