Tensor Parallelism
Aprende cómo el paralelismo de tensores distribuye matrices de pesos entre GPUs para entrenar modelos masivos. Explora cómo se diferencia del paralelismo de datos con Ultralytics.
El paralelismo de tensores es una técnica avanzada de entrenamiento distribuido utilizada en machine learning para dividir estructuras matemáticas individuales grandes, o tensores, entre múltiples aceleradores de hardware como GPUs o TPUs. Al entrenar modelos masivos de deep learning, el número de parámetros puede exceder fácilmente la capacidad de memoria de un solo dispositivo. En lugar de colocar toda una capa de red neuronal en una sola GPU, el paralelismo de tensores fragmenta las matrices de pesos y divide las operaciones matemáticas (como las multiplicaciones de matrices) entre múltiples dispositivos en un clúster. Esto permite que el modelo aproveche la memoria y la potencia de cálculo combinadas de toda la configuración de hardware, ejecutando cálculos paralelos en un paradigma de Single-Program Multiple-Data (SPMD) mientras sincroniza los resultados mediante interconexiones de alta velocidad como NVIDIA NVLink.
Link to this sectionCómo funciona el paralelismo de tensores#
En el núcleo de una red neuronal se encuentran las multiplicaciones de matrices. El paralelismo de tensores distribuye estas operaciones dividiendo las matrices, ya sea por filas o por columnas. Por ejemplo, en una capa totalmente conectada o en un mecanismo de atención de transformer, una GPU podría calcular la mitad izquierda de la matriz mientras otra calcula la mitad derecha. Una vez terminados los cálculos paralelos, los dispositivos se comunican —a menudo utilizando rápidas operaciones colectivas All-Reduce— para agregar los resultados parciales antes de pasar el tensor completo a la siguiente capa. Los avances académicos recientes de 2025 están optimizando aún más este proceso mediante la introducción de activaciones parcialmente sincronizadas para reducir la sobrecarga de comunicación que suele crear cuellos de botella en los grandes clústeres de cálculo.
Link to this sectionDiferenciación de técnicas de paralelismo relacionadas#
Entender cómo encaja el paralelismo de tensores en el panorama más amplio de la computación distribuida requiere diferenciarlo de otras estrategias comunes:
- Paralelismo de tensores frente a paralelismo de modelos: El paralelismo de tensores es una subcategoría muy específica del paralelismo de modelos. Mientras que el paralelismo de modelos general se refiere a dividir un modelo entre dispositivos de cualquier forma, el paralelismo de tensores se refiere estrictamente a fragmentar los tensores individuales dentro de una sola capa.
- Paralelismo de tensores frente a paralelismo de canalización: El paralelismo de canalización (pipeline parallelism) es otra forma de paralelismo de modelos que particiona la red por profundidad, colocando las primeras capas en la GPU 0, las siguientes en la GPU 1, y así sucesivamente. Esto crea dependencias secuenciales conocidas como burbujas de canalización. El paralelismo de tensores divide las capas en sí, ejecutándolas simultáneamente sin retraso secuencial, pero requiere un ancho de banda de red mucho mayor.
- Paralelismo de tensores frente a paralelismo de datos: En el paralelismo de datos, el modelo completo se replica totalmente en cada GPU y solo el conjunto de datos de entrenamiento se divide entre los dispositivos. Para arquitecturas altamente optimizadas como Ultralytics YOLO26, que caben fácilmente en las GPUs modernas, el paralelismo de datos mediante
DistributedDataParallelde PyTorch es el método por defecto. El paralelismo de tensores suele ser necesario únicamente cuando los parámetros de una sola capa superan la VRAM del hardware, lo que provoca errores de falta de memoria (OOM).
Link to this sectionAplicaciones en el mundo real#
El paralelismo de tensores es indispensable en las infraestructuras de IA modernas, particularmente para arquitecturas de vanguardia que requieren una escala computacional masiva:
- Entrenamiento de grandes modelos lingüísticos (LLMs): Modelos base masivos como Llama 3 de Meta y DeepSeek V3 utilizan frameworks como NVIDIA Megatron-LM para implementar el paralelismo de tensores. Debido a que las dimensiones ocultas y los cabezales de atención de estos modelos son tan grandes, dividirlos en un nodo de 8 GPUs es obligatorio para entrenar de manera eficiente y mantener una baja latencia durante la inferencia en tiempo real.
- Grandes modelos de visión (LVMs) y generación 3D: A medida que la visión artificial escala hacia sistemas de razonamiento multimodal masivos, los investigadores utilizan el paralelismo de tensores combinado con el paralelismo de canalización en servicios como AWS SageMaker para entrenar transformadores de visión (ViTs) gigantescos. Esta técnica permite procesar imágenes de alta resolución y generación de vídeo que requieren enormes bloques de memoria contiguos.
Link to this sectionImplementación del paralelismo de tensores en PyTorch#
Históricamente, los ingenieros tenían que escribir una compleja lógica distribuida personalizada para fragmentar tensores. Recientemente, PyTorch introdujo DTensor (Distributed Tensor), simplificando de forma nativa este flujo de trabajo. A continuación, un ejemplo de creación de un tensor fragmentado por filas utilizando la API oficial de tensores distribuidos de PyTorch:
import torch
from torch.distributed.device_mesh import init_device_mesh
from torch.distributed.tensor import Shard, distribute_tensor
# Initialize a 1D device mesh across 2 GPUs
mesh = init_device_mesh("cuda", (2,))
# Create a standard PyTorch tensor (e.g., representing a layer's weights)
local_tensor = torch.randn(1024, 1024)
# Distribute the tensor across the GPUs by sharding along the first dimension (row-wise)
# Each GPU now holds a (512, 1024) chunk of the original tensor
distributed_tensor = distribute_tensor(local_tensor, mesh, [Shard(0)])
print(f"Global shape: {distributed_tensor.shape}, Local shape: {distributed_tensor.to_local().shape}")Para tareas de visión optimizadas para el borde y despliegue de modelos rápido, los desarrolladores suelen confiar en la Plataforma Ultralytics para gestionar automáticamente el aprovechamiento óptimo del hardware. Aunque los modelos base de miles de millones de parámetros requieren configuraciones manuales de paralelismo de tensores, puedes escalar eficientemente el entrenamiento para modelos como YOLO26 utilizando sencillos comandos CLI directamente. Esto garantiza el máximo rendimiento mediante la utilización fluida de técnicas nativas de paralelismo de datos junto con sólidos consejos para el entrenamiento de modelos.






