Tensor Parallelism
Tensör paralelliğinin, devasa modelleri eğitmek için ağırlık matrislerini GPU'lar arasında nasıl parçaladığını öğren. Ultralytics ile veri paralelliğinden farkını keşfet.
Tensor Parallelism is an advanced distributed training technique used in machine learning to divide large individual mathematical structures, or tensors, across multiple hardware accelerators such as GPUs or TPUs. When training massive deep learning models, the parameter count can easily exceed the memory capacity of a single device. Instead of placing an entire neural network layer on one GPU, tensor parallelism shards the weight matrices and splits the mathematical operations (like matrix multiplications) across multiple devices in a cluster. This allows the model to leverage the combined memory and compute power of the entire hardware setup, executing parallel computations in a Single-Program Multiple-Data (SPMD) paradigm while synchronizing the results via high-speed interconnects like NVIDIA NVLink.
Link to this sectionTensor Paralelliği Nasıl Çalışır#
Bir sinir ağının merkezinde matris çarpımları yer alır. Tensor paralelliği, bu işlemleri matrisleri satır bazlı veya sütun bazlı olarak bölerek dağıtır. Örneğin, tam bağlantılı bir katmanda veya bir transformer dikkat mekanizmasında, bir GPU matrisin sol yarısını hesaplarken diğeri sağ yarısını hesaplayabilir. Paralel hesaplamalar bittikten sonra, cihazlar—genellikle hızlı All-Reduce toplu işlemleri kullanarak—kısmi sonuçları toplar ve ardından tam tensörü bir sonraki katmana iletir. 2025 yılındaki güncel akademik gelişmeler, büyük işlem kümelerinde darboğaz oluşturan iletişim yükünü azaltmak amacıyla kısmen senkronize edilmiş aktivasyonlar getirerek bu süreci daha da optimize etmektedir.
Link to this sectionİlgili Paralellik Tekniklerinin Ayırt Edilmesi#
Tensor paralelliğinin dağıtık bilişimin genel yapısına nasıl uyduğunu anlamak için onu diğer yaygın stratejilerden ayırt etmek gerekir:
- Tensor Paralelliği ile Model Paralelliği: Tensor paralelliği, model paralelliğinin oldukça spesifik bir alt kategorisidir. Genel model paralelliği bir modeli cihazlar arasında herhangi bir şekilde bölmeyi ifade ederken, tensor paralelliği kesin olarak tek bir katman içindeki bireysel tensörlerin parçalanmasını ifade eder.
- Tensor Paralelliği ile Boru Hattı (Pipeline) Paralelliği: Boru hattı paralelliği, ağı derinliğe göre bölerek ilk birkaç katmanı GPU 0'a, sonrakileri GPU 1'e yerleştiren başka bir model paralelliği biçimidir. Bu, boru hattı baloncukları olarak bilinen sıralı bağımlılıklar yaratır. Tensor paralelliği ise katmanların kendisini böler, bunları sıralı bir gecikme olmadan eşzamanlı olarak çalıştırır ancak çok daha yüksek ağ bant genişliği gerektirir.
- Tensor Paralelliği ile Veri Paralelliği: Veri paralelliğinde, tüm model her GPU'da tam olarak kopyalanır ve yalnızca eğitim veri seti cihazlar arasında bölünür. Modern GPU'lara kolayca sığan Ultralytics YOLO26 gibi yüksek düzeyde optimize edilmiş mimariler için PyTorch'un
DistributedDataParallelyapısı üzerinden veri paralelliği varsayılan yöntemdir. Tensor paralelliği, tipik olarak yalnızca tek bir katmanın parametreleri donanımın VRAM kapasitesini aştığında ve bellek yetersizliği (OOM) hatalarına neden olduğunda gereklidir.
Link to this sectionGerçek Dünya Uygulamaları#
Tensor paralelliği, özellikle muazzam hesaplama ölçeği gerektiren en son teknoloji mimariler için modern AI altyapılarında vazgeçilmezdir:
- Büyük Dil Modellerini (LLM'ler) Eğitmek: Meta'nın Llama 3 ve DeepSeek V3 gibi devasa temel modeller, tensor paralelliğini uygulamak için NVIDIA Megatron-LM gibi çerçevelerden yararlanır. Bu modellerin gizli boyutları ve dikkat başlıkları çok büyük olduğundan, verimli bir şekilde eğitmek ve gerçek zamanlı çıkarım sırasında düşük gecikme süresini korumak için bunları 8-GPU'lu bir düğüme bölmek zorunludur.
- Büyük Görüş Modelleri (LVM'ler) ve 3D Üretim: Bilgisayarlı görü devasa çok modlu akıl yürütme sistemlerine doğru ölçeklendikçe, araştırmacılar devasa görsel transformerları (ViT) eğitmek için AWS SageMaker gibi hizmetlerde boru hattı paralelliği ile birleştirilmiş tensor paralelliğini kullanırlar. Bu teknik, muazzam bitişik bellek blokları gerektiren yüksek çözünürlüklü görüntü işleme ve video üretimine olanak tanır.
Link to this sectionPyTorch İçinde Tensor Paralelliği Uygulamak#
Tarihsel olarak, mühendisler tensörleri parçalamak için karmaşık özel dağıtık mantıklar yazmak zorundaydı. Yakın zamanda PyTorch, bu iş akışını doğal olarak basitleştiren DTensor (Distributed Tensor) yapısını tanıttı. Aşağıda, resmi PyTorch Distributed Tensor API kullanarak satır bazlı parçalanmış bir tensör oluşturmanın bir örneği yer almaktadır:
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}")Uç cihazlar için optimize edilmiş görü görevleri ve hızlı model dağıtımı için geliştiriciler genellikle optimum donanım kullanımını otomatik olarak yönetmek amacıyla Ultralytics Platform'a güvenirler. Milyarlarca parametreli temel modeller manuel tensor paralelliği yapılandırmaları gerektirse de, YOLO26 gibi modeller için eğitimi basit CLI komutları ile hemen kullanmaya başlayarak verimli bir şekilde ölçeklendirebilirsin. Bu, doğal veri paralelliği tekniklerini sağlam model eğitimi ipuçları ile birlikte sorunsuz bir şekilde kullanarak maksimum verimi garanti eder.






