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. Bunun veri paralelliğinden Ultralytics ile nasıl farklılaştığı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 veya sütun bazında 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, eksiksiz tensörü bir sonraki katmana iletmeden önce kısmi sonuçları toplamak için genellikle hızlı All-Reduce toplu işlemleri kullanarak haberleşirler. 2025 yılındaki güncel akademik ilerlemeler, büyük hesaplama kümelerini darboğaza sokan iletişim yükünü azaltmak için kısmi senkronize edilmiş aktivasyonlar sunarak bu süreci daha da optimize etmektedir.
Link to this sectionİlgili Paralellik Tekniklerini Ayırt Etme#
Tensor paralelliğinin dağıtık bilişimin daha geniş kapsamına nasıl uyduğunu anlamak, onu diğer yaygın stratejilerden ayırt etmeyi gerektirir:
- Tensor Paralelliği ile Model Paralelliği: Tensor paralelliği, model paralelliğinin son derece özelleşmiş bir alt kategorisidir. Genel model paralelliği, bir modelin cihazlar arasında herhangi bir şekilde bölünmesini 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ölümleyen —ilk birkaç katmanı GPU 0'a, sonrakileri GPU 1'e yerleştiren vb.— başka bir model paralelliği biçimidir. Bu, boru hattı boşlukları (pipeline bubbles) olarak bilinen sıralı bağımlılıklar yaratır. Tensor paralelliği katmanların kendisini böler, bunları sıralı gecikme olmaksızın eşzamanlı olarak yürütür ancak çok daha yüksek ağ bant genişliği gerektirir.
- Tensor Paralelliği ile Veri Paralelliği: Veri paralelliğinde, modelin tamamı her GPU'da tamamen kopyalanır ve yalnızca eğitim veri kümesi cihazlar arasında bölünür. Modern GPU'lara kolayca sığan Ultralytics YOLO26 gibi son derece optimize edilmiş mimariler için, PyTorch'un
DistributedDataParallelaracı ile veri paralelliği varsayılan yöntemdir. Tensor paralelliği, genellikle yalnızca tek bir katmanın parametreleri donanımın VRAM kapasitesini aştığında ve bellek yetersizliği (OOM) hatalarına yol açtığında gereklidir.
Link to this sectionGerçek Dünya Uygulamaları#
Tensor paralelliği, özellikle büyük hesaplama ölçeği gerektiren son teknoloji mimariler için modern yapay zeka altyapılarında vazgeçilmezdir:
- Büyük Dil Modellerini (LLM'ler) Eğitme: Meta'nın Llama 3 ve DeepSeek V3 gibi devasa temel modeller, tensor paralelliğini uygulamak için NVIDIA Megatron-LM gibi çerçeveleri kullanır. Bu modellerin gizli boyutları ve dikkat kafaları ç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örme Modelleri (LVM'ler) ve 3D Üretimi: Bilgisayarlı görü devasa çok modlu akıl yürütme sistemlerine doğru ölçeklendikçe, araştırmacılar devasa görme transformerlarını (ViT'ler) eğitmek için AWS SageMaker gibi servislerde 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 üretimi yapılmasına olanak tanır.
Link to this sectionPyTorch İçinde Tensor Paralelliğini Uygulama#
Geçmişte mühendisler tensörleri parçalamak için karmaşık özel dağıtık mantık yazmak zorundaydı. Yakın zamanda PyTorch, bu iş akışını yerel olarak basitleştiren DTensor (Dağıtık Tensör) özelliğini tanıttı. Aşağıda, resmi PyTorch Dağıtık Tensör API'sini kullanarak satır bazında parçalanmış bir tensör oluşturma ö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örme görevleri ve hızlı model dağıtımı için geliştiriciler, donanım kullanımını otomatik olarak optimize eden 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 kutudan çıktığı gibi verimli bir şekilde ölçeklendirebilirsin. Bu, yerel veri paralelliği tekniklerini sağlam model eğitimi ipuçları ile birlikte kusursuz bir şekilde kullanarak maksimum iş hacmini garanti eder.






