¿Qué es el paralelismo de modelo?
El paralelismo de datos tiene una suposición oculta: que cada tarjeta puede alojar el modelo entero. Pero cuando un modelo llega a decenas o cientos de miles de millones de parámetros, ninguna GPU puede con él. El paralelismo de modelo toma la otra vía: trocea el propio modelo, colocando capas distintas (o partes distintas de una capa) en GPUs distintas, para que cooperen y calculen un único modelo gigante.¿En qué se diferencia del paralelismo de datos?
El de datos reparte los datosCada tarjeta tiene una copia completa y procesa muestras distintas.
El de modelo reparte el modelo
El modelo se parte en piezas, cada tarjeta es dueña de una, y los datos fluyen por todas en orden.
Resuelven problemas distintos
El de datos arregla «es demasiado lento»; el de modelo arregla «no cabe».
Dos formas habituales de partir
Por capas (entre capas)Las capas 1–10 van a la GPU A y la 11–20 a la B. Los datos pasan por A y luego por B, como una cadena de montaje.
Por tensores (paralelismo de tensores)
Se divide el álgebra de matrices dentro de una sola capa entre tarjetas, se calcula en paralelo y se vuelve a unir — habitual en las grandes matrices de atención de los transformers.
Qué tiene de complicado
Comunicación intensaLos datos van y vienen entre capas y tensores, así que hace falta mucho ancho de banda entre tarjetas.
Carga desequilibrada
Si las piezas no tienen el mismo coste de cálculo, las tarjetas rápidas se quedan esperando a las lentas.
Más difícil de implementar
A diferencia del paralelismo de datos, casi plug-and-play, esto exige más ingeniería.
Por qué es insustituible
Casi todos los modelos ultragrandes que se entrenan hoy se apoyan en el paralelismo de modelo. Sin él, un modelo con cientos de miles de millones de parámetros ni siquiera podría cargarse, y menos entrenarse.En resumen: el paralelismo de modelo es lo que usas cuando el modelo no cabe — lo troceas y haces que varias tarjetas lo levanten entre todas.
Comentarios