ParalelismoRuta Optimización

Paralelismo de datos (DDP)

Leerlo en el Capítulo 4 · checkpoint +50 XP →

Cada GPU tiene una réplica completa del modelo, procesa datos distintos y promedia los gradientes en cada paso.

La forma más simple de escalar: replica el modelo en N GPUs, dale a cada una una parte distinta del batch y luego haz all-reduce de los gradientes para que cada réplica dé el mismo paso del optimizador.

Costo: un all-reduce del gradiente completo (2 bytes × parámetros en BF16) por paso. Con all-reduce en anillo, el tráfico por GPU es ~2× el tamaño del gradiente, independiente de N. Por eso el paralelismo de datos escala tan bien.

Cómo hacerlo rápido

  • Solapamiento: DDP agrupa los gradientes en buckets y hace all-reduce de cada bucket en cuanto el backward lo produce, ocultando la comunicación detrás del cómputo (ver CUDA streams y ejecución asíncrona).
  • Acumulación de gradientes: corre varios micro-batches antes de sincronizar. Obtienes un batch global mayor con la misma memoria y menos sincronizaciones por token.

Límite: cada GPU debe tener el estado completo del modelo. Cuando eso deja de caber, ver ZeRO y FSDP, paralelismo tensorial y paralelismo de pipeline.

Úsalo en una misión

Relacionado

Fuentes y lecturas adicionales

Escrito para LazyLab con nuestras propias palabras; las fuentes se citan para profundizar y verificar.