Dinamik Hesaplama Grafı ve Autograd Nasıl Çalışır?
PyTorch'ta her tensör işlemi anında yürütülür (eager execution) ve eş zamanlı olarak hesaplama grafına kaydedilir. x = torch.tensor([2.0], requires_grad=True); y = x ** 2 + 3 * x satırları çalıştırıldığında Python yorumlayıcısı sonucu hemen hesaplar, PyTorch ise arka planda işlemlerin grafiğini tutar. y.backward() çağrısında graf üzerinden zincir kuralıyla geriye doğru türev alınır ve dy/dx = 2x + 3 = 7 değeri x.grad içinde belirir. Bu define-by-run yaklaşımının iki somut avantajı vardır. Birincisi, if/else veya for döngüsü içeren değişken uzunluklu mimariler — ağaç tabanlı NLP modelleri, dinamik derinlikli ağlar — sıradan Python söz dizimiyle yazılır; statik grafta aynı yapılar karmaşık sembolik kodlama gerektirir. İkincisi, hata ayıklama standart Python araçlarıyla yapılır: bir ara tensörü incelemek için print(x) veya pdb yeterlidir, özel bir "print node" tanımlamak gerekmez. Araştırmacıların PyTorch'a geçişinin ana nedeni bu iki noktadır.
PyTorch 2.x ve torch.compile: Esneklik + Hız
PyTorch 2.0 (Mart 2023), "eager kadar esnek, derlenmiş kadar hızlı" hedefiyle torch.compile'ı tanıttı. model = torch.compile(model) satırı, TorchDynamo ile Python bytecode'unu analiz edip grafı yakalar, TorchInductor ile GPU'ya özel Triton çekirdekleri üretir. Meta'nın ölçümlerinde 160'tan fazla açık kaynak modelde eğitim hızı ortalama %43 artmıştır; kod değişikliği gerekmez. 2024-2025 sürümleri bu temeli genişletti: FlexAttention ile özel dikkat (attention) varyantları birkaç satır Python ile FlashAttention hızında yazılabilir, torch.export ve AOTInductor modeli Python'suz ortamlara derler, DTensor ve FSDP2 çok-GPU eğitimini basitleştirir. Ekim 2025'te çıkan PyTorch 2.9, Python 3.14 desteği ve genişletilmiş Intel/AMD GPU uyumluluğu getirmiştir. Llama 3 ve 4 gibi modellerin binlerce GPU'lu eğitim koşuları, PyTorch'un bu dağıtık eğitim yığını (TorchTitan) üzerinde yürütülür.
PyTorch'un Temel Bileşenleri
tensor torch.Tensor
NumPy dizilerine benzer çok boyutlu matris yapısı; CPU ve GPU belleğinde şeffaf çalışır. requires_grad=True ile gradyan takibini açar.
autograd torch.autograd
Otomatik diferansiyelleştirme motoru. İleri yayılımda işlemleri kaydeder, .backward() ile tüm gradyanları zincir kuralıyla hesaplar.
layers torch.nn
Linear, Conv2d, LSTM, Transformer gibi hazır katmanlar ve CrossEntropyLoss gibi kayıp fonksiyonları. Modeller nn.Module'dan türetilir.
optim torch.optim
SGD, Adam, AdamW gibi optimizasyon algoritmaları. Her iterasyonda optimizer.step() parametreleri gradyanlara göre günceller.
compile torch.compile
PyTorch 2.x'in JIT derleyicisi. Modeli Triton çekirdeklerine derleyerek eğitimde tipik olarak %30-100 hızlanma verir.
data-loader DataLoader
Veri setlerini mini-batch'lere bölen, çok işlemcili ön yükleme ve karıştırma yapan veri besleme altyapısı.
PyTorch Ekosistemi: Resmi ve Topluluk Paketleri
- check_circle TorchVision: Hazır veri setleri, ResNet/ViT gibi önceden eğitilmiş modeller ve görüntü dönüştürme (augmentation) araçlarını içeren resmi bilgisayarla görü paketi.
- check_circle TorchAudio: Ses yükleme, spektrogram dönüşümleri ve konuşma tanıma modelleri için resmi ses işleme kütüphanesi.
- check_circle PyTorch Lightning: Eğitim döngüsü, logging ve checkpoint gibi tekrar eden altyapı kodunu soyutlayan üst düzey çerçeve; çok-GPU eğitime tek parametreyle geçilir.
- check_circle Hugging Face Transformers: Birincil backend olarak PyTorch'u kullanan model kütüphanesi; from_pretrained() ile bir milyondan fazla hazır modele erişim verir.
- check_circle vLLM: PyTorch üzerine kurulu yüksek verimli LLM çıkarım motoru; PagedAttention ile aynı GPU'da kat kat fazla istek servis eder.
- check_circle ExecuTorch: Telefon, gözlük ve gömülü cihazlarda çıkarım için hafif çalışma zamanı; TorchServe'ün bakıma alınmasından sonra uç dağıtımın resmi yolu.
PyTorch Ne İşe Yarar? Kimler Kullanıyor?
Pratikte PyTorch üç ana senaryoda karşımıza çıkar. Birincisi araştırma ve prototipleme: yeni bir mimari fikri, sıradan bir Python sınıfı yazarak birkaç saatte çalışan koda dönüşür. İkincisi ince ayar (fine-tuning): Hugging Face'ten indirilen bir Llama veya Qwen modeli, LoRA gibi tekniklerle birkaç yüz satır kodla kendi verinize uyarlanır. Üçüncüsü üretim dağıtımı: eğitilen model torch.export/ONNX ile sunuculara, ExecuTorch ile mobil cihazlara taşınır. Sektör kullanımı da geniştir: Meta öneri ve içerik anlama sistemlerini PyTorch üzerinde çalıştırır, OpenAI araştırma yığınını 2020'de PyTorch'ta standartlaştırmıştır; Tesla Autopilot'un görü modelleri ve Stable Diffusion ailesi de PyTorch tabanlıdır. Türkiye'de üniversite derslerinden şirket içi makine öğrenimi ekiplerine kadar giriş noktası çoğunlukla PyTorch'tur; Python bilen bir geliştirici, tensör ve autograd kavramlarını öğrendikten sonra günler içinde çalışan bir model eğitebilir.
PyTorch vs TensorFlow vs JAX (2026)
2026 itibarıyla tablo netleşmiştir. PyTorch araştırma ve LLM ekosisteminde açık ara öndedir: yeni makalelerin ve Hugging Face modellerinin büyük çoğunluğu PyTorch ile yayımlanır, torch.compile eski performans açığını kapatmıştır. TensorFlow, Keras 3'ün çoklu-backend yapısına geçmesi ve Google'ın iç ağırlığını JAX'e kaydırmasıyla yeni projelerde gerilemiştir; gücü hâlâ TFLite/LiteRT ile olgun mobil dağıtımda ve mevcut kurumsal sistemlerdedir. JAX ise fonksiyonel programlama ve XLA derleyicisiyle TPU üzerinde büyük ölçekli eğitimde parlar; Google DeepMind'ın Gemini eğitimi JAX tabanlıdır. Buna karşılık öğrenme eğrisi diktir ve hazır model ekosistemi PyTorch'a göre dardır. Özet karar kuralı: LLM ince ayarı, bilgisayarla görü veya genel araştırma için PyTorch; TPU-yoğun büyük ölçekli özgün eğitim için JAX; yalnızca mevcut TensorFlow kod tabanını sürdürüyorsanız TensorFlow mantıklı tercihtir.
Sık Sorulan Sorular
- check_circle PyTorch nedir, ne işe yarar?: PyTorch, Meta AI'ın 2016'da yayımladığı açık kaynak derin öğrenme çerçevesidir. Görüntü sınıflandırma, doğal dil işleme, konuşma tanıma ve LLM ince ayarı gibi işlerde model tanımlama, eğitme ve üretime alma için kullanılır.
- check_circle PyTorch mu TensorFlow mu öğrenmeliyim?: 2026'da yeni başlayan biri için PyTorch daha mantıklıdır: araştırma makaleleri, Hugging Face modelleri ve iş ilanlarının çoğu PyTorch ister. TensorFlow bilgisi ağırlıkla eski kod tabanlarını sürdüren ekiplerde aranır.
- check_circle PyTorch GPU'suz çalışır mı?: Evet, tüm işlemler varsayılan olarak CPU'da yürütülür. Küçük modeller ve çıkarım senaryoları CPU ile mümkündür; büyük modellerin eğitiminde ise CUDA destekli NVIDIA GPU 10-100 kat hız farkı yaratır. Ücretsiz GPU için Google Colab veya Kaggle kullanılabilir.
- check_circle torch.compile ne yapar, kullanmalı mıyım?: torch.compile modeli Triton GPU çekirdeklerine derleyerek kod değişikliği olmadan tipik olarak %30-100 hızlanma verir. Eğitim süresi önemliyse tek satırlık maliyetle denemeye değer; küçük modellerde derleme süresi kazancı gölgeleyebilir.
- check_circle PyTorch modelini üretime nasıl alırım?: Sunucu tarafında torch.export + AOTInductor veya ONNX dışa aktarımı, LLM'ler için vLLM, mobil ve gömülü cihazlar için ExecuTorch kullanılır. TorchServe 2025'te bakım moduna alındığından yeni projelerde önerilmez.
- check_circle PyTorch öğrenmek için Python bilmek şart mı?: Evet, PyTorch bir Python kütüphanesidir; sınıflar, fonksiyonlar ve NumPy temelini bilmek ön koşuldur. Bu temel varsa pytorch.org'daki resmi 60 dakikalık Blitz eğitimiyle ilk modelinizi aynı gün eğitebilirsiniz.