Tensor Parallelism
Aprende como o paralelismo de tensores fragmenta matrizes de pesos entre GPUs para treinar modelos massivos. Explora como difere do paralelismo de dados com a Ultralytics.
Paralelismo de Tensores é uma técnica avançada de treinamento distribuído usada em aprendizado de máquina para dividir grandes estruturas matemáticas individuais, ou tensores, entre múltiplos aceleradores de hardware, como GPUs ou TPUs. Ao treinar modelos massivos de deep learning, a contagem de parâmetros pode facilmente exceder a capacidade de memória de um único dispositivo. Em vez de colocar uma camada inteira de neural network em uma GPU, o paralelismo de tensores fragmenta as matrizes de pesos e divide as operações matemáticas (como multiplicações de matrizes) entre múltiplos dispositivos em um cluster. Isso permite que o modelo aproveite a memória e o poder computacional combinados de toda a configuração de hardware, executando cálculos paralelos em um paradigma Single-Program Multiple-Data (SPMD) enquanto sincroniza os resultados por meio de interconexões de alta velocidade como o NVIDIA NVLink.
Link to this sectionComo funciona o Paralelismo de Tensores#
No núcleo de uma rede neural estão as multiplicações de matrizes. O paralelismo de tensores distribui essas operações dividindo as matrizes linha a linha ou coluna a coluna. Por exemplo, em uma camada totalmente conectada ou em um mecanismo de atenção transformer, uma GPU pode calcular a metade esquerda da matriz enquanto outra calcula a metade direita. Após a conclusão dos cálculos paralelos, os dispositivos se comunicam — frequentemente usando operações All-Reduce collective operations rápidas — para agregar os resultados parciais antes de passar o tensor completo para a próxima camada. Avanços acadêmicos recentes em 2025 estão otimizando ainda mais este processo ao introduzir ativações parcialmente sincronizadas para reduzir a sobrecarga de comunicação que normalmente gera gargalos em grandes clusters de computação.
Link to this sectionDiferenciando Técnicas de Paralelismo Relacionadas#
Entender como o paralelismo de tensores se encaixa no panorama mais amplo da computação distribuída exige diferenciá-lo de outras estratégias comuns:
- Paralelismo de Tensores vs. Paralelismo de Modelo: O paralelismo de tensores é uma subcategoria altamente específica do paralelismo de modelo. Enquanto o paralelismo de modelo geral se refere a dividir um modelo entre dispositivos de qualquer maneira, o paralelismo de tensores refere-se estritamente ao fragmentação (sharding) dos tensores individuais dentro de uma única camada.
- Paralelismo de Tensores vs. Paralelismo de Pipeline: O paralelismo de pipeline é outra forma de paralelismo de modelo que particiona a rede por profundidade — colocando as primeiras camadas na GPU 0, as próximas na GPU 1, e assim por diante. Isso cria dependências sequenciais conhecidas como pipeline bubbles. O paralelismo de tensores divide as próprias camadas, executando-as simultaneamente sem atraso sequencial, mas requer uma largura de banda de rede muito maior.
- Paralelismo de Tensores vs. Paralelismo de Dados: No paralelismo de dados, o modelo inteiro é totalmente replicado em cada GPU, e apenas o conjunto de dados de treinamento é dividido entre os dispositivos. Para arquiteturas altamente otimizadas como o Ultralytics YOLO26, que cabem facilmente em GPUs modernas, o paralelismo de dados via
DistributedDataParalleldo PyTorch é o método padrão. O paralelismo de tensores geralmente só é necessário quando os parâmetros de uma única camada excedem a VRAM do hardware, causando erros de falta de memória (OOM).
Link to this sectionAplicações no Mundo Real#
O paralelismo de tensores é indispensável nas infraestruturas de IA modernas, particularmente para arquiteturas de ponta que exigem escala computacional massiva:
- Treinamento de Grandes Modelos de Linguagem (LLMs): Modelos fundamentais massivos como o Llama 3 da Meta e o DeepSeek V3 utilizam frameworks como o NVIDIA Megatron-LM para implementar paralelismo de tensores. Como as dimensões ocultas e os attention heads desses modelos são tão grandes, dividi-los em um nó de 8 GPUs é obrigatório para treinar de forma eficiente e manter baixa latência durante a real-time inference.
- Grandes Modelos de Visão (LVMs) e Geração 3D: À medida que a visão computacional escala em direção a sistemas de raciocínio multimodal massivos, pesquisadores usam paralelismo de tensores combinado com paralelismo de pipeline em serviços como o AWS SageMaker para treinar gigantescos vision transformers (ViTs). Essa técnica permite o processamento de imagens de alta resolução e a geração de vídeos que exigem blocos de memória contíguos enormes.
Link to this sectionImplementando Paralelismo de Tensores no PyTorch#
Historicamente, os engenheiros precisavam escrever lógica distribuída personalizada complexa para fragmentar tensores. Recentemente, o PyTorch introduziu o DTensor (Distributed Tensor), simplificando nativamente este fluxo de trabalho. Abaixo está um exemplo de criação de um tensor fragmentado linha a linha usando a API de Tensor Distribuído oficial do 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}")For edge-optimized vision tasks and rapid model deployment, developers typically rely on the Ultralytics Platform to automatically handle optimal hardware utilization. While multi-billion parameter foundation models require manual tensor parallelism configurations, you can efficiently scale training for models like YOLO26 using simple CLI commands out-of-the-box. This ensures maximum throughput by seamlessly utilizing native data parallelism techniques alongside robust model training tips.






