ChatPaper.aiChatPaper

Pipeline Parallelo a Bolla Zero

Zero Bubble Pipeline Parallelism

November 30, 2023
Autori: Penghui Qi, Xinyi Wan, Guangxing Huang, Min Lin
cs.AI

Abstract

Il parallelismo pipeline è uno dei componenti chiave per l'addestramento distribuito su larga scala, ma la sua efficienza è compromessa dalle bolle pipeline, ritenute inevitabili. In questo lavoro, introduciamo una strategia di scheduling che, a nostra conoscenza, è la prima a raggiungere con successo zero bolle pipeline sotto semantica di addestramento sincrono. L'idea centrale di questo miglioramento è dividere il calcolo all'indietro in due parti: una che calcola il gradiente per l'input e un'altra che lo calcola per i parametri. Basandoci su questa idea, abbiamo progettato manualmente nuovi scheduli pipeline che superano significativamente i metodi di base. Abbiamo inoltre sviluppato un algoritmo che trova automaticamente uno schedulo ottimale in base alla configurazione specifica del modello e al limite di memoria. Inoltre, per raggiungere veramente zero bolle, introduciamo una nuova tecnica per bypassare le sincronizzazioni durante il passo dell'ottimizzatore. Le valutazioni sperimentali mostrano che il nostro metodo supera lo schedulo 1F1B fino al 23% in termini di throughput sotto un limite di memoria simile. Questo numero può essere ulteriormente spinto al 31% quando il vincolo di memoria è rilassato. Crediamo che i nostri risultati rappresentino un importante passo avanti nello sfruttare il vero potenziale del parallelismo pipeline. Abbiamo reso open source la nostra implementazione basata sul popolare repository Megatron-LM su https://github.com/sail-sg/zero-bubble-pipeline-parallelism.
English
Pipeline parallelism is one of the key components for large-scale distributed training, yet its efficiency suffers from pipeline bubbles which were deemed inevitable. In this work, we introduce a scheduling strategy that, to our knowledge, is the first to successfully achieve zero pipeline bubbles under synchronous training semantics. The key idea behind this improvement is to split the backward computation into two parts, one that computes gradient for the input and another that computes for the parameters. Based on this idea, we handcraft novel pipeline schedules that significantly outperform the baseline methods. We further develop an algorithm that automatically finds an optimal schedule based on specific model configuration and memory limit. Additionally, to truly achieve zero bubble, we introduce a novel technique to bypass synchronizations during the optimizer step. Experimental evaluations show that our method outperforms the 1F1B schedule up to 23% in throughput under a similar memory limit. This number can be further pushed to 31% when the memory constraint is relaxed. We believe our results mark a major step forward in harnessing the true potential of pipeline parallelism. We open sourced our implementation based on the popular Megatron-LM repository on https://github.com/sail-sg/zero-bubble-pipeline-parallelism.
PDF253December 15, 2024