Tensor Parallelism
El paralelismo de tensores divide las matrices de pesos de una capa entre GPU para que cada dispositivo calcule una parte de cada operación. Repasa métodos relacionados, sus usos y PyTorch.
El paralelismo de tensores es una técnica avanzada de entrenamiento distribuido utilizada en aprendizaje automático para dividir estructuras matemáticas individuales de gran tamaño, o tensores, entre varios aceleradores de hardware, como GPU o TPU. Al entrenar modelos enormes de aprendizaje profundo, el número de parámetros puede superar fácilmente la capacidad de memoria de un solo dispositivo. En lugar de colocar una capa completa de una red neuronal en una GPU, el paralelismo de tensores divide las matrices de pesos y reparte las operaciones matemáticas (como las multiplicaciones de matrices) entre varios dispositivos de un clúster. Así, el modelo puede aprovechar la memoria y la capacidad de cálculo combinadas de todo el hardware y ejecutar cálculos en paralelo según el paradigma de programa único, datos múltiples (SPMD), mientras sincroniza los resultados mediante interconexiones de alta velocidad como NVIDIA NVLink.
Có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 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 finalizados los cálculos paralelos, los dispositivos se comunican —a menudo mediante operaciones colectivas All-Reduce rápidas— para agregar los resultados parciales antes de pasar el tensor completo a la siguiente capa. Los avances académicos recientes de 2025 siguen optimizando este proceso mediante la introducción de activaciones parcialmente sincronizadas, con el fin de reducir la sobrecarga de comunicación que suele limitar los grandes clústeres de computación.
Diferencias entre técnicas de paralelismo relacionadas#
Para entender cómo encaja el paralelismo de tensores en el panorama más amplio de la computación distribuida, hay que distinguirlo de otras estrategias habituales:
- 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 consiste en dividir un modelo entre dispositivos de cualquier forma, el paralelismo de tensores se refiere específicamente a dividir los tensores individuales dentro de una sola capa.
- Paralelismo de tensores frente a paralelismo de canalizaciones: El paralelismo de canalizaciones es otra forma de paralelismo de modelos que divide la red por profundidad: coloca 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 propias capas y las ejecuta simultáneamente, sin retrasos secuenciales, 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 en cada GPU y solo se divide el conjunto de datos de entrenamiento entre los dispositivos. Para arquitecturas muy optimizadas como Ultralytics YOLO26, que caben fácilmente en las GPU modernas, el paralelismo de datos mediante
DistributedDataParallelde PyTorch es el método predeterminado. El paralelismo de tensores suele ser necesario únicamente cuando los parámetros de una sola capa superan la VRAM del hardware y provocan errores de falta de memoria (OOM).
Aplicaciones en el mundo real#
El paralelismo de tensores es indispensable en las infraestructuras modernas de IA, sobre todo para arquitecturas de vanguardia que requieren una capacidad computacional enorme:
- Entrenamiento de modelos de lenguaje grandes (LLM): Los enormes modelos fundacionales, como Llama 3 de Meta, recurren al paralelismo de tensores, que suele implementarse con marcos como NVIDIA Megatron-LM, aunque DeepSeek V3 se entrenó, de forma destacada, sin él, mediante paralelismo de canalizaciones y paralelismo de expertos. Como las dimensiones ocultas y los cabezales de atención de estos modelos son tan grandes, es obligatorio distribuirlos entre los 8 GPU de un nodo para entrenarlos eficientemente y mantener una latencia baja durante la inferencia en tiempo real.
- Modelos de visión grandes (LVM) y generación 3D: A medida que la visión artificial evoluciona hacia sistemas enormes de razonamiento multimodal, los investigadores combinan el paralelismo de tensores con el paralelismo de canalizaciones en servicios como AWS SageMaker para entrenar transformadores de visión (ViT) gigantes. Esta técnica permite procesar imágenes de alta resolución y generar vídeo, tareas que requieren bloques de memoria contiguos enormes.
Implementar el paralelismo de tensores en PyTorch#
Históricamente, los ingenieros tenían que escribir una lógica distribuida personalizada y compleja para dividir tensores. Hace poco, PyTorch introdujo DTensor (Distributed Tensor), que simplifica de forma nativa este flujo de trabajo. A continuación, se muestra un ejemplo de creación de un tensor dividido por filas mediante la API oficial de Distributed Tensor 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 una implementación rápida de modelos, los desarrolladores suelen recurrir a la plataforma Ultralytics para gestionar automáticamente el uso óptimo del hardware. Aunque los modelos fundacionales con miles de millones de parámetros requieren configurar manualmente el paralelismo de tensores, puedes escalar eficientemente el entrenamiento de modelos como YOLO26 con sencillos comandos CLI listos para usar. Así se garantiza el máximo rendimiento al aprovechar sin problemas técnicas nativas de paralelismo de datos junto con sólidos consejos para entrenar modelos.










