Tensor Parallelism
Aprende cómo el paralelismo de tensores divide las matrices de pesos entre GPU para entrenar modelos masivos. Explora cómo difiere del paralelismo de datos con Ultralytics.
El paralelismo de tensores es una técnica avanzada de entrenamiento distribuido utilizada en el aprendizaje automático para dividir grandes estructuras matemáticas individuales, o tensores, entre múltiples aceleradores de hardware como GPUs o TPUs. Al entrenar modelos masivos de deep learning, el recuento de parámetros puede superar fácilmente la capacidad de memoria de un solo dispositivo. En lugar de colocar una capa completa 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ómputo 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 a través de 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 derecha. Una vez terminados los cálculos en paralelo, 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 en 2025 están optimizando aún más este proceso al introducir activaciones parcialmente sincronizadas para reducir la sobrecarga de comunicación que suele crear cuellos de botella en grandes clústeres de cómputo.
Link to this sectionDiferenciación de técnicas de paralelismo relacionadas#
Comprender 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 pipeline: El paralelismo de pipeline 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 pipeline". El paralelismo de tensores divide las capas en sí, ejecutándolas simultáneamente sin retardo 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 predeterminado. El paralelismo de tensores suele ser necesario solo cuando los parámetros de una sola capa superan la VRAM del hardware, lo que provoca errores de memoria insuficiente (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 de lenguaje (LLMs): modelos de 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 las cabezas 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 se escala hacia sistemas de razonamiento multimodal masivos, los investigadores utilizan el paralelismo de tensores combinado con el paralelismo de pipeline en servicios como AWS SageMaker para entrenar gigantescos vision transformers (ViTs). Esta técnica permite procesar imágenes de alta resolución y generación de vídeo que requieren enormes bloques de memoria contigua.
Link to this sectionImplementación del paralelismo de tensores en PyTorch#
Históricamente, los ingenieros tenían que escribir una lógica distribuida personalizada y compleja para fragmentar los tensores. Recientemente, PyTorch introdujo DTensor (Distributed Tensor), simplificando nativamente este flujo de trabajo. A continuación, tienes un ejemplo de cómo crear un tensor fragmentado por filas utilizando la API oficial de PyTorch Distributed Tensor:
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 un despliegue de modelos rápido, los desarrolladores suelen confiar en la Plataforma Ultralytics para gestionar automáticamente el uso óptimo del hardware. Aunque los modelos de 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 comandos CLI sencillos de forma inmediata. Esto garantiza el máximo rendimiento al utilizar sin problemas las técnicas nativas de paralelismo de datos junto con consejos de entrenamiento de modelos robustos.






