Tensor Parallelism
Tensör paralelliği, her cihazın her işlemin bir bölümünü hesaplaması için bir katmanın ağırlık matrislerini GPU'lar arasında parçalara ayırır. İlgili yöntemleri, kullanım alanlarını ve PyTorch'u ele alır.
Tensör Paralelliği, büyük ve bağımsız matematiksel yapıları veya tensörleri GPU'lar ya da TPU'lar gibi birden fazla donanım hızlandırıcısına dağıtmak için makine öğreniminde kullanılan gelişmiş bir dağıtık eğitim tekniğidir. Devasa derin öğrenme modellerini eğitirken parametre sayısı tek bir cihazın bellek kapasitesini kolayca aşabilir. Bir sinir ağı katmanının tamamını tek bir GPU'ya yerleştirmek yerine, tensör paralelliği ağırlık matrislerini parçalara ayırır ve matris çarpımları gibi matematiksel işlemleri bir kümedeki birden çok cihaza dağıtır. Bu, modelin tüm donanım kurulumunun birleşik belleğinden ve işlem gücünden yararlanmasını sağlar; sonuçlar Tek Program Çoklu Veri (SPMD) düzeninde paralel hesaplanırken NVIDIA NVLink gibi yüksek hızlı ara bağlantılar üzerinden eşitlenir.
Tensör Paralelliği Nasıl Çalışır#
Sinir ağlarının temelinde matris çarpımları yer alır. Tensör paralelliği, matrisleri satır veya sütun bazında bölerek bu işlemleri dağıtır. Örneğin tam bağlantılı bir katmanda veya dönüştürücü dikkat mekanizmasında bir GPU matrisin sol yarısını, diğeri sağ yarısını hesaplayabilir. Paralel hesaplamalar tamamlandığında cihazlar, sonraki katmana tam tensörü aktarmadan önce kısmi sonuçları toplamak için hızlı Tümünü Azaltma toplu işlemlerini kullanarak haberleşir. 2025'teki yeni akademik gelişmeler, büyük işlem kümelerinde genellikle darboğaz oluşturan iletişim yükünü azaltmak için kısmen eşzamanlanan etkinleştirmeler sunarak bu süreci daha da iyileştiriyor.
İlgili Paralellik Tekniklerini Ayırt Etme#
Tensör paralelliğinin daha geniş dağıtık hesaplama alanındaki yerini anlamak için onu yaygın diğer stratejilerden ayırt etmek gerekir:
- Tensör Paralelliği ve Model Paralelliği: Tensör paralelliği, model paralelliğinin son derece belirli bir alt kategorisidir. Genel model paralelliği bir modelin cihazlar arasında herhangi bir şekilde bölünmesini ifade ederken, tensör paralelliği kesin olarak tek bir katman içindeki bağımsız tensörlerin parçalanmasını ifade eder.
- Tensör Paralelliği ve İşlem Hattı Paralelliği: İşlem hattı paralelliği, ağı derinliğine göre bölümlere ayıran başka bir model paralelliği türüdür; ilk birkaç katmanı GPU 0'a, sonrakileri GPU 1'e ve böyle devam ederek yerleştirir. Bu yaklaşım, işlem hattı baloncukları olarak bilinen sıralı bağımlılıklar oluşturur. Tensör paralelliği katmanların kendisini böler ve bunları sıralı gecikme olmadan eşzamanlı yürütür; ancak çok daha yüksek ağ bant genişliği gerektirir.
- Tensör Paralelliği ve Veri Paralelliği: Veri paralelliğinde modelin tamamı her GPU'da bütünüyle çoğaltılır ve cihazlar arasında yalnızca eğitim veri kümesi bölünür. Modern GPU'lara kolayca sığan Ultralytics YOLO26 gibi yüksek düzeyde optimize edilmiş mimariler için PyTorch'un
DistributedDataParallelözelliği aracılığıyla veri paralelliği varsayılan yöntemdir. Tensör paralelliğine genellikle yalnızca tek bir katmanın parametreleri donanımın VRAM kapasitesini aştığında ve bellek yetersiz (OOM) hatalarına yol açtığında ihtiyaç duyulur.
Gerçek Dünya Uygulamaları#
Tensör paralelliği, özellikle devasa hesaplama ölçeği gerektiren son teknoloji mimarilerde modern yapay zekâ altyapılarının vazgeçilmezidir:
- Büyük Dil Modellerini (LLM'ler) Eğitme: Meta'nın Llama 3'ü gibi devasa temel modeller, çoğunlukla NVIDIA Megatron-LM gibi çerçevelerle uygulanan tensör paralelliğinden yararlanır; ancak DeepSeek V3, işlem hattı ve uzman paralelliğine dayanarak bu yöntem olmadan eğitilmesiyle dikkat çekmiştir. Bu modellerin gizli boyutları ve dikkat başlıkları çok büyük olduğundan verimli eğitim ve gerçek zamanlı çıkarım sırasında düşük gecikme için bunları 8 GPU'lu bir düğüme bölmek zorunludur.
- Büyük Görüntü Modelleri (LVM'ler) ve 3B Üretim: Bilgisayarlı görü devasa çok modlu akıl yürütme sistemlerine doğru ölçeklenirken araştırmacılar, devasa görüntü dönüştürücülerini (ViT'ler) eğitmek için AWS SageMaker gibi hizmetlerde tensör paralelliğini işlem hattı paralelliğiyle birleştiriyor. Bu teknik, çok büyük ve kesintisiz bellek blokları gerektiren yüksek çözünürlüklü görüntülerin işlenmesini ve video üretilmesini sağlar.
PyTorch'ta Tensör Paralelliğini Uygulama#
Geçmişte mühendislerin tensörleri parçalamak için karmaşık, özel dağıtık mantık yazması gerekiyordu. PyTorch, yakın zamanda bu iş akışını yerel olarak basitleştiren DTensor (Distributed Tensor) özelliğini kullanıma sundu. Aşağıda, resmî PyTorch Distributed Tensor API'sini kullanarak satır bazında parçalanmış bir tensör oluşturma örneği yer alıyor:
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çta optimize edilmiş görüntü görevleri ve hızlı model dağıtımı için geliştiriciler, en uygun donanım kullanımını otomatik olarak yönetmek amacıyla genellikle Ultralytics Platformu kullanır. Milyarlarca parametreli temel modeller elle tensör paralelliği yapılandırması gerektirse de YOLO26 gibi modellerin eğitimini yerleşik CLI komutlarıyla kolayca ölçeklendirebilirsin. Bu, sağlam model eğitimi ipuçları ile birlikte yerel veri paralelliği tekniklerinden sorunsuzca yararlanarak en yüksek verimi sağlar.










