¿Qué es el paralelismo de pipeline?
El paralelismo de modelo trocea el modelo por capas, y los datos fluyen por cada tarjeta en orden. La pega: en un instante dado solo una tarjeta trabaja y las demás esperan. El paralelismo de pipeline arregla ese tiempo muerto: alimenta muchos lotes como una cadena de fábrica, uno tras otro, para que cada tarjeta coja el siguiente lote en cuanto termina el anterior. La utilización de los dispositivos sube mucho.Cómo imaginarlo
Piensa en una cadena de montaje de cochesMientras la estación uno atornilla el chasis, la dos ya monta el motor del coche anterior, y la tres pinta uno aún más antiguo. Ninguna estación se detiene, y los coches terminados no dejan de salir.
Las capas del modelo son las estaciones
Capas distintas en GPUs distintas, y los lotes de muestras son los «coches» de la línea.
¿Qué problema resuelve?
Reduce las «burbujas»Si alimentas un lote cada vez, las tarjetas de atrás esperan mientras las de delante calculan, y luego todos esperan otra vez en el camino de vuelta — huecos de inactividad llamados «burbujas».
Rellena los huecos con más lotes
Divide los datos en muchos micro-lotes pequeños y deja que fluyan uno detrás de otro. Los lotes posteriores llenan el tiempo muerto y el rendimiento sube.
El coste y los compromisos
Se gasta más memoriaCon varios lotes a la vez en la línea, cada tarjeta guarda estado intermedio de varios lotes, y la memoria sube.
Planificación más difícil
Hay que elegir cuántos micro-lotes y cómo colocarlos para mantener la línea llena sin reventar la memoria.
Dónde encaja en los modelos grandes
El paralelismo de pipeline suele usarse junto con el de modelo y el de datos: parte del combo que entrena modelos ultragrandes. Mantiene ocupadas cientos o miles de GPUs y empuja la velocidad de entrenamiento aún más arriba.En resumen: el paralelismo de pipeline mantiene un modelo funcionando como una cadena de fábrica que nunca se detiene — los lotes fluyen uno tras otro y llenan cada hueco de inactividad.
Comentarios