Paralelismo de pipeline
Leerlo en el Capítulo 4 · checkpoint +50 XP →
Divide la pila de capas en etapas en GPUs distintas y pasa micro-batches en cadena. Poco tráfico, pero con una burbuja.
El paralelismo de pipeline (PP) asigna capas contiguas a etapas. La etapa 1 corre las capas 1–20, la etapa 2 las 21–40, y así. Solo las activaciones en los bordes entre etapas cruzan la red, así que PP se lleva bien con varios nodos sobre InfiniBand y RoCE.
La burbuja: al inicio y al final de cada paso algunas etapas quedan ociosas mientras el pipeline se llena y se vacía. Con p etapas y m micro-batches por paso (calendario 1F1B):
fracción de burbuja ≈ (p − 1) / (m + p − 1)
Más micro-batches (acumulación de gradientes) achican la burbuja. Los calendarios intercalados la reducen más, a cambio de más comunicación.
Restricciones: el número de capas debe dividirse (casi) por igual entre etapas, y las etapas deben estar equilibradas. La primera etapa además guarda la mayor cantidad de activaciones en vuelo.
La receta clásica para modelos grandes, el paralelismo 3D, combina los tres: TP dentro del nodo, PP entre unos pocos nodos y DP (a menudo con ZeRO-1) en todo lo demás.
Úsalo en una misión
Relacionado
Fuentes y lecturas adicionales
- GPipe (Huang et al., 2019)
- Megatron-LM (Shoeybi et al., 2019)
- Distributed Training (T. Tsugriy) — parallelism strategies, collectives, memory
Escrito para LazyLab con nuestras propias palabras; las fuentes se citan para profundizar y verificar.