Tensor Parallelism
Scopri come il parallelismo dei tensori suddivide le matrici dei pesi tra le GPU per addestrare modelli massivi. Esplora come differisce dal parallelismo dei dati con Ultralytics.
Il parallelismo dei tensori è una tecnica avanzata di addestramento distribuito utilizzata nel machine learning per suddividere grandi strutture matematiche individuali, o tensori, tra più acceleratori hardware come GPU o TPU. Durante l'addestramento di enormi modelli di deep learning, il numero di parametri può facilmente superare la capacità di memoria di un singolo dispositivo. Invece di inserire un intero livello di rete neurale su una GPU, il parallelismo dei tensori frammenta le matrici dei pesi e divide le operazioni matematiche (come le moltiplicazioni tra matrici) tra più dispositivi in un cluster. Ciò consente al modello di sfruttare la memoria e la potenza di calcolo combinate dell'intera configurazione hardware, eseguendo calcoli paralleli in un paradigma Single-Program Multiple-Data (SPMD) e sincronizzando i risultati tramite interconnessioni ad alta velocità come NVIDIA NVLink.
Link to this sectionCome funziona il parallelismo dei tensori#
Al centro di una rete neurale ci sono le moltiplicazioni tra matrici. Il parallelismo dei tensori distribuisce queste operazioni suddividendo le matrici per righe o per colonne. Ad esempio, in un livello completamente connesso o in un meccanismo di attenzione Transformer, una GPU potrebbe calcolare la metà sinistra della matrice mentre un'altra calcola quella destra. Dopo il completamento dei calcoli paralleli, i dispositivi comunicano, spesso utilizzando veloci operazioni collettive All-Reduce, per aggregare i risultati parziali prima di passare il tensore completo al livello successivo. Recenti progressi accademici nel 2025 stanno ulteriormente ottimizzando questo processo introducendo attivazioni parzialmente sincronizzate per ridurre l'overhead di comunicazione che solitamente rallenta i grandi cluster di calcolo.
Link to this sectionDistinguere le tecniche di parallelismo correlate#
Comprendere come il parallelismo dei tensori si inserisce nel panorama più ampio del calcolo distribuito richiede di distinguerlo da altre strategie comuni:
- Parallelismo dei tensori vs. Parallelismo del modello: Il parallelismo dei tensori è una sottocategoria altamente specifica del parallelismo del modello. Mentre il parallelismo del modello generale si riferisce alla suddivisione di un modello tra i dispositivi in qualsiasi modo, il parallelismo dei tensori si riferisce rigorosamente alla frammentazione dei singoli tensori all'interno di un singolo livello.
- Parallelismo dei tensori vs. Parallelismo di pipeline: Il parallelismo di pipeline è un'altra forma di parallelismo del modello che partiziona la rete per profondità, posizionando i primi livelli sulla GPU 0, i successivi sulla GPU 1 e così via. Questo crea dipendenze sequenziali note come pipeline bubbles. Il parallelismo dei tensori divide i livelli stessi, eseguendoli simultaneamente senza ritardi sequenziali, ma richiede una larghezza di banda di rete molto più elevata.
- Parallelismo dei tensori vs. Parallelismo dei dati: Nel parallelismo dei dati, l'intero modello è completamente replicato su ogni GPU e solo il dataset di addestramento viene suddiviso tra i dispositivi. Per architetture altamente ottimizzate come Ultralytics YOLO26, che si adattano facilmente alle moderne GPU, il parallelismo dei dati tramite
DistributedDataParalleldi PyTorch è il metodo predefinito. Il parallelismo dei tensori è solitamente necessario solo quando i parametri di un singolo livello superano la VRAM dell'hardware, causando errori di memoria esaurita (OOM).
Link to this sectionApplicazioni nel mondo reale#
Il parallelismo dei tensori è indispensabile nelle infrastrutture AI moderne, in particolare per le architetture all'avanguardia che richiedono una scala computazionale massiccia:
- Addestramento di Large Language Models (LLM): Modelli di base massicci come Llama 3 di Meta e DeepSeek V3 utilizzano framework come NVIDIA Megatron-LM per implementare il parallelismo dei tensori. Poiché le dimensioni nascoste e le teste di attenzione di questi modelli sono così grandi, dividerli su un nodo a 8 GPU è obbligatorio per addestrare in modo efficiente e mantenere una bassa latenza durante l'inferenza in tempo reale.
- Large Vision Models (LVM) e generazione 3D: Mentre la visione artificiale scala verso sistemi di ragionamento multimodale massicci, i ricercatori utilizzano il parallelismo dei tensori combinato con il parallelismo di pipeline su servizi come AWS SageMaker per addestrare giganteschi vision transformer (ViT). Questa tecnica consente l'elaborazione di immagini ad alta risoluzione e la generazione di video che richiedono enormi blocchi di memoria contigui.
Link to this sectionImplementare il parallelismo dei tensori in PyTorch#
Storicamente, gli ingegneri dovevano scrivere una complessa logica distribuita personalizzata per frammentare i tensori. Recentemente, PyTorch ha introdotto DTensor (Distributed Tensor), semplificando nativamente questo flusso di lavoro. Di seguito è riportato un esempio di creazione di un tensore frammentato per righe utilizzando l'API ufficiale 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}")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.






