Tensor Parallelism
Erfahre, wie Tensor-Parallelität Gewichtsmatrizen über GPUs hinweg verteilt, um riesige Modelle zu trainieren. Entdecke den Unterschied zur Datenparallelität mit Ultralytics.
Tensor Parallelism ist eine fortschrittliche Technik des distributed training, die im maschinellen Lernen verwendet wird, um große einzelne mathematische Strukturen, sogenannte Tensoren, auf mehrere Hardware-Beschleuniger wie GPUs oder TPUs aufzuteilen. Beim Training massiver deep learning Modelle kann die Parameteranzahl leicht die Speicherkapazität eines einzelnen Geräts überschreiten. Anstatt eine vollständige neural network Schicht auf einer GPU zu platzieren, fragmentiert Tensor Parallelism die Gewichtsmatrizen und teilt die mathematischen Operationen (wie Matrixmultiplikationen) auf mehrere Geräte in einem Cluster auf. Dies ermöglicht es dem Modell, die kombinierte Speicher- und Rechenleistung des gesamten Hardware-Setups zu nutzen, wobei parallele Berechnungen in einem Single-Program Multiple-Data (SPMD)-Paradigma ausgeführt werden, während die Ergebnisse über Hochgeschwindigkeitsverbindungen wie NVIDIA NVLink synchronisiert werden.
Link to this sectionWie Tensor Parallelism funktioniert#
Im Kern eines neuronalen Netzwerks stehen Matrixmultiplikationen. Tensor Parallelism verteilt diese Operationen durch das zeilen- oder spaltenweise Teilen der Matrizen. Beispielsweise könnte in einer vollständig verbundenen Schicht oder einem transformer Aufmerksamkeitsmechanismus eine GPU die linke Hälfte der Matrix berechnen, während eine andere die rechte Hälfte berechnet. Nachdem die parallelen Berechnungen abgeschlossen sind, kommunizieren die Geräte – oft unter Verwendung schneller All-Reduce collective operations –, um die Teilergebnisse zu aggregieren, bevor der vollständige Tensor an die nächste Schicht weitergegeben wird. Jüngste akademische Fortschritte im Jahr 2025 optimieren diesen Prozess weiter durch die Einführung teilweise synchronisierter Aktivierungen, um den Kommunikations-Overhead zu reduzieren, der typischerweise große Rechencluster ausbremst.
Link to this sectionUnterscheidung verwandter Parallelisierungstechniken#
Um zu verstehen, wie sich Tensor Parallelism in die breitere Landschaft des verteilten Rechnens einfügt, muss man ihn von anderen gängigen Strategien unterscheiden:
- Tensor Parallelism vs. Model Parallelism: Tensor Parallelism ist eine sehr spezifische Unterkategorie des Model Parallelism. Während sich Model Parallelism allgemein auf das Aufteilen eines Modells auf Geräte bezieht, bezieht sich Tensor Parallelism strikt auf das Sharding der einzelnen Tensoren innerhalb einer einzigen Schicht.
- Tensor Parallelism vs. Pipeline Parallelism: Pipeline Parallelism ist eine weitere Form des Model Parallelism, die das Netzwerk nach Tiefe partitioniert – wobei die ersten paar Schichten auf GPU 0, die nächsten auf GPU 1 usw. platziert werden. Dies erzeugt sequenzielle Abhängigkeiten, die als Pipeline-Bubbles bekannt sind. Tensor Parallelism teilt die Schichten selbst und führt sie gleichzeitig ohne sequenzielle Verzögerung aus, erfordert jedoch eine viel höhere Netzwerkbandbreite.
- Tensor Parallelism vs. Data Parallelism: Beim Data Parallelism wird das gesamte Modell vollständig auf jede GPU repliziert und nur der Trainingsdatensatz wird über die Geräte verteilt. Für hochoptimierte Architekturen wie Ultralytics YOLO26, die problemlos auf moderne GPUs passen, ist Data Parallelism über PyTorchs
DistributedDataParalleldie Standardmethode. Tensor Parallelism ist normalerweise nur dann erforderlich, wenn die Parameter einer einzelnen Schicht den VRAM der Hardware überschreiten, was zu Out-of-Memory (OOM)-Fehlern führt.
Link to this sectionAnwendungen in der Praxis#
Tensor Parallelism ist in modernen KI-Infrastrukturen unverzichtbar, insbesondere für modernste Architekturen, die massive Rechenkapazitäten erfordern:
- Training Large Language Models (LLMs): Massive Basismodelle wie Meta's Llama 3 und DeepSeek V3 nutzen Frameworks wie NVIDIA Megatron-LM, um Tensor Parallelism zu implementieren. Da die versteckten Dimensionen und Aufmerksamkeitsköpfe dieser Modelle so groß sind, ist eine Aufteilung auf einen 8-GPU-Knoten zwingend erforderlich, um effizient zu trainieren und niedrige Latenzzeiten während real-time inference aufrechtzuerhalten.
- Large Vision Models (LVMs) und 3D-Generierung: Da Computer Vision in Richtung massiver multimodaler Systeme skaliert, nutzen Forscher Tensor Parallelism in Kombination mit Pipeline Parallelism auf Diensten wie AWS SageMaker, um gigantische Vision Transformer (ViTs) zu trainieren. Diese Technik ermöglicht die Verarbeitung hochauflösender Bilder und Videogenerierungen, die enorme zusammenhängende Speicherblöcke erfordern.
Link to this sectionImplementierung von Tensor Parallelism in PyTorch#
In der Vergangenheit mussten Ingenieure komplexe, benutzerdefinierte verteilte Logik schreiben, um Tensoren zu fragmentieren. Kürzlich hat PyTorch DTensor (Distributed Tensor) eingeführt, das diesen Workflow nativ vereinfacht. Unten findest du ein Beispiel für die Erstellung eines zeilenweise fragmentierten Tensors unter Verwendung der offiziellen PyTorch Distributed Tensor API:
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}")Für Edge-optimierte Vision-Aufgaben und schnelles model deployment verlassen sich Entwickler normalerweise auf die Ultralytics Platform, um die optimale Hardware-Auslastung automatisch zu handhaben. Während Basismodelle mit mehreren Milliarden Parametern manuelle Tensor-Parallelism-Konfigurationen erfordern, kannst du das Training für Modelle wie YOLO26 mithilfe einfacher CLI commands effizient skalieren. Dies sorgt für maximalen Durchsatz, indem native Data-Parallelism-Techniken nahtlos neben robusten model training tips genutzt werden.






