Pipeline Parallelism
Descubre cómo el paralelismo de canalización divide los modelos de aprendizaje profundo entre GPUs. Aprende a evitar errores de falta de memoria y a optimizar el entrenamiento distribuido.
Paralelismo de canalización (Pipeline Parallelism) es una técnica avanzada de entrenamiento distribuido diseñada para particionar una red neuronal (NN) grande entre múltiples dispositivos informáticos, como GPUs, separando el modelo según su profundidad. Cuando los pesos del modelo y los estados del optimizador de una arquitectura moderna superan los límites de memoria de un único acelerador, los ingenieros dividen las capas secuenciales de la red en "etapas". Por ejemplo, las primeras 10 capas pueden residir en la GPU 0, mientras que las 10 capas siguientes residen en la GPU 1. Durante el paso hacia adelante (forward pass), los datos fluyen de un dispositivo al siguiente. Al encadenar estos dispositivos, los investigadores pueden entrenar algoritmos masivos de aprendizaje profundo (DL) sin encontrarse con errores de falta de memoria (out-of-memory errors) que limiten el hardware.
Link to this sectionCómo funciona el paralelismo de canalización#
Una implementación ingenua de división de capas entre dispositivos conduce a graves ineficiencias conocidas como "burbujas de canalización" (pipeline bubbles). Debido a que las capas se procesan secuencialmente, la GPU 1 permanece totalmente inactiva mientras la GPU 0 procesa las capas iniciales. Para maximizar la utilización del hardware, los programadores de canalización modernos dividen el tamaño del lote (batch size) global en "micro-lotes" (micro-batches) más pequeños.
En lugar de esperar a que termine un lote completo, la GPU 0 comienza a procesar inmediatamente el segundo micro-lote tan pronto como pasa el primer micro-lote a la GPU 1. Herramientas como Microsoft DeepSpeed y la API de Pipelining Distribuido de PyTorch utilizan habitualmente la estrategia de programación 1F1B (One Forward, One Backward). Este método alterna el cálculo de pasos hacia adelante y hacia atrás para diferentes micro-lotes de forma concurrente, minimizando significativamente las burbujas de canalización y el consumo de memoria. Avances recientes de 2024 y 2025 introducen incluso el Zero Bubble Pipeline Parallelism, una estrategia de predicción de pesos consciente del optimizador que casi elimina el tiempo de inactividad en los clústeres informáticos.
Link to this sectionDiferenciación de técnicas de paralelismo relacionadas#
El paralelismo de canalización opera dentro de un ecosistema más amplio de estrategias de computación distribuida. Entender las diferencias es fundamental para escalar modelos de IA de manera eficaz:
- Paralelismo de modelo: Este es el término general para dividir un modelo entre dispositivos. El paralelismo de canalización es una forma altamente específica de paralelismo de modelo que particiona la arquitectura secuencialmente por profundidad.
- Paralelismo de tensores (Tensor Parallelism): A diferencia de las divisiones por profundidad del paralelismo de canalización, el paralelismo de tensores fragmenta las operaciones matriciales individuales horizontalmente entre las GPUs. Estas dos técnicas se combinan frecuentemente para maximizar el rendimiento.
- Paralelismo de datos (Data Parallelism): El paralelismo de datos replica el modelo completo en cada GPU y distribuye los datos de entrenamiento entre ellas. Para arquitecturas compactas y altamente optimizadas de detección de objetos (object detection) y segmentación de imágenes (image segmentation) como el modelo Ultralytics YOLO26, que cabe de forma nativa en la VRAM de un solo dispositivo, el paralelismo de datos mediante DistributedDataParallel (DDP) de PyTorch es el método preferido para acelerar el entrenamiento.
Link to this sectionAplicaciones en el mundo real en IA y ML#
Escalar la infraestructura compleja es esencial para construir modernos sistemas de IA de última generación:
- Entrenamiento de modelos fundacionales: El desarrollo de gigantescos modelos de lenguaje extenso (LLMs) y modelos fundacionales como Llama 3 de Meta requiere combinar paralelismo de tensores, de datos y de canalización. Marcos de trabajo como NVIDIA Megatron-LM aprovechan estas estrategias para entrenar masivas arquitecturas de Mezcla de Expertos (Mixture-of-Experts, MoE) en miles de GPUs en plataformas en la nube como AWS SageMaker.
- Diagnóstico médico de alta resolución: En IA en la atención sanitaria y el modelado científico, las exploraciones volumétricas 3D suelen producir activaciones demasiado masivas para un solo acelerador. La canalización de las capas de red entre nodos permite a los hospitales de investigación entrenar redes profundas con inmensos conjuntos de datos de MRI sin comprometer la resolución de la imagen.
Link to this sectionEjemplo de código: Concepto de particionamiento de capas#
Históricamente, distribuir capas entre dispositivos requería código personalizado y complejo. Hoy en día, la lógica fundamental asigna capas específicas a diferentes identificadores de dispositivo. A continuación se muestra una representación conceptual de cómo se dividen las etapas de la red entre dispositivos en PyTorch, sentando las bases para las operaciones de paralelismo de canalización:
import torch.nn as nn
class SimplePipelineModel(nn.Module):
def __init__(self):
super().__init__()
# Stage 1 is assigned to the first GPU
self.stage1 = nn.Sequential(nn.Linear(1024, 1024), nn.ReLU()).to("cuda:0")
# Stage 2 is assigned to the second GPU
self.stage2 = nn.Sequential(nn.Linear(1024, 1024), nn.ReLU()).to("cuda:1")
def forward(self, x):
# The forward pass seamlessly crosses device boundaries
x_out = self.stage1(x.to("cuda:0"))
return self.stage2(x_out.to("cuda:1"))Si bien crear modelos fundacionales requiere una orquestación compleja, desplegar proyectos de visión artificial (CV) rápidos y escalables es generalmente más sencillo. Para un despliegue de modelos optimizado y una utilización automatizada de múltiples GPUs, los desarrolladores confían en la Plataforma Ultralytics para escalar las cargas de trabajo automáticamente. Aprovechando consejos robustos de entrenamiento de modelos, la plataforma abstrae la gestión de la infraestructura, permitiendo a los ingenieros centrarse totalmente en la creación de soluciones de IA precisas capaces de inferencia en tiempo real.






