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 o 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 rede neural em uma única GPU, o paralelismo de tensores fragmenta as matrizes de pesos e divide as operações matemáticas (como multiplicações de matrizes) entre vários dispositivos em um cluster. Isso permite que o modelo aproveite a memória e o poder de processamento combinados de toda a configuração de hardware, executando computações paralelas em um paradigma de 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 por linhas ou colunas. Por exemplo, em uma camada totalmente conectada ou em um mecanismo de atenção de transformer, uma GPU pode calcular a metade esquerda da matriz enquanto outra calcula a metade direita. Após a conclusão das computações paralelas, os dispositivos se comunicam — frequentemente usando rápidas operações coletivas All-Reduce — 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 esse processo ao introduzir ativações parcialmente sincronizadas para reduzir o overhead de comunicação que normalmente cria 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 cenário mais amplo da computação distribuída requer 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 à fragmentação 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 bolhas de pipeline. 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 completo é 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 em infraestruturas modernas de IA, 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 DeepSeek V3 utilizam frameworks como o NVIDIA Megatron-LM para implementar o paralelismo de tensores. Como as dimensões ocultas e as cabeças de atenção desses modelos são tão grandes, dividi-los entre um nó de 8 GPUs é obrigatório para treinar de forma eficiente e manter baixa latência durante a inferência em tempo real.
- 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 o paralelismo de tensores combinado com o paralelismo de pipeline em serviços como o AWS SageMaker para treinar transformers de visão (ViTs) gigantescos. Essa técnica permite o processamento de imagens de alta resolução e a geração de vídeo que exigem blocos de memória contíguos enormes.
Link to this sectionImplementando paralelismo de tensores no PyTorch#
Historicamente, os engenheiros tinham que escrever uma lógica distribuída personalizada complexa para fragmentar tensores. Recentemente, o PyTorch introduziu o DTensor (Tensor Distribuído), simplificando nativamente esse fluxo de trabalho. Abaixo está um exemplo de criação de um tensor fragmentado por 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.






