La mayoría de los marcos de entrenamiento distribuido se construyen sobre una fantasía: hardware perfectamente uniforme. El mismo modelo de GPU, la misma VRAM, el mismo ancho de banda de red en todas partes.

El hardware real de consumo es un caos. Tienes generaciones mixtas de GPU (una RTX 3060 al lado de una 4090), configuraciones de RAM muy diferentes, y CPUs mezcladas con las GPUs. Marcos estándar como PyTorch DDP o Horovod simplemente se bloquean antes de que el entrenamiento siquiera empiece.

El problema central: estos marcos asumen cómputo homogéneo y patrones de comunicación simétricos. No pueden manejar topologías heterogéneas donde un nodo tiene 24GB de VRAM y otro 8GB, o donde la latencia de red varía 10 veces entre nodos.

Por eso, el entrenamiento descentralizado en hardware de consumo sigue siendo, en gran medida, teórico. Necesitas una partición dinámica de la carga de trabajo, un tamaño de lote adaptativo por nodo y una agregación de gradientes tolerante a fallos que no asuma que todos terminan al mismo tiempo.